From 18991b16bda5af4b993868ee85a280e8b39271ca Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Sat, 2 Sep 2023 15:01:14 +0700 Subject: [PATCH 01/20] feat: add `x/post` and `x/tokenfactory` modules msg types [web-desmos] (#1298) ## Description Closes: [BDU-1125](https://forbole.atlassian.net/browse/BDU-1125) Changes: 1. Support new `x/post` module msg types: - [MsgMovePost](https://github.com/desmos-labs/desmos/blob/v6.0.0/proto/desmos/posts/v3/msgs.proto#L392) - [MsgRequestPostOwnerTransfer](https://github.com/desmos-labs/desmos/blob/v6.0.0/proto/desmos/posts/v3/msgs.proto#L442) - [MsgCancelPostOwnerTransferRequest](https://github.com/desmos-labs/desmos/blob/v6.0.0/proto/desmos/posts/v3/msgs.proto#L481) - [MsgAcceptPostOwnerTransferRequest](https://github.com/desmos-labs/desmos/blob/v6.0.0/proto/desmos/posts/v3/msgs.proto#L515) - [MsgRefusePostOwnerTransferRequest](https://github.com/desmos-labs/desmos/blob/v6.0.0/proto/desmos/posts/v3/msgs.proto#L548) 2. Support `x/tokenfactory` module msg types: - MsgCreateDenom - MsgMint - MsgBurn - MsgSetDenomMetadata - MsgUpdateParams --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [x] ran linting via `yarn lint` - [x] wrote tests where necessary - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] targeted the correct branch - [x] provided a link to the relevant issue or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed - [x] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) [BDU-1125]: https://forbole.atlassian.net/browse/BDU-1125?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --- .changeset/dry-rules-hear.md | 6 ++ apps/web-desmos/src/components/msg/index.ts | 10 +++ .../__snapshots__/index.test.tsx.snap | 30 +++++++++ .../index.test.tsx | 38 +++++++++++ .../index.tsx | 30 +++++++++ .../__snapshots__/index.test.tsx.snap | 30 +++++++++ .../index.test.tsx | 38 +++++++++++ .../index.tsx | 30 +++++++++ .../__snapshots__/index.test.tsx.snap | 30 +++++++++ .../msg/posts/move_post/index.test.tsx | 39 ++++++++++++ .../components/msg/posts/move_post/index.tsx | 31 +++++++++ .../__snapshots__/index.test.tsx.snap | 30 +++++++++ .../index.test.tsx | 38 +++++++++++ .../index.tsx | 30 +++++++++ .../__snapshots__/index.test.tsx.snap | 36 +++++++++++ .../index.test.tsx | 39 ++++++++++++ .../request_post_owner_transfer/index.tsx | 35 +++++++++++ .../burn/__snapshots__/index.test.tsx.snap | 30 +++++++++ .../msg/tokenfactory/burn/index.test.tsx | 47 ++++++++++++++ .../msg/tokenfactory/burn/index.tsx | 38 +++++++++++ .../__snapshots__/index.test.tsx.snap | 30 +++++++++ .../tokenfactory/create_denom/index.test.tsx | 38 +++++++++++ .../msg/tokenfactory/create_denom/index.tsx | 30 +++++++++ .../mint/__snapshots__/index.test.tsx.snap | 30 +++++++++ .../msg/tokenfactory/mint/index.test.tsx | 47 ++++++++++++++ .../msg/tokenfactory/mint/index.tsx | 38 +++++++++++ .../__snapshots__/index.test.tsx.snap | 30 +++++++++ .../set_denom_metadata/index.test.tsx | 37 +++++++++++ .../tokenfactory/set_denom_metadata/index.tsx | 29 +++++++++ .../__snapshots__/index.test.tsx.snap | 30 +++++++++ .../tokenfactory/update_params/index.test.tsx | 37 +++++++++++ .../msg/tokenfactory/update_params/index.tsx | 29 +++++++++ apps/web-desmos/src/components/msg/utils.tsx | 63 +++++++++++++++++++ apps/web-desmos/src/models/index.ts | 10 +++ .../msg_accept_post_owner_transfer_request.ts | 38 +++++++++++ .../msg_cancel_post_owner_transfer_request.ts | 38 +++++++++++ .../src/models/msg/posts/msg_create_post.ts | 2 +- .../src/models/msg/posts/msg_edit_post.ts | 10 +-- .../src/models/msg/posts/msg_move_post.ts | 42 +++++++++++++ .../msg_refuse_post_owner_transfer_request.ts | 38 +++++++++++ .../posts/msg_request_post_owner_transfer.ts | 42 +++++++++++++ .../src/models/msg/tokenfactory/msg_burn.ts | 41 ++++++++++++ .../msg/tokenfactory/msg_create_denom.ts | 38 +++++++++++ .../src/models/msg/tokenfactory/msg_mint.ts | 41 ++++++++++++ .../tokenfactory/msg_set_denom_metadata.ts | 34 ++++++++++ .../msg/tokenfactory/msg_update_params.ts | 34 ++++++++++ apps/web-desmos/src/models/msg/types.ts | 2 +- packages/ui/public/locales/en/web_desmos.json | 22 ++++++- 48 files changed, 1527 insertions(+), 8 deletions(-) create mode 100644 .changeset/dry-rules-hear.md create mode 100644 apps/web-desmos/src/components/msg/posts/accept_post_owner_transfer_request/__snapshots__/index.test.tsx.snap create mode 100644 apps/web-desmos/src/components/msg/posts/accept_post_owner_transfer_request/index.test.tsx create mode 100644 apps/web-desmos/src/components/msg/posts/accept_post_owner_transfer_request/index.tsx create mode 100644 apps/web-desmos/src/components/msg/posts/cancel_post_owner_transfer_request/__snapshots__/index.test.tsx.snap create mode 100644 apps/web-desmos/src/components/msg/posts/cancel_post_owner_transfer_request/index.test.tsx create mode 100644 apps/web-desmos/src/components/msg/posts/cancel_post_owner_transfer_request/index.tsx create mode 100644 apps/web-desmos/src/components/msg/posts/move_post/__snapshots__/index.test.tsx.snap create mode 100644 apps/web-desmos/src/components/msg/posts/move_post/index.test.tsx create mode 100644 apps/web-desmos/src/components/msg/posts/move_post/index.tsx create mode 100644 apps/web-desmos/src/components/msg/posts/refuse_post_owner_transfer_request/__snapshots__/index.test.tsx.snap create mode 100644 apps/web-desmos/src/components/msg/posts/refuse_post_owner_transfer_request/index.test.tsx create mode 100644 apps/web-desmos/src/components/msg/posts/refuse_post_owner_transfer_request/index.tsx create mode 100644 apps/web-desmos/src/components/msg/posts/request_post_owner_transfer/__snapshots__/index.test.tsx.snap create mode 100644 apps/web-desmos/src/components/msg/posts/request_post_owner_transfer/index.test.tsx create mode 100644 apps/web-desmos/src/components/msg/posts/request_post_owner_transfer/index.tsx create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/burn/__snapshots__/index.test.tsx.snap create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/burn/index.test.tsx create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/burn/index.tsx create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/create_denom/__snapshots__/index.test.tsx.snap create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/create_denom/index.test.tsx create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/create_denom/index.tsx create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/mint/__snapshots__/index.test.tsx.snap create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/mint/index.test.tsx create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/mint/index.tsx create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/set_denom_metadata/__snapshots__/index.test.tsx.snap create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/set_denom_metadata/index.test.tsx create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/set_denom_metadata/index.tsx create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/update_params/__snapshots__/index.test.tsx.snap create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/update_params/index.test.tsx create mode 100644 apps/web-desmos/src/components/msg/tokenfactory/update_params/index.tsx create mode 100644 apps/web-desmos/src/models/msg/posts/msg_accept_post_owner_transfer_request.ts create mode 100644 apps/web-desmos/src/models/msg/posts/msg_cancel_post_owner_transfer_request.ts create mode 100644 apps/web-desmos/src/models/msg/posts/msg_move_post.ts create mode 100644 apps/web-desmos/src/models/msg/posts/msg_refuse_post_owner_transfer_request.ts create mode 100644 apps/web-desmos/src/models/msg/posts/msg_request_post_owner_transfer.ts create mode 100644 apps/web-desmos/src/models/msg/tokenfactory/msg_burn.ts create mode 100644 apps/web-desmos/src/models/msg/tokenfactory/msg_create_denom.ts create mode 100644 apps/web-desmos/src/models/msg/tokenfactory/msg_mint.ts create mode 100644 apps/web-desmos/src/models/msg/tokenfactory/msg_set_denom_metadata.ts create mode 100644 apps/web-desmos/src/models/msg/tokenfactory/msg_update_params.ts diff --git a/.changeset/dry-rules-hear.md b/.changeset/dry-rules-hear.md new file mode 100644 index 0000000000..85fcd5a386 --- /dev/null +++ b/.changeset/dry-rules-hear.md @@ -0,0 +1,6 @@ +--- +'web-desmos': minor +'ui': minor +--- + +Add x/post and x/tokenfactory modules msg types diff --git a/apps/web-desmos/src/components/msg/index.ts b/apps/web-desmos/src/components/msg/index.ts index 5f4391697a..8bb202e131 100644 --- a/apps/web-desmos/src/components/msg/index.ts +++ b/apps/web-desmos/src/components/msg/index.ts @@ -9,6 +9,11 @@ export { default as SetDefaultExternalAddress } from '@/components/msg/profiles/ export { default as CreatePost } from '@/components/msg/posts/create_post'; export { default as EditPost } from '@/components/msg/posts/edit_post'; export { default as DeletePost } from '@/components/msg/posts/delete_post'; +export { default as MovePost } from '@/components/msg/posts/move_post'; +export { default as RequestPostOwnerTransfer } from '@/components/msg/posts/request_post_owner_transfer'; +export { default as CancelPostOwnerTransferRequest } from '@/components/msg/posts/cancel_post_owner_transfer_request'; +export { default as AcceptPostOwnerTransferRequest } from '@/components/msg/posts/accept_post_owner_transfer_request'; +export { default as RefusePostOwnerTransferRequest } from '@/components/msg/posts/refuse_post_owner_transfer_request'; export { default as AddPostAttachment } from '@/components/msg/posts/add_post_attachment'; export { default as RemovePostAttachment } from '@/components/msg/posts/remove_post_attachment'; export { default as AnswerPoll } from '@/components/msg/posts/answer_poll'; @@ -38,4 +43,9 @@ export { default as DeleteUserGroup } from '@/components/msg/subspaces/delete_us export { default as AddUserToUserGroup } from '@/components/msg/subspaces/add_user_to_user_group'; export { default as RemoveUserFromUserGroup } from '@/components/msg/subspaces/remove_user_from_user_group'; export { default as SetUserPermissions } from '@/components/msg/subspaces/set_user_permissions'; +export { default as CreateDenom } from '@/components/msg/tokenfactory/create_denom'; +export { default as Mint } from '@/components/msg/tokenfactory/mint'; +export { default as Burn } from '@/components/msg/tokenfactory/burn'; +export { default as SetDenomMetadata } from '@/components/msg/tokenfactory/set_denom_metadata'; +export { default as UpdateParams } from '@/components/msg/tokenfactory/update_params'; export * from 'ui/components/msg'; diff --git a/apps/web-desmos/src/components/msg/posts/accept_post_owner_transfer_request/__snapshots__/index.test.tsx.snap b/apps/web-desmos/src/components/msg/posts/accept_post_owner_transfer_request/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000000..7dd7f885b9 --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/accept_post_owner_transfer_request/__snapshots__/index.test.tsx.snap @@ -0,0 +1,30 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`screen: TransactionDetails/AcceptPostOwnerTransferRequest matches snapshot 1`] = ` +.emotion-0 { + margin: 0; + font-size: 1rem; + white-space: pre-wrap; + letter-spacing: 0.5px; + font-family: "Roboto","Helvetica","Arial",sans-serif; + font-weight: 400; + line-height: 1.5; +} + +

+ +

+ + {"receiver":"receiver","post_id":"1","subspace_id":"subspace-id-1"} + +

+`; diff --git a/apps/web-desmos/src/components/msg/posts/accept_post_owner_transfer_request/index.test.tsx b/apps/web-desmos/src/components/msg/posts/accept_post_owner_transfer_request/index.test.tsx new file mode 100644 index 0000000000..51dfb9238e --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/accept_post_owner_transfer_request/index.test.tsx @@ -0,0 +1,38 @@ +import renderer from 'react-test-renderer'; +import AcceptPostOwnerTransferRequest from '@/components/msg/posts/accept_post_owner_transfer_request'; +import MsgAcceptPostOwnerTransferRequest from '@/models/msg/posts/msg_accept_post_owner_transfer_request'; +import MockTheme from '@/tests/mocks/MockTheme'; + +// ================================== +// mocks +// ================================== +jest.mock('@/components/name', () => (props: JSX.IntrinsicElements['div']) => ( +
+)); + +// ================================== +// unit tests +// ================================== +describe('screen: TransactionDetails/AcceptPostOwnerTransferRequest', () => { + it('matches snapshot', () => { + const message: MsgAcceptPostOwnerTransferRequest = { + category: 'posts', + type: 'MsgAcceptPostOwnerTransferRequest', + receiver: 'receiver', + post_id: '1', + subspace_id: 'subspace-id-1', + json: {}, + }; + const component = renderer.create( + + + + ); + const tree = component?.toJSON(); + expect(tree).toMatchSnapshot(); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); +}); diff --git a/apps/web-desmos/src/components/msg/posts/accept_post_owner_transfer_request/index.tsx b/apps/web-desmos/src/components/msg/posts/accept_post_owner_transfer_request/index.tsx new file mode 100644 index 0000000000..d409095893 --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/accept_post_owner_transfer_request/index.tsx @@ -0,0 +1,30 @@ +import Typography from '@mui/material/Typography'; +import AppTrans from '@/components/AppTrans'; +import { FC } from 'react'; +import Name from '@/components/name'; +import MsgAcceptPostOwnerTransferRequest from '@/models/msg/posts/msg_accept_post_owner_transfer_request'; +import { useProfileRecoil } from '@/recoil/profiles/hooks'; + +const AcceptPostOwnerTransferRequest: FC<{ message: MsgAcceptPostOwnerTransferRequest }> = (props) => { + const { message } = props; + + const receiver = useProfileRecoil(message.receiver); + + const receiverMoniker = receiver ? receiver?.name : message.receiver; + + return ( + + , ]} + values={{ + receiver: receiverMoniker, + post_id: message.post_id, + subspace_id: message.subspace_id, + }} + /> + + ); +}; + +export default AcceptPostOwnerTransferRequest; diff --git a/apps/web-desmos/src/components/msg/posts/cancel_post_owner_transfer_request/__snapshots__/index.test.tsx.snap b/apps/web-desmos/src/components/msg/posts/cancel_post_owner_transfer_request/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000000..b9efa178cb --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/cancel_post_owner_transfer_request/__snapshots__/index.test.tsx.snap @@ -0,0 +1,30 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`screen: TransactionDetails/CancelPostOwnerTransferRequest matches snapshot 1`] = ` +.emotion-0 { + margin: 0; + font-size: 1rem; + white-space: pre-wrap; + letter-spacing: 0.5px; + font-family: "Roboto","Helvetica","Arial",sans-serif; + font-weight: 400; + line-height: 1.5; +} + +

+ +

+ + {"sender":"sender","post_id":"1","subspace_id":"subspace-id-1"} + +

+`; diff --git a/apps/web-desmos/src/components/msg/posts/cancel_post_owner_transfer_request/index.test.tsx b/apps/web-desmos/src/components/msg/posts/cancel_post_owner_transfer_request/index.test.tsx new file mode 100644 index 0000000000..071cdf6d9a --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/cancel_post_owner_transfer_request/index.test.tsx @@ -0,0 +1,38 @@ +import renderer from 'react-test-renderer'; +import CancelPostOwnerTransferRequest from '@/components/msg/posts/cancel_post_owner_transfer_request'; +import MsgCancelPostOwnerTransferRequest from '@/models/msg/posts/msg_cancel_post_owner_transfer_request'; +import MockTheme from '@/tests/mocks/MockTheme'; + +// ================================== +// mocks +// ================================== +jest.mock('@/components/name', () => (props: JSX.IntrinsicElements['div']) => ( +
+)); + +// ================================== +// unit tests +// ================================== +describe('screen: TransactionDetails/CancelPostOwnerTransferRequest', () => { + it('matches snapshot', () => { + const message: MsgCancelPostOwnerTransferRequest = { + category: 'posts', + type: 'MsgCancelPostOwnerTransferRequest', + sender: 'sender', + post_id: '1', + subspace_id: 'subspace-id-1', + json: {}, + }; + const component = renderer.create( + + + + ); + const tree = component?.toJSON(); + expect(tree).toMatchSnapshot(); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); +}); diff --git a/apps/web-desmos/src/components/msg/posts/cancel_post_owner_transfer_request/index.tsx b/apps/web-desmos/src/components/msg/posts/cancel_post_owner_transfer_request/index.tsx new file mode 100644 index 0000000000..231c1ab1f6 --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/cancel_post_owner_transfer_request/index.tsx @@ -0,0 +1,30 @@ +import Typography from '@mui/material/Typography'; +import AppTrans from '@/components/AppTrans'; +import { FC } from 'react'; +import Name from '@/components/name'; +import MsgCancelPostOwnerTransferRequest from '@/models/msg/posts/msg_cancel_post_owner_transfer_request'; +import { useProfileRecoil } from '@/recoil/profiles/hooks'; + +const CancelPostOwnerTransferRequest: FC<{ message: MsgCancelPostOwnerTransferRequest }> = (props) => { + const { message } = props; + + const sender = useProfileRecoil(message.sender); + + const senderMoniker = sender ? sender?.name : message.sender; + + return ( + + , ]} + values={{ + sender: senderMoniker, + post_id: message.post_id, + subspace_id: message.subspace_id, + }} + /> + + ); +}; + +export default CancelPostOwnerTransferRequest; diff --git a/apps/web-desmos/src/components/msg/posts/move_post/__snapshots__/index.test.tsx.snap b/apps/web-desmos/src/components/msg/posts/move_post/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000000..a06f44df3a --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/move_post/__snapshots__/index.test.tsx.snap @@ -0,0 +1,30 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`screen: TransactionDetails/MovePost matches snapshot 1`] = ` +.emotion-0 { + margin: 0; + font-size: 1rem; + white-space: pre-wrap; + letter-spacing: 0.5px; + font-family: "Roboto","Helvetica","Arial",sans-serif; + font-weight: 400; + line-height: 1.5; +} + +

+ +

+ + {"owner":"owner","post_id":"1","subspace_id":"subspace-id-1","target_subspace_id":"subspace-id-2"} + +

+`; diff --git a/apps/web-desmos/src/components/msg/posts/move_post/index.test.tsx b/apps/web-desmos/src/components/msg/posts/move_post/index.test.tsx new file mode 100644 index 0000000000..7b859f2f05 --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/move_post/index.test.tsx @@ -0,0 +1,39 @@ +import renderer from 'react-test-renderer'; +import MovePost from '@/components/msg/posts/move_post'; +import MsgMovePost from '@/models/msg/posts/msg_move_post'; +import MockTheme from '@/tests/mocks/MockTheme'; + +// ================================== +// mocks +// ================================== +jest.mock('@/components/name', () => (props: JSX.IntrinsicElements['div']) => ( +
+)); + +// ================================== +// unit tests +// ================================== +describe('screen: TransactionDetails/MovePost', () => { + it('matches snapshot', () => { + const message: MsgMovePost = { + category: 'posts', + type: 'MsgMovePost', + owner: 'owner', + post_id: '1', + subspace_id:'subspace-id-1', + target_subspace_id: 'subspace-id-2', + json: {}, + }; + const component = renderer.create( + + + + ); + const tree = component?.toJSON(); + expect(tree).toMatchSnapshot(); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); +}); diff --git a/apps/web-desmos/src/components/msg/posts/move_post/index.tsx b/apps/web-desmos/src/components/msg/posts/move_post/index.tsx new file mode 100644 index 0000000000..b9357069df --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/move_post/index.tsx @@ -0,0 +1,31 @@ +import Typography from '@mui/material/Typography'; +import AppTrans from '@/components/AppTrans'; +import { FC } from 'react'; +import Name from '@/components/name'; +import MsgMovePost from '@/models/msg/posts/msg_move_post'; +import { useProfileRecoil } from '@/recoil/profiles/hooks'; + +const MovePost: FC<{ message: MsgMovePost }> = (props) => { + const { message } = props; + + const owner = useProfileRecoil(message.owner); + + const authorMoniker = owner ? owner?.name : message.owner; + + return ( + + , ]} + values={{ + owner: authorMoniker, + post_id: message.post_id, + subspace_id: message.subspace_id, + target_subspace_id: message.target_subspace_id, + }} + /> + + ); +}; + +export default MovePost; diff --git a/apps/web-desmos/src/components/msg/posts/refuse_post_owner_transfer_request/__snapshots__/index.test.tsx.snap b/apps/web-desmos/src/components/msg/posts/refuse_post_owner_transfer_request/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000000..db6aaab8b9 --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/refuse_post_owner_transfer_request/__snapshots__/index.test.tsx.snap @@ -0,0 +1,30 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`screen: TransactionDetails/RefusePostOwnerTransferRequest matches snapshot 1`] = ` +.emotion-0 { + margin: 0; + font-size: 1rem; + white-space: pre-wrap; + letter-spacing: 0.5px; + font-family: "Roboto","Helvetica","Arial",sans-serif; + font-weight: 400; + line-height: 1.5; +} + +

+ +

+ + {"receiver":"receiver","post_id":"1","subspace_id":"subspace-id-1"} + +

+`; diff --git a/apps/web-desmos/src/components/msg/posts/refuse_post_owner_transfer_request/index.test.tsx b/apps/web-desmos/src/components/msg/posts/refuse_post_owner_transfer_request/index.test.tsx new file mode 100644 index 0000000000..046ed33eb1 --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/refuse_post_owner_transfer_request/index.test.tsx @@ -0,0 +1,38 @@ +import renderer from 'react-test-renderer'; +import RefusePostOwnerTransferRequest from '@/components/msg/posts/refuse_post_owner_transfer_request'; +import MsgRefusePostOwnerTransferRequest from '@/models/msg/posts/msg_refuse_post_owner_transfer_request'; +import MockTheme from '@/tests/mocks/MockTheme'; + +// ================================== +// mocks +// ================================== +jest.mock('@/components/name', () => (props: JSX.IntrinsicElements['div']) => ( +
+)); + +// ================================== +// unit tests +// ================================== +describe('screen: TransactionDetails/RefusePostOwnerTransferRequest', () => { + it('matches snapshot', () => { + const message: MsgRefusePostOwnerTransferRequest = { + category: 'posts', + type: 'MsgRefusePostOwnerTransferRequest', + receiver: 'receiver', + post_id: '1', + subspace_id: 'subspace-id-1', + json: {}, + }; + const component = renderer.create( + + + + ); + const tree = component?.toJSON(); + expect(tree).toMatchSnapshot(); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); +}); diff --git a/apps/web-desmos/src/components/msg/posts/refuse_post_owner_transfer_request/index.tsx b/apps/web-desmos/src/components/msg/posts/refuse_post_owner_transfer_request/index.tsx new file mode 100644 index 0000000000..f3913d7940 --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/refuse_post_owner_transfer_request/index.tsx @@ -0,0 +1,30 @@ +import Typography from '@mui/material/Typography'; +import AppTrans from '@/components/AppTrans'; +import { FC } from 'react'; +import Name from '@/components/name'; +import MsgRefusePostOwnerTransferRequest from '@/models/msg/posts/msg_refuse_post_owner_transfer_request'; +import { useProfileRecoil } from '@/recoil/profiles/hooks'; + +const RefusePostOwnerTransferRequest: FC<{ message: MsgRefusePostOwnerTransferRequest }> = (props) => { + const { message } = props; + + const receiver = useProfileRecoil(message.receiver); + + const receiverMoniker = receiver ? receiver?.name : message.receiver; + + return ( + + , ]} + values={{ + receiver: receiverMoniker, + post_id: message.post_id, + subspace_id: message.subspace_id + }} + /> + + ); +}; + +export default RefusePostOwnerTransferRequest; diff --git a/apps/web-desmos/src/components/msg/posts/request_post_owner_transfer/__snapshots__/index.test.tsx.snap b/apps/web-desmos/src/components/msg/posts/request_post_owner_transfer/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000000..d5437d74fa --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/request_post_owner_transfer/__snapshots__/index.test.tsx.snap @@ -0,0 +1,36 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`screen: TransactionDetails/RequestPostOwnerTransfer matches snapshot 1`] = ` +.emotion-0 { + margin: 0; + font-size: 1rem; + white-space: pre-wrap; + letter-spacing: 0.5px; + font-family: "Roboto","Helvetica","Arial",sans-serif; + font-weight: 400; + line-height: 1.5; +} + +

+ +

+ +
+ + {"sender":"sender","receiver":"receiver","post_id":"1","subspace_id":"subspace-id-1"} + +

+`; diff --git a/apps/web-desmos/src/components/msg/posts/request_post_owner_transfer/index.test.tsx b/apps/web-desmos/src/components/msg/posts/request_post_owner_transfer/index.test.tsx new file mode 100644 index 0000000000..e41cde737d --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/request_post_owner_transfer/index.test.tsx @@ -0,0 +1,39 @@ +import renderer from 'react-test-renderer'; +import RequestPostOwnerTransfer from '@/components/msg/posts/request_post_owner_transfer'; +import MsgRequestPostOwnerTransfer from '@/models/msg/posts/msg_request_post_owner_transfer'; +import MockTheme from '@/tests/mocks/MockTheme'; + +// ================================== +// mocks +// ================================== +jest.mock('@/components/name', () => (props: JSX.IntrinsicElements['div']) => ( +
+)); + +// ================================== +// unit tests +// ================================== +describe('screen: TransactionDetails/RequestPostOwnerTransfer', () => { + it('matches snapshot', () => { + const message: MsgRequestPostOwnerTransfer = { + category: 'posts', + type: 'MsgRequestPostOwnerTransfer', + sender: 'sender', + receiver: 'receiver', + post_id: '1', + subspace_id: 'subspace-id-1', + json: {}, + }; + const component = renderer.create( + + + + ); + const tree = component?.toJSON(); + expect(tree).toMatchSnapshot(); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); +}); diff --git a/apps/web-desmos/src/components/msg/posts/request_post_owner_transfer/index.tsx b/apps/web-desmos/src/components/msg/posts/request_post_owner_transfer/index.tsx new file mode 100644 index 0000000000..beb18c4270 --- /dev/null +++ b/apps/web-desmos/src/components/msg/posts/request_post_owner_transfer/index.tsx @@ -0,0 +1,35 @@ +import Typography from '@mui/material/Typography'; +import AppTrans from '@/components/AppTrans'; +import { FC } from 'react'; +import Name from '@/components/name'; +import MsgRequestPostOwnerTransfer from '@/models/msg/posts/msg_request_post_owner_transfer'; +import { useProfileRecoil } from '@/recoil/profiles/hooks'; + +const RequestPostOwnerTransfer: FC<{ message: MsgRequestPostOwnerTransfer }> = (props) => { + const { message } = props; + + const sender = useProfileRecoil(message.sender); + const receiver = useProfileRecoil(message.receiver); + + + const senderMoniker = sender ? sender?.name : message.sender; + const receiverMoniker = receiver ? receiver?.name : message.receiver; + + + return ( + + , ,, ]} + values={{ + sender: senderMoniker, + receiver: receiverMoniker, + post_id: message.post_id, + subspace_id: message.subspace_id, + }} + /> + + ); +}; + +export default RequestPostOwnerTransfer; diff --git a/apps/web-desmos/src/components/msg/tokenfactory/burn/__snapshots__/index.test.tsx.snap b/apps/web-desmos/src/components/msg/tokenfactory/burn/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000000..d56b9b64a9 --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/burn/__snapshots__/index.test.tsx.snap @@ -0,0 +1,30 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`screen: TransactionDetails/Burn matches snapshot 1`] = ` +.emotion-0 { + margin: 0; + font-size: 1rem; + white-space: pre-wrap; + letter-spacing: 0.5px; + font-family: "Roboto","Helvetica","Arial",sans-serif; + font-weight: 400; + line-height: 1.5; +} + +

+ +

+ + {"sender":"sender","amount":"100,000 DENOM1","subspace_id":"subspace-id-1"} + +

+`; diff --git a/apps/web-desmos/src/components/msg/tokenfactory/burn/index.test.tsx b/apps/web-desmos/src/components/msg/tokenfactory/burn/index.test.tsx new file mode 100644 index 0000000000..63fc6ba20e --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/burn/index.test.tsx @@ -0,0 +1,47 @@ +import renderer from 'react-test-renderer'; +import Burn from '@/components/msg/tokenfactory/burn'; +import MsgBurn from '@/models/msg/tokenfactory/msg_burn'; +import MockTheme from '@/tests/mocks/MockTheme'; + +// ================================== +// mocks +// ================================== +jest.mock('@/components/name', () => (props: JSX.IntrinsicElements['div']) => ( +
+)); + +// ================================== +// unit tests +// ================================== +describe('screen: TransactionDetails/Burn', () => { + it('matches snapshot', () => { + const message: MsgBurn = { + category: 'tokenfactory', + type: 'MsgBurn', + sender: 'sender', + amount: [ + { + denom: 'denom1', + amount: '100000', + }, + { + denom: 'denom2', + amount: '200000', + }, + ], + subspace_id: 'subspace-id-1', + json: {}, + }; + const component = renderer.create( + + + + ); + const tree = component?.toJSON(); + expect(tree).toMatchSnapshot(); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); +}); diff --git a/apps/web-desmos/src/components/msg/tokenfactory/burn/index.tsx b/apps/web-desmos/src/components/msg/tokenfactory/burn/index.tsx new file mode 100644 index 0000000000..e5eea20c76 --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/burn/index.tsx @@ -0,0 +1,38 @@ +import Typography from '@mui/material/Typography'; +import AppTrans from '@/components/AppTrans'; +import { FC } from 'react'; +import Name from '@/components/name'; +import MsgBurn from '@/models/msg/tokenfactory/msg_burn'; +import { useProfileRecoil } from '@/recoil/profiles/hooks'; +import { formatNumber, formatToken } from '@/utils/format_token'; + +const Burn: FC<{ message: MsgBurn }> = props => { + const { message } = props; + + const sender = useProfileRecoil(message.sender); + + const senderMoniker = sender ? sender?.name : message.sender; + + const amount = formatToken(message.amount[0]?.amount, message.amount[0]?.denom); + + const parsedAmount = `${formatNumber( + amount.value, + amount.exponent + )} ${amount.displayDenom.toUpperCase()}`; + + return ( + + , ]} + values={{ + sender: senderMoniker, + amount: parsedAmount, + subspace_id: message.subspace_id, + }} + /> + + ); +}; + +export default Burn; diff --git a/apps/web-desmos/src/components/msg/tokenfactory/create_denom/__snapshots__/index.test.tsx.snap b/apps/web-desmos/src/components/msg/tokenfactory/create_denom/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000000..2d8972f401 --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/create_denom/__snapshots__/index.test.tsx.snap @@ -0,0 +1,30 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`screen: TransactionDetails/CreateDenom matches snapshot 1`] = ` +.emotion-0 { + margin: 0; + font-size: 1rem; + white-space: pre-wrap; + letter-spacing: 0.5px; + font-family: "Roboto","Helvetica","Arial",sans-serif; + font-weight: 400; + line-height: 1.5; +} + +

+ +

+ + {"sender":"sender","subdenom":"subdenom","subspace_id":"subspace-id-1"} + +

+`; diff --git a/apps/web-desmos/src/components/msg/tokenfactory/create_denom/index.test.tsx b/apps/web-desmos/src/components/msg/tokenfactory/create_denom/index.test.tsx new file mode 100644 index 0000000000..45f8506dae --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/create_denom/index.test.tsx @@ -0,0 +1,38 @@ +import renderer from 'react-test-renderer'; +import CreateDenom from '@/components/msg/tokenfactory/create_denom'; +import MsgCreateDenom from '@/models/msg/tokenfactory/msg_create_denom'; +import MockTheme from '@/tests/mocks/MockTheme'; + +// ================================== +// mocks +// ================================== +jest.mock('@/components/name', () => (props: JSX.IntrinsicElements['div']) => ( +
+)); + +// ================================== +// unit tests +// ================================== +describe('screen: TransactionDetails/CreateDenom', () => { + it('matches snapshot', () => { + const message: MsgCreateDenom = { + category: 'tokenfactory', + type: 'MsgCreateDenom', + sender: 'sender', + subdenom: 'subdenom', + subspace_id: 'subspace-id-1', + json: {}, + }; + const component = renderer.create( + + + + ); + const tree = component?.toJSON(); + expect(tree).toMatchSnapshot(); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); +}); diff --git a/apps/web-desmos/src/components/msg/tokenfactory/create_denom/index.tsx b/apps/web-desmos/src/components/msg/tokenfactory/create_denom/index.tsx new file mode 100644 index 0000000000..ac12dc7ad4 --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/create_denom/index.tsx @@ -0,0 +1,30 @@ +import Typography from '@mui/material/Typography'; +import AppTrans from '@/components/AppTrans'; +import { FC } from 'react'; +import Name from '@/components/name'; +import MsgCreateDenom from '@/models/msg/tokenfactory/msg_create_denom'; +import { useProfileRecoil } from '@/recoil/profiles/hooks'; + +const CreateDenom: FC<{ message: MsgCreateDenom }> = (props) => { + const { message } = props; + + const sender = useProfileRecoil(message.sender); + + const senderMoniker = sender ? sender?.name : message.sender; + + return ( + + , ]} + values={{ + sender: senderMoniker, + subdenom: message.subdenom, + subspace_id: message.subspace_id, + }} + /> + + ); +}; + +export default CreateDenom; diff --git a/apps/web-desmos/src/components/msg/tokenfactory/mint/__snapshots__/index.test.tsx.snap b/apps/web-desmos/src/components/msg/tokenfactory/mint/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000000..c8893d051a --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/mint/__snapshots__/index.test.tsx.snap @@ -0,0 +1,30 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`screen: TransactionDetails/Mint matches snapshot 1`] = ` +.emotion-0 { + margin: 0; + font-size: 1rem; + white-space: pre-wrap; + letter-spacing: 0.5px; + font-family: "Roboto","Helvetica","Arial",sans-serif; + font-weight: 400; + line-height: 1.5; +} + +

+ +

+ + {"sender":"sender","amount":"100,000 DENOM1","subspace_id":"subspace-id-1"} + +

+`; diff --git a/apps/web-desmos/src/components/msg/tokenfactory/mint/index.test.tsx b/apps/web-desmos/src/components/msg/tokenfactory/mint/index.test.tsx new file mode 100644 index 0000000000..1b183d3696 --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/mint/index.test.tsx @@ -0,0 +1,47 @@ +import renderer from 'react-test-renderer'; +import Mint from '@/components/msg/tokenfactory/mint'; +import MsgMint from '@/models/msg/tokenfactory/msg_mint'; +import MockTheme from '@/tests/mocks/MockTheme'; + +// ================================== +// mocks +// ================================== +jest.mock('@/components/name', () => (props: JSX.IntrinsicElements['div']) => ( +
+)); + +// ================================== +// unit tests +// ================================== +describe('screen: TransactionDetails/Mint', () => { + it('matches snapshot', () => { + const message: MsgMint = { + category: 'tokenfactory', + type: 'MsgMint', + sender: 'sender', + amount: [ + { + denom: 'denom1', + amount: '100000', + }, + { + denom: 'denom2', + amount: '200000', + }, + ], + subspace_id: 'subspace-id-1', + json: {}, + }; + const component = renderer.create( + + + + ); + const tree = component?.toJSON(); + expect(tree).toMatchSnapshot(); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); +}); diff --git a/apps/web-desmos/src/components/msg/tokenfactory/mint/index.tsx b/apps/web-desmos/src/components/msg/tokenfactory/mint/index.tsx new file mode 100644 index 0000000000..b53ae46892 --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/mint/index.tsx @@ -0,0 +1,38 @@ +import Typography from '@mui/material/Typography'; +import AppTrans from '@/components/AppTrans'; +import { FC } from 'react'; +import Name from '@/components/name'; +import MsgMint from '@/models/msg/tokenfactory/msg_mint'; +import { useProfileRecoil } from '@/recoil/profiles/hooks'; +import { formatNumber, formatToken } from '@/utils/format_token'; + +const Mint: FC<{ message: MsgMint }> = props => { + const { message } = props; + + const sender = useProfileRecoil(message.sender); + + const senderMoniker = sender ? sender?.name : message.sender; + + const amount = formatToken(message.amount[0]?.amount, message.amount[0]?.denom); + + const parsedAmount = `${formatNumber( + amount.value, + amount.exponent + )} ${amount.displayDenom.toUpperCase()}`; + + return ( + + , ]} + values={{ + sender: senderMoniker, + amount: parsedAmount, + subspace_id: message.subspace_id, + }} + /> + + ); +}; + +export default Mint; diff --git a/apps/web-desmos/src/components/msg/tokenfactory/set_denom_metadata/__snapshots__/index.test.tsx.snap b/apps/web-desmos/src/components/msg/tokenfactory/set_denom_metadata/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000000..804614d644 --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/set_denom_metadata/__snapshots__/index.test.tsx.snap @@ -0,0 +1,30 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`screen: TransactionDetails/SetDenomMetadata matches snapshot 1`] = ` +.emotion-0 { + margin: 0; + font-size: 1rem; + white-space: pre-wrap; + letter-spacing: 0.5px; + font-family: "Roboto","Helvetica","Arial",sans-serif; + font-weight: 400; + line-height: 1.5; +} + +

+ +

+ + {"sender":"sender","subspace_id":"subspace-id-1"} + +

+`; diff --git a/apps/web-desmos/src/components/msg/tokenfactory/set_denom_metadata/index.test.tsx b/apps/web-desmos/src/components/msg/tokenfactory/set_denom_metadata/index.test.tsx new file mode 100644 index 0000000000..7ab611cfaf --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/set_denom_metadata/index.test.tsx @@ -0,0 +1,37 @@ +import renderer from 'react-test-renderer'; +import SetDenomMetadata from '@/components/msg/tokenfactory/set_denom_metadata'; +import MsgSetDenomMetadata from '@/models/msg/tokenfactory/msg_set_denom_metadata'; +import MockTheme from '@/tests/mocks/MockTheme'; + +// ================================== +// mocks +// ================================== +jest.mock('@/components/name', () => (props: JSX.IntrinsicElements['div']) => ( +
+)); + +// ================================== +// unit tests +// ================================== +describe('screen: TransactionDetails/SetDenomMetadata', () => { + it('matches snapshot', () => { + const message: MsgSetDenomMetadata = { + category: 'tokenfactory', + type: 'MsgSetDenomMetadata', + sender: 'sender', + subspace_id: 'subspace-id-1', + json: {}, + }; + const component = renderer.create( + + + + ); + const tree = component?.toJSON(); + expect(tree).toMatchSnapshot(); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); +}); diff --git a/apps/web-desmos/src/components/msg/tokenfactory/set_denom_metadata/index.tsx b/apps/web-desmos/src/components/msg/tokenfactory/set_denom_metadata/index.tsx new file mode 100644 index 0000000000..16c61eeca9 --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/set_denom_metadata/index.tsx @@ -0,0 +1,29 @@ +import Typography from '@mui/material/Typography'; +import AppTrans from '@/components/AppTrans'; +import { FC } from 'react'; +import Name from '@/components/name'; +import MsgSetDenomMetadata from '@/models/msg/tokenfactory/msg_set_denom_metadata'; +import { useProfileRecoil } from '@/recoil/profiles/hooks'; + +const SetDenomMetadata: FC<{ message: MsgSetDenomMetadata }> = (props) => { + const { message } = props; + + const sender = useProfileRecoil(message.sender); + + const senderMoniker = sender ? sender?.name : message.sender; + + return ( + + , ]} + values={{ + sender: senderMoniker, + subspace_id: message.subspace_id, + }} + /> + + ); +}; + +export default SetDenomMetadata; diff --git a/apps/web-desmos/src/components/msg/tokenfactory/update_params/__snapshots__/index.test.tsx.snap b/apps/web-desmos/src/components/msg/tokenfactory/update_params/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000000..ee74de985f --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/update_params/__snapshots__/index.test.tsx.snap @@ -0,0 +1,30 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`screen: TransactionDetails/UpdateParams matches snapshot 1`] = ` +.emotion-0 { + margin: 0; + font-size: 1rem; + white-space: pre-wrap; + letter-spacing: 0.5px; + font-family: "Roboto","Helvetica","Arial",sans-serif; + font-weight: 400; + line-height: 1.5; +} + +

+ +

+ + {"authority":"authority","params":"{}"} + +

+`; diff --git a/apps/web-desmos/src/components/msg/tokenfactory/update_params/index.test.tsx b/apps/web-desmos/src/components/msg/tokenfactory/update_params/index.test.tsx new file mode 100644 index 0000000000..8a1e4fc15d --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/update_params/index.test.tsx @@ -0,0 +1,37 @@ +import renderer from 'react-test-renderer'; +import UpdateParams from '@/components/msg/tokenfactory/update_params'; +import MsgUpdateParams from '@/models/msg/tokenfactory/msg_update_params'; +import MockTheme from '@/tests/mocks/MockTheme'; + +// ================================== +// mocks +// ================================== +jest.mock('@/components/name', () => (props: JSX.IntrinsicElements['div']) => ( +
+)); + +// ================================== +// unit tests +// ================================== +describe('screen: TransactionDetails/UpdateParams', () => { + it('matches snapshot', () => { + const message: MsgUpdateParams = { + category: 'tokenfactory', + type: 'MsgUpdateParams', + authority: 'authority', + params: '{}', + json: {}, + }; + const component = renderer.create( + + + + ); + const tree = component?.toJSON(); + expect(tree).toMatchSnapshot(); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); +}); diff --git a/apps/web-desmos/src/components/msg/tokenfactory/update_params/index.tsx b/apps/web-desmos/src/components/msg/tokenfactory/update_params/index.tsx new file mode 100644 index 0000000000..a61bcb171f --- /dev/null +++ b/apps/web-desmos/src/components/msg/tokenfactory/update_params/index.tsx @@ -0,0 +1,29 @@ +import Typography from '@mui/material/Typography'; +import AppTrans from '@/components/AppTrans'; +import { FC } from 'react'; +import Name from '@/components/name'; +import MsgUpdateParams from '@/models/msg/tokenfactory/msg_update_params'; +import { useProfileRecoil } from '@/recoil/profiles/hooks'; + +const UpdateParams: FC<{ message: MsgUpdateParams }> = (props) => { + const { message } = props; + + const authority = useProfileRecoil(message.authority); + + const authorityMoniker = authority ? authority?.name : message.authority; + + return ( + + , ]} + values={{ + authority: authorityMoniker, + params: message.params, + }} + /> + + ); +}; + +export default UpdateParams; diff --git a/apps/web-desmos/src/components/msg/utils.tsx b/apps/web-desmos/src/components/msg/utils.tsx index b1f63fe31c..9de3ff70a3 100644 --- a/apps/web-desmos/src/components/msg/utils.tsx +++ b/apps/web-desmos/src/components/msg/utils.tsx @@ -479,6 +479,36 @@ const customTypeToModel = { tagTheme: 'four', tagDisplay: 'txMsgDeletePost', }, + '/desmos.posts.v3.MsgMovePost': { + model: MODELS.MsgMovePost, + content: COMPONENTS.MovePost, + tagTheme: 'four', + tagDisplay: 'txMsgMovePost', + }, + '/desmos.posts.v3.MsgRequestPostOwnerTransfer': { + model: MODELS.MsgRequestPostOwnerTransfer, + content: COMPONENTS.RequestPostOwnerTransfer, + tagTheme: 'four', + tagDisplay: 'txMsgRequestPostOwnerTransfer', + }, + '/desmos.posts.v3.MsgCancelPostOwnerTransferRequest': { + model: MODELS.MsgCancelPostOwnerTransferRequest, + content: COMPONENTS.CancelPostOwnerTransferRequest, + tagTheme: 'four', + tagDisplay: 'txMsgCancelPostOwnerTransferRequest', + }, + '/desmos.posts.v3.MsgAcceptPostOwnerTransferRequest': { + model: MODELS.MsgAcceptPostOwnerTransferRequest, + content: COMPONENTS.AcceptPostOwnerTransferRequest, + tagTheme: 'four', + tagDisplay: 'txMsgAcceptPostOwnerTransferRequest', + }, + '/desmos.posts.v3.MsgRefusePostOwnerTransferRequest': { + model: MODELS.MsgRefusePostOwnerTransferRequest, + content: COMPONENTS.RefusePostOwnerTransferRequest, + tagTheme: 'four', + tagDisplay: 'txMsgRefusePostOwnerTransferRequest', + }, '/desmos.posts.v2.MsgAddPostAttachment': { model: MODELS.MsgAddPostAttachment, content: COMPONENTS.AddPostAttachment, @@ -680,6 +710,39 @@ const customTypeToModel = { tagTheme: 'four', tagDisplay: 'txMsgSetUserPermissions', }, + // ======================== + // tokenfactory + // ======================== + '/desmos.tokenfactory.v1.MsgCreateDenom': { + model: MODELS.MsgCreateDenom, + content: COMPONENTS.CreateDenom, + tagTheme: 'four', + tagDisplay: 'txMsgCreateDenom', + }, + '/desmos.tokenfactory.v1.MsgMint': { + model: MODELS.MsgMint, + content: COMPONENTS.Mint, + tagTheme: 'four', + tagDisplay: 'txMsgMint', + }, + '/desmos.tokenfactory.v1.MsgBurn': { + model: MODELS.MsgBurn, + content: COMPONENTS.Burn, + tagTheme: 'four', + tagDisplay: 'txMsgBurn', + }, + '/desmos.tokenfactory.v1.MsgSetDenomMetadata': { + model: MODELS.MsgSetDenomMetadata, + content: COMPONENTS.SetDenomMetadata, + tagTheme: 'four', + tagDisplay: 'txMsgSetDenomMetadata', + }, + '/desmos.tokenfactory.v1.MsgUpdateParams': { + model: MODELS.MsgUpdateParams, + content: COMPONENTS.UpdateParams, + tagTheme: 'four', + tagDisplay: 'txMsgUpdateParams', + }, }; type CustomTypeToModel = typeof customTypeToModel; diff --git a/apps/web-desmos/src/models/index.ts b/apps/web-desmos/src/models/index.ts index 9c443cfe5c..108f2db0c8 100644 --- a/apps/web-desmos/src/models/index.ts +++ b/apps/web-desmos/src/models/index.ts @@ -10,6 +10,11 @@ export { default as MsgSetDefaultExternalAddress } from '@/models/msg/profiles/m export { default as MsgCreatePost } from '@/models/msg/posts/msg_create_post'; export { default as MsgEditPost } from '@/models/msg/posts/msg_edit_post'; export { default as MsgDeletePost } from '@/models/msg/posts/msg_delete_post'; +export { default as MsgMovePost } from '@/models/msg/posts/msg_move_post'; +export { default as MsgRequestPostOwnerTransfer } from '@/models/msg/posts/msg_request_post_owner_transfer'; +export { default as MsgCancelPostOwnerTransferRequest } from '@/models/msg/posts/msg_cancel_post_owner_transfer_request'; +export { default as MsgAcceptPostOwnerTransferRequest } from '@/models/msg/posts/msg_accept_post_owner_transfer_request'; +export { default as MsgRefusePostOwnerTransferRequest } from '@/models/msg/posts/msg_refuse_post_owner_transfer_request'; export { default as MsgAddPostAttachment } from '@/models/msg/posts/msg_add_post_attachment'; export { default as MsgRemovePostAttachment } from '@/models/msg/posts/msg_add_post_attachment'; export { default as MsgAnswerPoll } from '@/models/msg/posts/msg_answer_poll'; @@ -39,4 +44,9 @@ export { default as MsgDeleteUserGroup } from '@/models/msg/subspaces/msg_delete export { default as MsgAddUserToUserGroup } from '@/models/msg/subspaces/msg_add_user_to_user_group'; export { default as MsgRemoveUserFromUserGroup } from '@/models/msg/subspaces/msg_remove_user_from_user_group'; export { default as MsgSetUserPermissions } from '@/models/msg/subspaces/msg_set_user_group_permissions'; +export { default as MsgCreateDenom } from '@/models/msg/tokenfactory/msg_create_denom'; +export { default as MsgMint } from '@/models/msg/tokenfactory/msg_mint'; +export { default as MsgBurn } from '@/models/msg/tokenfactory/msg_burn'; +export { default as MsgSetDenomMetadata } from '@/models/msg/tokenfactory/msg_set_denom_metadata'; +export { default as MsgUpdateParams } from '@/models/msg/tokenfactory/msg_update_params'; export * from 'ui/models'; diff --git a/apps/web-desmos/src/models/msg/posts/msg_accept_post_owner_transfer_request.ts b/apps/web-desmos/src/models/msg/posts/msg_accept_post_owner_transfer_request.ts new file mode 100644 index 0000000000..f623257808 --- /dev/null +++ b/apps/web-desmos/src/models/msg/posts/msg_accept_post_owner_transfer_request.ts @@ -0,0 +1,38 @@ +import * as R from 'ramda'; +import type { Categories } from '@/models/msg/types'; + +class MsgAcceptPostOwnerTransferRequest { + public category: Categories; + + public type: string; + + public json: object; + + public receiver: string; + + public post_id: string; + + public subspace_id: string; + + constructor(payload: object) { + this.category = 'posts'; + this.type = R.pathOr('', ['type'], payload); + this.json = R.pathOr({}, ['json'], payload); + this.receiver = R.pathOr('', ['receiver'], payload); + this.post_id = R.pathOr('', ['post_id'], payload); + this.subspace_id = R.pathOr('', ['subspace_id'], payload); + } + + static fromJson(json: object) { + return { + category: 'posts', + type: R.pathOr('', ['@type'], json), + json, + receiver: R.pathOr('', ['receiver'], json), + post_id: R.pathOr('', ['post_id'], json), + subspace_id: R.pathOr('', ['subspace_id'], json), + }; + } +} + +export default MsgAcceptPostOwnerTransferRequest; diff --git a/apps/web-desmos/src/models/msg/posts/msg_cancel_post_owner_transfer_request.ts b/apps/web-desmos/src/models/msg/posts/msg_cancel_post_owner_transfer_request.ts new file mode 100644 index 0000000000..4583c3e7b1 --- /dev/null +++ b/apps/web-desmos/src/models/msg/posts/msg_cancel_post_owner_transfer_request.ts @@ -0,0 +1,38 @@ +import * as R from 'ramda'; +import type { Categories } from '@/models/msg/types'; + +class MsgCancelPostOwnerTransferRequest { + public category: Categories; + + public type: string; + + public json: object; + + public sender: string; + + public post_id: string; + + public subspace_id: string; + + constructor(payload: object) { + this.category = 'posts'; + this.type = R.pathOr('', ['type'], payload); + this.json = R.pathOr({}, ['json'], payload); + this.sender = R.pathOr('', ['sender'], payload); + this.post_id = R.pathOr('', ['post_id'], payload); + this.subspace_id = R.pathOr('', ['subspace_id'], payload); + } + + static fromJson(json: object) { + return { + category: 'posts', + type: R.pathOr('', ['@type'], json), + json, + sender: R.pathOr('', ['sender'], json), + post_id: R.pathOr('', ['post_id'], json), + subspace_id: R.pathOr('', ['subspace_id'], json), + }; + } +} + +export default MsgCancelPostOwnerTransferRequest; diff --git a/apps/web-desmos/src/models/msg/posts/msg_create_post.ts b/apps/web-desmos/src/models/msg/posts/msg_create_post.ts index fe267db164..f5b5e1c2ad 100644 --- a/apps/web-desmos/src/models/msg/posts/msg_create_post.ts +++ b/apps/web-desmos/src/models/msg/posts/msg_create_post.ts @@ -19,7 +19,7 @@ class MsgCreatePost { static fromJson(json: object): MsgCreatePost { return { - category: 'profiles', + category: 'posts', json, type: R.pathOr('', ['@type'], json), author: R.pathOr('', ['author'], json), diff --git a/apps/web-desmos/src/models/msg/posts/msg_edit_post.ts b/apps/web-desmos/src/models/msg/posts/msg_edit_post.ts index 653a35b011..e2ad66d900 100644 --- a/apps/web-desmos/src/models/msg/posts/msg_edit_post.ts +++ b/apps/web-desmos/src/models/msg/posts/msg_edit_post.ts @@ -1,7 +1,7 @@ import * as R from 'ramda'; import type { Categories } from '@/models/msg/types'; -class MsgCreatePost { +class MsgEditPost { public category: Categories; public type: string; @@ -17,14 +17,14 @@ class MsgCreatePost { this.editor = R.pathOr('', ['editor'], payload); } - static fromJson(json: object): MsgCreatePost { + static fromJson(json: object) { return { - category: 'profiles', - json, + category: 'posts', type: R.pathOr('', ['@type'], json), + json, editor: R.pathOr('', ['editor'], json), }; } } -export default MsgCreatePost; +export default MsgEditPost; diff --git a/apps/web-desmos/src/models/msg/posts/msg_move_post.ts b/apps/web-desmos/src/models/msg/posts/msg_move_post.ts new file mode 100644 index 0000000000..8cdd690b17 --- /dev/null +++ b/apps/web-desmos/src/models/msg/posts/msg_move_post.ts @@ -0,0 +1,42 @@ +import * as R from 'ramda'; +import type { Categories } from '@/models/msg/types'; + +class MsgMovePost { + public category: Categories; + + public type: string; + + public json: object; + + public owner: string; + + public subspace_id: string; + + public post_id: string; + + public target_subspace_id: string; + + constructor(payload: object) { + this.category = 'posts'; + this.type = R.pathOr('', ['type'], payload); + this.json = R.pathOr({}, ['json'], payload); + this.owner = R.pathOr('', ['owner'], payload); + this.subspace_id = R.pathOr('', ['subspace_id'], payload); + this.post_id = R.pathOr('', ['post_id'], payload); + this.target_subspace_id = R.pathOr('', ['target_subspace_id'], payload); + } + + static fromJson(json: object) { + return { + category: 'posts', + type: R.pathOr('', ['@type'], json), + json, + owner: R.pathOr('', ['owner'], json), + subspace_id: R.pathOr('', ['subspace_id'], json), + post_id: R.pathOr('', ['post_id'], json), + target_subspace_id: R.pathOr('', ['target_subspace_id'], json), + }; + } +} + +export default MsgMovePost; diff --git a/apps/web-desmos/src/models/msg/posts/msg_refuse_post_owner_transfer_request.ts b/apps/web-desmos/src/models/msg/posts/msg_refuse_post_owner_transfer_request.ts new file mode 100644 index 0000000000..3f261c07c6 --- /dev/null +++ b/apps/web-desmos/src/models/msg/posts/msg_refuse_post_owner_transfer_request.ts @@ -0,0 +1,38 @@ +import * as R from 'ramda'; +import type { Categories } from '@/models/msg/types'; + +class MsgRefusePostOwnerTransferRequest { + public category: Categories; + + public type: string; + + public json: object; + + public receiver: string; + + public post_id: string; + + public subspace_id: string; + + constructor(payload: object) { + this.category = 'posts'; + this.type = R.pathOr('', ['type'], payload); + this.json = R.pathOr({}, ['json'], payload); + this.receiver = R.pathOr('', ['receiver'], payload); + this.post_id = R.pathOr('', ['post_id'], payload); + this.subspace_id = R.pathOr('', ['subspace_id'], payload); + } + + static fromJson(json: object) { + return { + category: 'posts', + type: R.pathOr('', ['@type'], json), + json, + receiver: R.pathOr('', ['receiver'], json), + post_id: R.pathOr('', ['post_id'], json), + subspace_id: R.pathOr('', ['subspace_id'], json), + }; + } +} + +export default MsgRefusePostOwnerTransferRequest; diff --git a/apps/web-desmos/src/models/msg/posts/msg_request_post_owner_transfer.ts b/apps/web-desmos/src/models/msg/posts/msg_request_post_owner_transfer.ts new file mode 100644 index 0000000000..0844486e18 --- /dev/null +++ b/apps/web-desmos/src/models/msg/posts/msg_request_post_owner_transfer.ts @@ -0,0 +1,42 @@ +import * as R from 'ramda'; +import type { Categories } from '@/models/msg/types'; + +class MsgRequestPostOwnerTransfer { + public category: Categories; + + public type: string; + + public json: object; + + public sender: string; + + public receiver: string; + + public post_id: string; + + public subspace_id: string; + + constructor(payload: object) { + this.category = 'posts'; + this.type = R.pathOr('', ['type'], payload); + this.json = R.pathOr({}, ['json'], payload); + this.sender = R.pathOr('', ['sender'], payload); + this.receiver = R.pathOr('', ['receiver'], payload); + this.post_id = R.pathOr('', ['post_id'], payload); + this.subspace_id = R.pathOr('', ['subspace_id'], payload); + } + + static fromJson(json: object) { + return { + category: 'posts', + type: R.pathOr('', ['@type'], json), + json, + sender: R.pathOr('', ['sender'], json), + receiver: R.pathOr('', ['receiver'], json), + post_id: R.pathOr('', ['post_id'], json), + subspace_id: R.pathOr('', ['subspace_id'], json), + }; + } +} + +export default MsgRequestPostOwnerTransfer; diff --git a/apps/web-desmos/src/models/msg/tokenfactory/msg_burn.ts b/apps/web-desmos/src/models/msg/tokenfactory/msg_burn.ts new file mode 100644 index 0000000000..3d69b72d71 --- /dev/null +++ b/apps/web-desmos/src/models/msg/tokenfactory/msg_burn.ts @@ -0,0 +1,41 @@ +import * as R from 'ramda'; +import type { Categories } from '@/models/msg/types'; + +class MsgBurn { + public category: Categories; + + public type: string; + + public json: object; + + public sender: string; + + public amount: MsgCoin[]; + + public subspace_id: string; + + constructor(payload: object) { + this.category = 'posts'; + this.type = R.pathOr('', ['type'], payload); + this.json = R.pathOr({}, ['json'], payload); + this.sender = R.pathOr('', ['sender'], payload); + this.amount = R.pathOr([], ['amount'], payload); + this.subspace_id = R.pathOr('', ['subspace_id'], payload); + } + + static fromJson(json: object) { + return { + category: 'posts', + type: R.pathOr('', ['@type'], json), + json, + sender: R.pathOr('', ['sender'], json), + amount: R.pathOr([], ['amount'], json).map((x) => ({ + denom: x?.denom ?? '', + amount: x?.amount ?? '0', + })), + subspace_id: R.pathOr('', ['subspace_id'], json), + }; + } +} + +export default MsgBurn; diff --git a/apps/web-desmos/src/models/msg/tokenfactory/msg_create_denom.ts b/apps/web-desmos/src/models/msg/tokenfactory/msg_create_denom.ts new file mode 100644 index 0000000000..35606efc4d --- /dev/null +++ b/apps/web-desmos/src/models/msg/tokenfactory/msg_create_denom.ts @@ -0,0 +1,38 @@ +import * as R from 'ramda'; +import type { Categories } from '@/models/msg/types'; + +class MsgCreateDenom { + public category: Categories; + + public type: string; + + public json: object; + + public sender: string; + + public subdenom: string; + + public subspace_id: string; + + constructor(payload: object) { + this.category = 'posts'; + this.type = R.pathOr('', ['type'], payload); + this.json = R.pathOr({}, ['json'], payload); + this.sender = R.pathOr('', ['sender'], payload); + this.subdenom = R.pathOr('', ['subdenom'], payload); + this.subspace_id = R.pathOr('', ['subspace_id'], payload); + } + + static fromJson(json: object) { + return { + category: 'posts', + type: R.pathOr('', ['@type'], json), + json, + sender: R.pathOr('', ['sender'], json), + subdenom: R.pathOr('', ['subdenom'], json), + subspace_id: R.pathOr('', ['subspace_id'], json), + }; + } +} + +export default MsgCreateDenom; diff --git a/apps/web-desmos/src/models/msg/tokenfactory/msg_mint.ts b/apps/web-desmos/src/models/msg/tokenfactory/msg_mint.ts new file mode 100644 index 0000000000..db1b652d34 --- /dev/null +++ b/apps/web-desmos/src/models/msg/tokenfactory/msg_mint.ts @@ -0,0 +1,41 @@ +import * as R from 'ramda'; +import type { Categories } from '@/models/msg/types'; + +class MsgMint { + public category: Categories; + + public type: string; + + public json: object; + + public sender: string; + + public amount: MsgCoin[]; + + public subspace_id: string; + + constructor(payload: object) { + this.category = 'posts'; + this.type = R.pathOr('', ['type'], payload); + this.json = R.pathOr({}, ['json'], payload); + this.sender = R.pathOr('', ['sender'], payload); + this.amount = R.pathOr([], ['amount'], payload); + this.subspace_id = R.pathOr('', ['subspace_id'], payload); + } + + static fromJson(json: object) { + return { + category: 'posts', + type: R.pathOr('', ['@type'], json), + json, + sender: R.pathOr('', ['sender'], json), + amount: R.pathOr([], ['amount'], json).map((x) => ({ + denom: x?.denom ?? '', + amount: x?.amount ?? '0', + })), + subspace_id: R.pathOr('', ['subspace_id'], json), + }; + } +} + +export default MsgMint; diff --git a/apps/web-desmos/src/models/msg/tokenfactory/msg_set_denom_metadata.ts b/apps/web-desmos/src/models/msg/tokenfactory/msg_set_denom_metadata.ts new file mode 100644 index 0000000000..1d0787ebb4 --- /dev/null +++ b/apps/web-desmos/src/models/msg/tokenfactory/msg_set_denom_metadata.ts @@ -0,0 +1,34 @@ +import * as R from 'ramda'; +import type { Categories } from '@/models/msg/types'; + +class MsgSetDenomMetadata { + public category: Categories; + + public type: string; + + public json: object; + + public sender: string; + + public subspace_id: string; + + constructor(payload: object) { + this.category = 'posts'; + this.type = R.pathOr('', ['type'], payload); + this.json = R.pathOr({}, ['json'], payload); + this.sender = R.pathOr('', ['sender'], payload); + this.subspace_id = R.pathOr('', ['subspace_id'], payload); + } + + static fromJson(json: object) { + return { + category: 'posts', + type: R.pathOr('', ['@type'], json), + json, + sender: R.pathOr('', ['sender'], json), + subspace_id: R.pathOr('', ['subspace_id'], json), + }; + } +} + +export default MsgSetDenomMetadata; diff --git a/apps/web-desmos/src/models/msg/tokenfactory/msg_update_params.ts b/apps/web-desmos/src/models/msg/tokenfactory/msg_update_params.ts new file mode 100644 index 0000000000..cc92c031f3 --- /dev/null +++ b/apps/web-desmos/src/models/msg/tokenfactory/msg_update_params.ts @@ -0,0 +1,34 @@ +import * as R from 'ramda'; +import type { Categories } from '@/models/msg/types'; + +class MsgUpdateParams { + public category: Categories; + + public type: string; + + public json: object; + + public authority: string; + + public params: string; + + constructor(payload: object) { + this.category = 'posts'; + this.type = R.pathOr('', ['type'], payload); + this.json = R.pathOr({}, ['json'], payload); + this.authority = R.pathOr('', ['authority'], payload); + this.params = R.pathOr('', ['params'], payload); + } + + static fromJson(json: object) { + return { + category: 'posts', + type: R.pathOr('', ['@type'], json), + json, + authority: R.pathOr('', ['authority'], json), + params: R.pathOr('', ['params'], json), + }; + } +} + +export default MsgUpdateParams; diff --git a/apps/web-desmos/src/models/msg/types.ts b/apps/web-desmos/src/models/msg/types.ts index ec0dc8e8f2..5e025148f1 100644 --- a/apps/web-desmos/src/models/msg/types.ts +++ b/apps/web-desmos/src/models/msg/types.ts @@ -1,5 +1,5 @@ import type { BaseCategories, Log } from 'ui/models/msg/types'; -export type CustomCategories = 'posts' | 'reactions' | 'reports' | 'subspaces'; // custom modules +export type CustomCategories = 'posts' | 'reactions' | 'reports' | 'subspaces' | 'tokenfactory'; // custom modules export type Categories = BaseCategories | CustomCategories; export type { Log }; diff --git a/packages/ui/public/locales/en/web_desmos.json b/packages/ui/public/locales/en/web_desmos.json index ed71ce7ee0..5b44a2ae87 100644 --- a/packages/ui/public/locales/en/web_desmos.json +++ b/packages/ui/public/locales/en/web_desmos.json @@ -8,6 +8,11 @@ "message_contents.txMsgCreatePost": "<0>{{author}} created a post", "message_contents.txMsgEditPost": "<0>{{editor}} edited a post", "message_contents.txMsgDeletePost": "<0>{{signer}} deleted a post", + "message_contents.txMsgMovePost": "<0>{{owner}} moved a post with ID <1>{{post_id}} from <2>{{subspace_id}} to <3>{{target_subspace_id}} subspace", + "message_contents.txMsgRequestPostOwnerTransfer": "<0>{{sender}} requested to transfer a post <1>{{post_id}} ownership to <2>{{receiver}} in <3>{{subspace_id}} subspace", + "message_contents.txMsgCancelPostOwnerTransferRequest": "<0>{{sender}} cancelled owner transfer request for a post with ID <1>{{post_id}} in <2>{{subspace_id}} subspace", + "message_contents.txMsgAcceptPostOwnerTransferRequest": "<0>{{receiver}} accepted owner transfer request for a post with ID <1>{{post_id}} in <2>{{subspace_id}} subspace", + "message_contents.txMsgRefusePostOwnerTransferRequest": "<0>{{receiver}} refused owner transfer request for a post with ID <1>{{post_id}} in <2>{{subspace_id}} subspace", "message_contents.txMsgAddPostAttachment": "<0>{{editor}} added an attachment to a post", "message_contents.txMsgRemovePostAttachment": "<0>{{editor}} removed an attachment to a post", "message_contents.txMsgAnswerPoll": "<0>{{signer}} answered a poll", @@ -37,6 +42,11 @@ "message_contents.txMsgAddUserToUserGroup": "<0>{{signer}} added <1>{{user}} to a user group", "message_contents.txMsgRemoveUserFromUserGroup": "<0>{{signer}} removed <1>{{user}} from a user group", "message_contents.txMsgSetUserPermissions": "<0>{{signer}} set the permissions for <1>{{user}}", + "message_contents.txMsgCreateDenom": "<0>{{sender}} created <1>{{subdenom}} denom in <2>{{subspace_id}} subspace", + "message_contents.txMsgMint": "<0>{{sender}} minted <1>{{amount}} in <2>{{subspace_id}} subspace", + "message_contents.txMsgBurn": "<0>{{sender}} burned <1>{{amount}} in <2>{{subspace_id}} subspace", + "message_contents.txMsgSetDenomMetadata": "<0>{{sender}} set denom metadata in <1>{{subspace_id}} subspace", + "message_contents.txMsgUpdateParams": "<0>{{authority}} updated params to <1>{{params}}", "message_labels.txLinkChainAccount": "Link Chain Account", "message_labels.txMsgLinkApplication": "Link Application", "message_labels.txMsgUnlinkApplication": "Unlink Application", @@ -45,6 +55,11 @@ "message_labels.txMsgCreatePost": "Create Post", "message_labels.txMsgEditPost": "Edit Post", "message_labels.txMsgDeletePost": "Delete Post", + "message_labels.txMsgMovePost": "Move Post", + "message_labels.txMsgRequestPostOwnerTransfer": "Request Post Owner Transfer", + "message_labels.txMsgCancelPostOwnerTransferRequest": "Cancel Post Owner Transfer Request", + "message_labels.txMsgAcceptPostOwnerTransferRequest": "Accept Post Owner Transfer Request", + "message_labels.txMsgRefusePostOwnerTransferRequest": "Refuse Post Owner Transfer Request", "message_labels.txMsgAddPostAttachment": "Add Post Attachment", "message_labels.txMsgRemovePostAttachment": "Remove Post Attachment", "message_labels.txMsgAnswerPoll": "Answer Poll", @@ -73,5 +88,10 @@ "message_labels.txMsgDeleteUserGroup": "Delete User Group", "message_labels.txMsgAddUserToUserGroup": "Add User To User Group", "message_labels.txMsgRemoveUserFromUserGroup": "Remove User From User Group", - "message_labels.txMsgSetUserPermissions": "Set User Permissions" + "message_labels.txMsgSetUserPermissions": "Set User Permissions", + "message_labels.txMsgCreateDenom": "Create Denom", + "message_labels.txMsgMint": "Mint", + "message_labels.txMsgBurn": "Burn", + "message_labels.txMsgSetDenomMetadata": "Set Denom Metadata", + "message_labels.txMsgUpdateParams": "Update Params" } \ No newline at end of file From 584138bbb2443b74d437546ad04327fa2f0dd003 Mon Sep 17 00:00:00 2001 From: Rachel Ho Date: Mon, 4 Sep 2023 13:04:42 +0800 Subject: [PATCH 02/20] feat: add archway [web-archway] (#1296) ## Description Closes: [BDU-969](https://forbole.atlassian.net/browse/BDU-969) --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [x] ran linting via `yarn lint` - [x] wrote tests where necessary - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] targeted the correct branch - [x] provided a link to the relevant issue or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed - [x] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) --------- Co-authored-by: Magic Cat --- .changeset/afraid-poets-visit.md | 7 + .pnp.cjs | 132 + apps/web-archway/.codecov.yml | 17 + apps/web-archway/.eslintrc.yml | 9 + apps/web-archway/CHANGELOG.md | 812 ++ apps/web-archway/codegen.yml | 13 + apps/web-archway/jest.config.ts | 32 + apps/web-archway/jest.setup.ts | 16 + apps/web-archway/next-env.d.ts | 5 + apps/web-archway/next-i18next.config.js | 11 + apps/web-archway/next-sitemap.config.js | 5 + apps/web-archway/next.config.js | 9 + apps/web-archway/package.json | 138 + .../public/fonts/HindMadurai-Regular.woff2 | Bin 0 -> 45624 bytes .../public/icons/android-chrome-192x192.png | Bin 0 -> 6153 bytes .../public/icons/android-chrome-512x512.png | Bin 0 -> 17642 bytes .../public/icons/apple-touch-icon.png | Bin 0 -> 5660 bytes .../public/icons/browserconfig.xml | 9 + .../public/icons/favicon-16x16.png | Bin 0 -> 1033 bytes .../public/icons/favicon-32x32.png | Bin 0 -> 1714 bytes apps/web-archway/public/icons/favicon.ico | Bin 0 -> 15086 bytes .../public/icons/mstile-150x150.png | Bin 0 -> 3382 bytes .../public/icons/safari-pinned-tab.svg | 61 + .../web-archway/public/icons/site.webmanifest | 19 + .../public/images/default_cover_pattern.png | Bin 0 -> 46167 bytes apps/web-archway/src/chain.json | 163 + .../general/account_details_documents.ts | 105 + .../general/active_validator_count.graphql | 17 + .../src/graphql/general/block_details.graphql | 34 + .../src/graphql/general/block_height.graphql | 5 + .../src/graphql/general/block_time.graphql | 11 + .../src/graphql/general/blocks.graphql | 33 + .../src/graphql/general/chain_id.graphql | 6 + .../src/graphql/general/market_data.graphql | 21 + .../general/messages_by_address.graphql | 15 + .../general/online_voting_power.graphql | 20 + .../src/graphql/general/params.graphql | 19 + .../graphql/general/proposal_details.graphql | 54 + .../src/graphql/general/proposals.graphql | 14 + .../src/graphql/general/token_price.graphql | 15 + .../src/graphql/general/tokenomics.graphql | 12 + .../general/transaction_details.graphql | 17 + .../src/graphql/general/transactions.graphql | 25 + .../graphql/general/validator_details.graphql | 62 + .../general/validator_details_documents.ts | 56 + .../src/graphql/general/validators.graphql | 32 + .../general/validators_address_list.graphql | 28 + .../src/graphql/types/general_types.ts | 9516 +++++++++++++++++ apps/web-archway/src/pages/404.tsx | 10 + apps/web-archway/src/pages/[dtag].tsx | 11 + apps/web-archway/src/pages/_app.tsx | 7 + apps/web-archway/src/pages/_document.tsx | 12 + apps/web-archway/src/pages/_error.tsx | 8 + .../src/pages/accounts/[address].tsx | 18 + .../web-archway/src/pages/blocks/[height].tsx | 17 + apps/web-archway/src/pages/blocks/index.tsx | 16 + apps/web-archway/src/pages/index.tsx | 15 + apps/web-archway/src/pages/params/index.tsx | 10 + apps/web-archway/src/pages/proposals/[id].tsx | 11 + .../web-archway/src/pages/proposals/index.tsx | 10 + .../src/pages/server-sitemap.xml/index.tsx | 8 + .../src/pages/transactions/[tx].tsx | 16 + .../src/pages/transactions/index.tsx | 15 + .../src/pages/validators/[address].tsx | 18 + .../src/pages/validators/index.tsx | 17 + apps/web-archway/tsconfig.json | 13 + .../assets/icons/archway-both.svg | 11 + .../assets/logos/archway-dark.svg | 17 + .../assets/logos/archway-light.svg | 17 + .../ui/src/components/ChainIcon/index.tsx | 7 + yarn.lock | 125 + 71 files changed, 11984 insertions(+) create mode 100644 .changeset/afraid-poets-visit.md create mode 100644 apps/web-archway/.codecov.yml create mode 100644 apps/web-archway/.eslintrc.yml create mode 100644 apps/web-archway/CHANGELOG.md create mode 100644 apps/web-archway/codegen.yml create mode 100644 apps/web-archway/jest.config.ts create mode 100644 apps/web-archway/jest.setup.ts create mode 100644 apps/web-archway/next-env.d.ts create mode 100644 apps/web-archway/next-i18next.config.js create mode 100644 apps/web-archway/next-sitemap.config.js create mode 100644 apps/web-archway/next.config.js create mode 100644 apps/web-archway/package.json create mode 100644 apps/web-archway/public/fonts/HindMadurai-Regular.woff2 create mode 100644 apps/web-archway/public/icons/android-chrome-192x192.png create mode 100644 apps/web-archway/public/icons/android-chrome-512x512.png create mode 100644 apps/web-archway/public/icons/apple-touch-icon.png create mode 100644 apps/web-archway/public/icons/browserconfig.xml create mode 100644 apps/web-archway/public/icons/favicon-16x16.png create mode 100644 apps/web-archway/public/icons/favicon-32x32.png create mode 100644 apps/web-archway/public/icons/favicon.ico create mode 100644 apps/web-archway/public/icons/mstile-150x150.png create mode 100644 apps/web-archway/public/icons/safari-pinned-tab.svg create mode 100644 apps/web-archway/public/icons/site.webmanifest create mode 100644 apps/web-archway/public/images/default_cover_pattern.png create mode 100644 apps/web-archway/src/chain.json create mode 100644 apps/web-archway/src/graphql/general/account_details_documents.ts create mode 100644 apps/web-archway/src/graphql/general/active_validator_count.graphql create mode 100644 apps/web-archway/src/graphql/general/block_details.graphql create mode 100644 apps/web-archway/src/graphql/general/block_height.graphql create mode 100644 apps/web-archway/src/graphql/general/block_time.graphql create mode 100644 apps/web-archway/src/graphql/general/blocks.graphql create mode 100644 apps/web-archway/src/graphql/general/chain_id.graphql create mode 100644 apps/web-archway/src/graphql/general/market_data.graphql create mode 100644 apps/web-archway/src/graphql/general/messages_by_address.graphql create mode 100644 apps/web-archway/src/graphql/general/online_voting_power.graphql create mode 100644 apps/web-archway/src/graphql/general/params.graphql create mode 100644 apps/web-archway/src/graphql/general/proposal_details.graphql create mode 100644 apps/web-archway/src/graphql/general/proposals.graphql create mode 100644 apps/web-archway/src/graphql/general/token_price.graphql create mode 100644 apps/web-archway/src/graphql/general/tokenomics.graphql create mode 100644 apps/web-archway/src/graphql/general/transaction_details.graphql create mode 100644 apps/web-archway/src/graphql/general/transactions.graphql create mode 100644 apps/web-archway/src/graphql/general/validator_details.graphql create mode 100644 apps/web-archway/src/graphql/general/validator_details_documents.ts create mode 100644 apps/web-archway/src/graphql/general/validators.graphql create mode 100644 apps/web-archway/src/graphql/general/validators_address_list.graphql create mode 100644 apps/web-archway/src/graphql/types/general_types.ts create mode 100644 apps/web-archway/src/pages/404.tsx create mode 100644 apps/web-archway/src/pages/[dtag].tsx create mode 100644 apps/web-archway/src/pages/_app.tsx create mode 100644 apps/web-archway/src/pages/_document.tsx create mode 100644 apps/web-archway/src/pages/_error.tsx create mode 100644 apps/web-archway/src/pages/accounts/[address].tsx create mode 100644 apps/web-archway/src/pages/blocks/[height].tsx create mode 100644 apps/web-archway/src/pages/blocks/index.tsx create mode 100644 apps/web-archway/src/pages/index.tsx create mode 100644 apps/web-archway/src/pages/params/index.tsx create mode 100644 apps/web-archway/src/pages/proposals/[id].tsx create mode 100644 apps/web-archway/src/pages/proposals/index.tsx create mode 100644 apps/web-archway/src/pages/server-sitemap.xml/index.tsx create mode 100644 apps/web-archway/src/pages/transactions/[tx].tsx create mode 100644 apps/web-archway/src/pages/transactions/index.tsx create mode 100644 apps/web-archway/src/pages/validators/[address].tsx create mode 100644 apps/web-archway/src/pages/validators/index.tsx create mode 100644 apps/web-archway/tsconfig.json create mode 100644 packages/shared-utils/assets/icons/archway-both.svg create mode 100644 packages/shared-utils/assets/logos/archway-dark.svg create mode 100644 packages/shared-utils/assets/logos/archway-light.svg diff --git a/.changeset/afraid-poets-visit.md b/.changeset/afraid-poets-visit.md new file mode 100644 index 0000000000..581b9f3816 --- /dev/null +++ b/.changeset/afraid-poets-visit.md @@ -0,0 +1,7 @@ +--- +'shared-utils': minor +'web-archway': minor +'ui': minor +--- + +feat: add Archway Big Dipper diff --git a/.pnp.cjs b/.pnp.cjs index 7a45d87007..ea54c75aed 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -27,6 +27,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "name": "web-akash",\ "reference": "workspace:apps/web-akash"\ },\ + {\ + "name": "web-archway",\ + "reference": "workspace:apps/web-archway"\ + },\ {\ "name": "web-assetmantle",\ "reference": "workspace:apps/web-assetmantle"\ @@ -180,6 +184,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["web", ["workspace:apps/web"]],\ ["web-agoric", ["workspace:apps/web-agoric"]],\ ["web-akash", ["workspace:apps/web-akash"]],\ + ["web-archway", ["workspace:apps/web-archway"]],\ ["web-assetmantle", ["workspace:apps/web-assetmantle"]],\ ["web-band", ["workspace:apps/web-band"]],\ ["web-bitsong", ["workspace:apps/web-bitsong"]],\ @@ -21449,6 +21454,133 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "SOFT"\ }]\ ]],\ + ["web-archway", [\ + ["workspace:apps/web-archway", {\ + "packageLocation": "./apps/web-archway/",\ + "packageDependencies": [\ + ["web-archway", "workspace:apps/web-archway"],\ + ["@apollo/client", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:3.7.14"],\ + ["@cosmjs/encoding", "npm:0.30.1"],\ + ["@cosmjs/launchpad", "npm:0.27.1"],\ + ["@cosmjs/stargate", "npm:0.29.5"],\ + ["@emotion/cache", "npm:11.11.0"],\ + ["@emotion/jest", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:11.11.0"],\ + ["@emotion/react", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:11.11.0"],\ + ["@emotion/server", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:11.11.0"],\ + ["@emotion/styled", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:11.11.0"],\ + ["@graphql-codegen/cli", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:3.3.1"],\ + ["@graphql-codegen/client-preset", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:3.0.1"],\ + ["@graphql-codegen/fragment-matcher", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:4.0.1"],\ + ["@graphql-codegen/typescript", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:3.0.4"],\ + ["@graphql-codegen/typescript-operations", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:3.0.4"],\ + ["@graphql-codegen/typescript-react-apollo", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:3.3.7"],\ + ["@graphql-tools/mock", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:8.7.20"],\ + ["@graphql-tools/schema", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:9.0.19"],\ + ["@jest/globals", "npm:29.5.0"],\ + ["@keplr-wallet/types", "npm:0.11.59"],\ + ["@keplr-wallet/wc-client", "npm:0.11.59"],\ + ["@mui/icons-material", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:5.11.16"],\ + ["@mui/material", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:5.12.3"],\ + ["@next/eslint-plugin-next", "npm:13.4.1"],\ + ["@socialgouv/matomo-next", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:1.6.1"],\ + ["@svgr/webpack", "npm:7.0.0"],\ + ["@testing-library/jest-dom", "npm:5.16.5"],\ + ["@testing-library/react", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:14.0.0"],\ + ["@types/big.js", "npm:6.1.6"],\ + ["@types/color", "npm:3.0.3"],\ + ["@types/eslint", "npm:8.37.0"],\ + ["@types/esprima", "npm:4.0.3"],\ + ["@types/jest", "npm:29.5.1"],\ + ["@types/js-yaml", "npm:4.0.5"],\ + ["@types/node", "npm:18.16.5"],\ + ["@types/numeral", "npm:2.0.2"],\ + ["@types/qs", "npm:6.9.7"],\ + ["@types/ramda", "npm:0.29.1"],\ + ["@types/react", "npm:18.2.6"],\ + ["@types/react-dom", "npm:18.2.4"],\ + ["@types/react-test-renderer", "npm:18.0.0"],\ + ["@types/react-virtualized-auto-sizer", "npm:1.0.1"],\ + ["@types/react-window", "npm:1.8.5"],\ + ["@types/react-window-infinite-loader", "npm:1.0.6"],\ + ["@typescript-eslint/eslint-plugin", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:5.59.2"],\ + ["@typescript-eslint/parser", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:5.59.2"],\ + ["@walletconnect/client", "npm:1.8.0"],\ + ["@walletconnect/encoding", "npm:1.0.2"],\ + ["@yarnpkg/pnpify", "npm:4.0.0-rc.43"],\ + ["apollo-link-rest", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:0.9.0"],\ + ["bech32", "npm:2.0.0"],\ + ["big.js", "npm:6.2.1"],\ + ["color", "npm:4.2.3"],\ + ["copy-to-clipboard", "npm:3.3.3"],\ + ["csstype", "npm:3.1.2"],\ + ["dayjs", "npm:1.11.7"],\ + ["dotenv", "npm:16.0.3"],\ + ["eslint", "npm:8.40.0"],\ + ["eslint-config-airbnb", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:19.0.4"],\ + ["eslint-config-custom", "workspace:packages/eslint-config-custom"],\ + ["eslint-config-next", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:13.4.1"],\ + ["eslint-config-prettier", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:8.8.0"],\ + ["eslint-config-turbo", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:1.9.3"],\ + ["eslint-import-resolver-typescript", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:3.5.5"],\ + ["eslint-plugin-import", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:2.27.5"],\ + ["eslint-plugin-jsx-a11y", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:6.7.1"],\ + ["eslint-plugin-react", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:7.32.2"],\ + ["eslint-plugin-react-hooks", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:4.6.0"],\ + ["eslint-plugin-turbo", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:1.9.3"],\ + ["esprima", "npm:4.0.1"],\ + ["framer-motion", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:10.12.8"],\ + ["graphql", "npm:16.6.0"],\ + ["graphql-tag", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:2.12.6"],\ + ["graphql-ws", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:5.12.1"],\ + ["i18next", "npm:22.4.15"],\ + ["jdenticon", "npm:3.2.0"],\ + ["jest", "virtual:f7bc41586b68b5179d26bce3bfb89ba68358f8cd7c2ddff4083d94b6829a704acc2424da9379676891d28c060e6d7ef24661ff4a113dbb2daf852983923aee3a#npm:29.5.0"],\ + ["jest-cli", "virtual:d5102ea91e67e6a6d0fa5039a06fb67a1b3142418e7fa0fa83e3772fea7312d90d28c6e359755b6fea6d78c65348593d88722b1c1ad6476e3b3d5bb912925daa#npm:29.5.0"],\ + ["jest-environment-jsdom", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:29.5.0"],\ + ["jest-localstorage-mock", "npm:2.4.26"],\ + ["jest-presets", "workspace:packages/jest-presets"],\ + ["jest-transform-stub", "npm:2.0.0"],\ + ["jest-watch-typeahead", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:2.2.2"],\ + ["js-yaml", "npm:4.1.0"],\ + ["lightweight-charts", "npm:4.0.1"],\ + ["markdown-to-jsx", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:7.2.0"],\ + ["next", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:13.4.1"],\ + ["next-i18next", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:13.2.2"],\ + ["next-seo", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:6.0.0"],\ + ["next-sitemap", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:4.1.3"],\ + ["numeral", "npm:2.0.6"],\ + ["qrcode.react", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:3.1.0"],\ + ["qs", "npm:6.11.1"],\ + ["ramda", "npm:0.29.0"],\ + ["react", "npm:18.2.0"],\ + ["react-dom", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:18.2.0"],\ + ["react-i18next", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:12.2.2"],\ + ["react-share", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:4.4.1"],\ + ["react-test-renderer", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:18.2.0"],\ + ["react-toastify", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:9.1.2"],\ + ["react-virtualized-auto-sizer", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:1.0.15"],\ + ["react-window", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:1.8.9"],\ + ["react-window-infinite-loader", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:1.0.9"],\ + ["recharts", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:2.5.0"],\ + ["recoil", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:0.7.7"],\ + ["shared-utils", "workspace:packages/shared-utils"],\ + ["subscriptions-transport-ws", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:0.11.0"],\ + ["ts-jest", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:29.1.0"],\ + ["ts-node", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:10.9.1"],\ + ["tsconfig", "workspace:packages/tsconfig"],\ + ["tslib", "npm:2.5.0"],\ + ["tss-react", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:4.8.3"],\ + ["typanion", "npm:3.12.1"],\ + ["typescript", "patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=85af82"],\ + ["ui", "workspace:packages/ui"],\ + ["usehooks-ts", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:2.9.1"],\ + ["ws", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:8.13.0"],\ + ["xss", "npm:1.0.14"],\ + ["zod", "npm:3.21.4"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ ["web-assetmantle", [\ ["workspace:apps/web-assetmantle", {\ "packageLocation": "./apps/web-assetmantle/",\ diff --git a/apps/web-archway/.codecov.yml b/apps/web-archway/.codecov.yml new file mode 100644 index 0000000000..a990bf8809 --- /dev/null +++ b/apps/web-archway/.codecov.yml @@ -0,0 +1,17 @@ +# https://docs.codecov.io/docs/commit-status +coverage: + status: + project: + default: + # basic + target: 0 + threshold: 0% + base: 0% + # advanced + branches: [] + if_no_uploads: error + if_not_found: success + if_ci_failed: error + only_pulls: false + flags: [] + paths: [] diff --git a/apps/web-archway/.eslintrc.yml b/apps/web-archway/.eslintrc.yml new file mode 100644 index 0000000000..fc134c47f1 --- /dev/null +++ b/apps/web-archway/.eslintrc.yml @@ -0,0 +1,9 @@ +root: true +extends: + - custom +ignorePatterns: + - '**/node_modules/*' + - '**/out/*' + - '**/.next/*' + - '**/dist/*' + - '**/src/graphql/*' diff --git a/apps/web-archway/CHANGELOG.md b/apps/web-archway/CHANGELOG.md new file mode 100644 index 0000000000..d2848929a6 --- /dev/null +++ b/apps/web-archway/CHANGELOG.md @@ -0,0 +1,812 @@ +# Unreleased + +## 2.17.2 + +### Patch Changes + +- Updated dependencies [[`99fb1bdf8`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/99fb1bdf8be3e3baa022475903f0ebc8fc9f0619)]: + - shared-utils@2.22.0 + - ui@2.35.0 + +## 2.17.1 + +### Patch Changes + +- Updated dependencies [[`d6d815915`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/d6d815915a397c857247b32882222918eaef14e5), [`1e919a3c7`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/1e919a3c7eff85ce9aef954d59dfe38212fd997a)]: + - shared-utils@2.21.0 + - ui@2.34.0 + +## 2.17.0 + +### Minor Changes + +- [#1279](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1279) [`f7365dfe0`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/f7365dfe0ca3b6f0cbefcb580d255a7977f44a4f) Thanks [@rachelhox](https://github.com/rachelhox)! - feat: price chart component + +### Patch Changes + +- Updated dependencies [[`f7365dfe0`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/f7365dfe0ca3b6f0cbefcb580d255a7977f44a4f)]: + - ui@2.33.0 + +## 2.16.1 + +### Patch Changes + +- Updated dependencies [[`4a8dd7a48`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/4a8dd7a480a65aadefd3ea3af6fc1d5280dacbc2)]: + - shared-utils@2.20.0 + - ui@2.32.0 + +## 2.16.0 + +### Minor Changes + +- [#1258](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1258) [`12079a781`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/12079a78141eb2e5ddee1c9211c5e81bc4e6d0d1) Thanks [@teamchong](https://github.com/teamchong)! - - Integrated `next-sitemap` to auto-generate sitemaps for each Next.js app in the monorepo. This enhancement improves our SEO capabilities and website visibility on search engines. The sitemap will be automatically updated with every build, ensuring it always reflects the current state of the site. + +### Patch Changes + +- Updated dependencies [[`12079a781`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/12079a78141eb2e5ddee1c9211c5e81bc4e6d0d1)]: + - shared-utils@2.19.0 + - ui@2.31.0 + +## 2.15.3 + +### Patch Changes + +- Updated dependencies [[`f5392fbba`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/f5392fbbabf50763001c80faa0f7fefca343f287)]: + - ui@2.30.2 + +## 2.15.2 + +### Patch Changes + +- Updated dependencies [[`5654972fd`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/5654972fdf2bb50bcd8566320dc93294301facab)]: + - shared-utils@2.18.1 + - ui@2.30.1 + +## 2.15.1 + +### Patch Changes + +- Updated dependencies [[`c59a66729`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/c59a66729196471a7adafa23823dc4b1b21e334b), [`3df0639ae`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/3df0639ae1ce872cfd05b535ae55edd9292995b3)]: + - shared-utils@2.18.0 + - ui@2.30.0 + +## 2.15.0 + +### Minor Changes + +- [#1248](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1248) [`376b4b356`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/376b4b356b58375f14f004f62a3c2e1a11c8dccf) Thanks [@rachelhox](https://github.com/rachelhox)! - add Coreum Big Dipper + +- [#1236](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1236) [`fe24afcda`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/fe24afcdad91cb859ee637f2c61d79d177d8c616) Thanks [@rachelhox](https://github.com/rachelhox)! - fix quicksilver validator moniker display + +### Patch Changes + +- Updated dependencies [[`376b4b356`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/376b4b356b58375f14f004f62a3c2e1a11c8dccf), [`fe24afcda`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/fe24afcdad91cb859ee637f2c61d79d177d8c616)]: + - shared-utils@2.17.0 + - ui@2.29.0 + +## 2.14.1 + +### Patch Changes + +- [#1242](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1242) [`66586e088`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/66586e088e49686ef920c00af8035dab1798317e) Thanks [@teamchong](https://github.com/teamchong)! - Shared translations for workspaces + +- Updated dependencies [[`66586e088`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/66586e088e49686ef920c00af8035dab1798317e)]: + - shared-utils@2.16.2 + - ui@2.28.1 + +## 2.14.0 + +### Minor Changes + +- [#1238](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1238) [`a0653bd55`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/a0653bd552af9d2e1c29ea3516b32da3b94d7e0b) Thanks [@rachelhox](https://github.com/rachelhox)! - update login ui + +### Patch Changes + +- [#1225](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1225) [`5316f55cf`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/5316f55cfccc31a44cac4d42de704d0d3f058048) Thanks [@teamchong](https://github.com/teamchong)! - Bump package versions + +- Updated dependencies [[`a0653bd55`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/a0653bd552af9d2e1c29ea3516b32da3b94d7e0b), [`acfb8cf38`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/acfb8cf38ab779cd70117109f86c07f7d87d7a42), [`5316f55cf`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/5316f55cfccc31a44cac4d42de704d0d3f058048)]: + - ui@2.28.0 + - shared-utils@2.16.1 + +## 2.13.0 + +### Minor Changes + +- [#1128](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1128) [`1edb0b236`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/1edb0b236d80993a19b11dc598cbcbb44d1905b4) Thanks [@MonikaCat](https://github.com/MonikaCat)! - Added login with Keplr and WalletConnect([\#1128](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1128)) + +### Patch Changes + +- Updated dependencies [[`1edb0b236`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/1edb0b236d80993a19b11dc598cbcbb44d1905b4)]: + - shared-utils@2.16.0 + - ui@2.27.0 + +## 2.12.2 + +### Patch Changes + +- Updated dependencies [[`2949b87b9`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/2949b87b93676df46bfb824ac486e9b96b9a5ba4)]: + - shared-utils@2.15.0 + - ui@2.26.0 + +## 2.12.1 + +### Patch Changes + +- Updated dependencies [[`d106401de`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/d106401de6ad55be1efa2eedc248ad7277ce524a), [`381e863d1`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/381e863d12c2c56e1a32946f828de6cbd5350c46), [`2113969f5`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/2113969f5dea2d4a2cc177dc94f6ac8994080a67)]: + - ui@2.25.0 + - shared-utils@2.14.0 + +## 2.12.0 + +### Minor Changes + +- [#1223](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1223) [`9082afdce`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/9082afdce5e76b378c612c5cd4f74161403c4a67) Thanks [@rachelhox](https://github.com/rachelhox)! - fix: missing messages from authz module + +### Patch Changes + +- Updated dependencies [[`9082afdce`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/9082afdce5e76b378c612c5cd4f74161403c4a67)]: + - ui@2.24.0 + +## 2.11.1 + +### Patch Changes + +- Updated dependencies [[`26b06277b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/26b06277b6df0ccdf17a8207c39e74d147a20e6e)]: + - ui@2.23.0 + +## 2.11.0 + +### Minor Changes + +- [#1191](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1191) [`9049e712c`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/9049e712c6dacedc5a4733830b2517f7fc6d4862) Thanks [@rachelhox](https://github.com/rachelhox)! - feat: footer add documentation link + +### Patch Changes + +- Updated dependencies [[`9049e712c`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/9049e712c6dacedc5a4733830b2517f7fc6d4862), [`b756f45fd`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/b756f45fde55cb582aa312f4fc9c5c49ce21173c), [`bf192489d`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/bf192489dfc10cf9f6679f08e6a1b96d390e2e00)]: + - ui@2.22.0 + - shared-utils@2.13.0 + +## 2.10.1 + +### Patch Changes + +- [#1196](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1196) [`c4d1d83e3`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/c4d1d83e30922bdb86ffc20d8cde36adad34bd0c) Thanks [@teamchong](https://github.com/teamchong)! - chore: versions bump + +- Updated dependencies [[`c4d1d83e3`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/c4d1d83e30922bdb86ffc20d8cde36adad34bd0c), [`e1502b5d1`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/e1502b5d1ecb50b8da94fc157ac1866ee40df9a8)]: + - shared-utils@2.12.1 + - ui@2.21.0 + +## 2.10.0 + +### Minor Changes + +- [#1183](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1183) [`33750408b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/33750408bfa3bc3195124b78be72c0d54b414bd7) Thanks [@rachelhox](https://github.com/rachelhox)! - feat: theme toggle button and 12-hour/24-hour toggle button + +### Patch Changes + +- Updated dependencies [[`33750408b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/33750408bfa3bc3195124b78be72c0d54b414bd7)]: + - shared-utils@2.12.0 + - ui@2.20.0 + +## 2.9.0 + +### Minor Changes + +- [#1166](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1166) [`f4e9417a0`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/f4e9417a06c3a5667fe541eee2bf2b820566496d) Thanks [@rachelhox](https://github.com/rachelhox)! - add en zht zhs it pl locales + +- [#1166](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1166) [`f4e9417a0`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/f4e9417a06c3a5667fe541eee2bf2b820566496d) Thanks [@rachelhox](https://github.com/rachelhox)! - add zht, zhs, pl and it locales + +### Patch Changes + +- Updated dependencies [[`f4e9417a0`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/f4e9417a06c3a5667fe541eee2bf2b820566496d), [`f4e9417a0`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/f4e9417a06c3a5667fe541eee2bf2b820566496d)]: + - ui@2.19.0 + +## 2.8.14 + +### Patch Changes + +- Updated dependencies [[`8fbfb95d5`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/8fbfb95d5d64ba23bff774aa95ea885839475603)]: + - ui@2.18.0 + +## 2.8.13 + +### Patch Changes + +- Updated dependencies [[`717cb798b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/717cb798b200f5a3afde49695548266fa6bdfb3d)]: + - shared-utils@2.11.0 + - ui@2.17.1 + +## 2.8.12 + +### Patch Changes + +- Updated dependencies [[`98505b6e1`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/98505b6e1ca3001a6b078d30266ed33456c808df)]: + - ui@2.17.0 + +## 2.8.11 + +### Patch Changes + +- Updated dependencies [35f47327d] + - shared-utils@2.10.0 + - ui@2.16.0 + +## 2.8.10 + +### Patch Changes + +- Updated dependencies [29f3ac40] + - ui@2.15.1 + +## 2.8.9 + +### Patch Changes + +- Updated dependencies [9f2e26b1] + - shared-utils@2.9.0 + - ui@2.15.0 + +## 2.8.8 + +### Patch Changes + +- Updated dependencies [e0f32672] + - ui@2.14.3 + +## 2.8.7 + +### Patch Changes + +- Updated dependencies [e11d768a] + - ui@2.14.2 + +## 2.8.6 + +### Patch Changes + +- Updated dependencies [4079b219] + - ui@2.14.1 + +## 2.8.5 + +### Patch Changes + +- Updated dependencies [d08c0dfd] + - shared-utils@2.8.0 + - tsconfig@0.3.0 + - ui@2.14.0 + +## 2.8.4 + +### Patch Changes + +- Updated dependencies [af2e8add5] + - shared-utils@2.7.0 + - ui@2.13.0 + +## 2.8.3 + +### Patch Changes + +- Updated dependencies [b4ac0a0c5] + - shared-utils@2.6.3 + - ui@2.12.1 + +## 2.8.2 + +### Patch Changes + +- Updated dependencies [e12c3b0c2] + - ui@2.12.0 + +## 2.8.1 + +### Patch Changes + +- Updated dependencies [a04d53bd8] +- Updated dependencies [a04d53bd8] +- Updated dependencies [a04d53bd8] + - ui@2.11.1 + +## 2.8.0 + +### Minor Changes + +- d967ae3f: migrate from next-tranlsate to next-i18next + + - replace {{count}} in locales/en/\*.json to {{num}} because {{count}} is reserved for next-18next + - add getServerSideProps to path with dynamic route param + - add getStaticProps to path without dynamic route param + +### Patch Changes + +- d967ae3f: remove @sentry/nextjs package, add install sentry script to install @sentry/nextjs when deployment via docker +- d967ae3f: replace dompurify package with xss +- d967ae3f: feat: change matomoSiteID to 8 +- d967ae3f: move jest setup coding to ui worksapce +- Updated dependencies [d967ae3f] +- Updated dependencies [d967ae3f] +- Updated dependencies [d967ae3f] +- Updated dependencies [d967ae3f] +- Updated dependencies [d967ae3f] +- Updated dependencies [d967ae3f] +- Updated dependencies [d967ae3f] + - tsconfig@0.2.0 + - ui@2.11.0 + +## 2.7.2 + +### Patch Changes + +- b64119a1: feat: handle respoonsive UI via CSS instead of using JS +- Updated dependencies [b64119a1] + - shared-utils@2.6.2 + - ui@2.10.4 + +## 2.7.1 + +### Patch Changes + +- dc085630: feat: Add Rotate banner feature +- Updated dependencies [dc085630] + - shared-utils@2.6.1 + - ui@2.10.1 + +## 2.7.0 + +### Minor Changes + +- 85dd8c7d: Migrate MUI v4 to MUI v5, Next v12 to v13, React v17 to v18 + +### Patch Changes + +- Updated dependencies [85dd8c7d] + - shared-utils@2.6.0 + - ui@2.10.0 + +## 2.6.0 + +### Minor Changes + +- 8ea919c8: auto deployment based on PR title keyword + +### Patch Changes + +- Updated dependencies [8ea919c8] + - ui@2.9.0 + +## 2.5.0 + +### Minor Changes + +- 650f686b: Enable Yarn Plug'n'Play (Zero-Installs) + +### Patch Changes + +- Updated dependencies [650f686b] + - shared-utils@2.5.0 + - ui@2.7.0 + +## 2.4.1 + +### Patch Changes + +- 2db4ee93: performance improvements and bug fixes +- Updated dependencies [2db4ee93] + - ui@2.6.1 + +## 2.4.0 + +### Minor Changes + +- df8a5bca: - batch network requests ([\#1092](https://github.com/forbole/big-dipper-2.0-cosmos/issues/1092)) + +### Patch Changes + +- Updated dependencies [df8a5bca] + - ui@2.5.0 + +## 2.3.0 + +### Minor Changes + +- e6437552: fix: numeral [NaN issue](https://github.com/adamwdraper/Numeral-js/issues/596) + +### Patch Changes + +- e6437552: refactor: add config for voting power exponent +- e6437552: fix: transaction message raw and filter not working +- e6437552: fix: WebSocket use default instead of GRAPHQL_TRANSPORT_WS_PROTOCOL +- e6437552: ci: Add bulk preview / publish to Akash +- e6437552: fix: height is not display properly in consensus ui +- e6437552: fix: type erros missing type declaration csstype +- Updated dependencies [e6437552] +- Updated dependencies [e6437552] +- Updated dependencies [e6437552] +- Updated dependencies [e6437552] +- Updated dependencies [e6437552] +- Updated dependencies [e6437552] +- Updated dependencies [e6437552] + + - shared-utils@2.3.0 + - ui@2.3.0 + +- Display `requested amount` and `recipient` fields inside Community Pool Spend proposal details page ([\#1053](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1053)) +- Added Connect Wallet pop up screen ([\#1068](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1068)) + +# main-v2.2.0 - 2022-11-22 + +## Changes + +- Moved env variables to config ([\#1007](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1007)) +- Added Sentry's Next.js SDK ([\#1005](https://github.com/forbole/big-dipper-2.0-cosmos/issues/1005)) +- Switched from using `npm` to `yarn berry` package manager ([\#1028](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1028)) +- Setup monorepo ([\#1035](https://github.com/forbole/big-dipper-2.0-cosmos/issues/1035)) +- Incremented unit tests coverage ([\#1044](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1044)) +- Increment E2E tests coverage ([\#1047](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1047)) +- Added Affiliate Marketing advertising banners ([\#1056](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1056)) + +# base-v2.1.2 - 2022-09-11 + +## Fixes + +- Fixed `/font` after chain prefix `/desmos` in global.css ([\#992](https://github.com/forbole/big-dipper-2.0-cosmos/issues/992)) + +# base-v2.1.1 - 2022-08-29 + +## Fixes + +- Added missing dependency of `useEffect` in `useProfilesRecoil` to avoid desmos profile from not being loaded ([\#904](https://github.com/forbole/big-dipper-2.0-cosmos/issues/904)) + +## Changes + +- Updated validator and account details to not be found if bech32 is invalid +- Removed the use of NEXT_PUBLIC_URL +- Updated graphql types generation structure (in preparation for third party modules) +- Updated preview image location +- Updated change url files ([\#972](https://github.com/forbole/big-dipper-2.0-cosmos/issues/972)) +- Added `NEXT_PUBLIC_MATOMO_URL` and `NEXT_PUBLIC_MATOMO_SITE_ID` to github workflow production ([\#972](https://github.com/forbole/big-dipper-2.0-cosmos/issues/972)) + +# base-v2.1.0 - 2022-04-19 + +## Changes + +- Updated not found and 404 logo ([\#792](https://github.com/forbole/big-dipper-2.0-cosmos/issues/792)) +- Fixed params % display ([\#795](https://github.com/forbole/big-dipper-2.0-cosmos/issues/795)) +- Updated params page if time period less than 1 day then show seconds ([\#797](https://github.com/forbole/big-dipper-2.0-cosmos/issues/797)) +- Added token price history component ([\#784](https://github.com/forbole/big-dipper-2.0-cosmos/issues/784)) +- Updated Account details hasura actions to default call 100 items instead of 10 for better performance +- Added back proposal details quorum % ([\#788](https://github.com/forbole/big-dipper-2.0-cosmos/issues/788)) +- Updated validator details hasura actions performances ([\#812](https://github.com/forbole/big-dipper-2.0-cosmos/issues/812)) + +## Fixes + +- Fixed commission being displayed for non validator accounts ([\#787](https://github.com/forbole/big-dipper-2.0-cosmos/issues/787)) +- Added community tax in to apr calculation ([\#810](https://github.com/forbole/big-dipper-2.0-cosmos/issues/810)) + +# base-v2.0.2 - 2022-03-23 + +## Bug fixes + +- Fixed proposal details chart percentage display + +# base-v2.0.1 - 2022-03-17 + +## Bug fixes + +- Fixed online voting power total ([\#800](https://github.com/forbole/big-dipper-2.0-cosmos/issues/800)) + +# base-v2.0.0 - 2022-03-10 + +## Changes + +- Changed online voting power to be a query instead of a subscription ([\#638](https://github.com/forbole/big-dipper-2.0-cosmos/issues/638)) +- Optimised rendering of Proposal Details page ([\#763](https://github.com/forbole/big-dipper-2.0-cosmos/issues/763)) +- Updated online voting power display ([\#776](https://github.com/forbole/big-dipper-2.0-cosmos/issues/776)) +- Improved initial loading speed by asyncing top level functions ([\#773](https://github.com/forbole/big-dipper-2.0-cosmos/issues/773)) + +## Bug fixes + +- Fixed Apr error if bonded tokens is 0 ([\#758](https://github.com/forbole/big-dipper-2.0-cosmos/issues/758)) + +## Breaking + +- [Bdjuno](https://github.com/forbole/bdjuno) must be on `v2.0.0` + +# base-v2.0.0-rc3 - 2022-02-25 + +## Changes + +- Changed `NEXT_PUBLIC_WS_CHAIN_URL` to `NEXT_PUBLIC_RPC_WEBSOCKET` for clarification +- Changed `NEXT_PUBLIC_CHAIN_STATUS` to `NEXT_PUBLIC_CHAIN_TYPE` for clarification + +## Migration + +- Changed env `NEXT_PUBLIC_WS_CHAIN_URL` to `NEXT_PUBLIC_RPC_WEBSOCKET` or don't. It's backwards compatible +- Changed env `NEXT_PUBLIC_CHAIN_STATUS` to `NEXT_PUBLIC_CHAIN_TYPE` or don't. It's backwards compatible + +## Breaking + +- [Bdjuno](https://github.com/forbole/bdjuno) must be on `v2.0.0` + +# base-v2.0.0-rc2 - 2022-02-24 + +## Changes + +- Updated market cap display ([\#698](https://github.com/forbole/big-dipper-2.0-cosmos/issues/698)) +- Optimised validator details and account details to prevent random polling behavior ([\#703](https://github.com/forbole/big-dipper-2.0-cosmos/issues/703)) +- Added hasura actions error handling in account details ([\#713](https://github.com/forbole/big-dipper-2.0-cosmos/issues/713)) +- Updated to display accounts even if balance is 0 and does not exist ([\#692](https://github.com/forbole/big-dipper-2.0-cosmos/issues/692)) +- Updated handling of 18 decimal places denoms ([\#724](https://github.com/forbole/big-dipper-2.0-cosmos/issues/724)) + +## Bug fixes + +- Added better handling of get denom return types ([\#735](https://github.com/forbole/big-dipper-2.0-cosmos/issues/735)) +- Updated ui to match the improved hasura actions return types + +# base-v2.0.0-rc1 - 2022-02-07 + +## Changes + +- Updated Hasura Actions + +## Breaking + +- [Bdjuno](https://github.com/forbole/bdjuno) must be on `v1.0.0` + +# base-v1.10.0 - 2022-01-25 + +## Changes + +- Optimized initial loading by setting basic details first then profiles after ([\#629](https://github.com/forbole/big-dipper-2.0-cosmos/issues/629)) +- Added vp token unit in config ([\#645](https://github.com/forbole/big-dipper-2.0-cosmos/issues/645)) + +## Bug fixes + +- Fixed home page validator image url not displaying correctly ([\#632](https://github.com/forbole/big-dipper-2.0-cosmos/issues/632)) +- Fix validator anc account details possible infinite load due to dayjs in hook +- Added description sanitization to proposals list ([\#666](https://github.com/forbole/big-dipper-2.0-cosmos/issues/666)) +- Fixed pagination hook page callback ([\#667](https://github.com/forbole/big-dipper-2.0-cosmos/issues/667)) +- Showed address if name or moniker is empty ([\#668](https://github.com/forbole/big-dipper-2.0-cosmos/issues/668)) + +## Migration + +- [v1.9.0 to v1.10.0](https://docs.bigdipper.live/cosmos-based/frontend/migrations/v1.9.0-to-v1.10.0) + +# base-v1.9.0 - 2022-01-10 + +## Changes + +- Added logs in tx details ([\#515](https://github.com/forbole/big-dipper-2.0-cosmos/issues/515)) +- Added tombstoned status ([\#600](https://github.com/forbole/big-dipper-2.0-cosmos/issues/600)) +- Added manual versioning in ui ([\#605](https://github.com/forbole/big-dipper-2.0-cosmos/issues/605)) +- Optimized tx list for chains with heavy traffic ([\#602](https://github.com/forbole/big-dipper-2.0-cosmos/issues/602)) +- Setup case insensitive search in dtags ([\#592](https://github.com/forbole/big-dipper-2.0-cosmos/issues/592)) +- Fixed profiles logic ([\#591](https://github.com/forbole/big-dipper-2.0-cosmos/issues/591)) +- Added AvatarNameListMsg for handling msgs with multiple users ([\#619](https://github.com/forbole/big-dipper-2.0-cosmos/issues/619)) + +# base-v1.8.4 - 2021-12-08 + +## Bug fixes + +- Fix `feegrant` and `authz` messages ([\#588](https://github.com/forbole/big-dipper-2.0-cosmos/issues/588)) + +# base-v1.8.3 - 2021-12-07 + +## Bug fixes + +- Fix validators list not displaying inactive validators ([\#583](https://github.com/forbole/big-dipper-2.0-cosmos/issues/583)) + +# base-v1.8.2 - 2021-12-06 + +## Bug fixes + +- Fix APR to handle multiple supply coins + +# base-v1.8.1 - 2021-12-06 + +## Bug fixes + +- Fix `formatNumber` display after cleaning up ending 0s + +# base-v1.8.0 - 2021-12-06 + +## Changes + +- Display `APR` on title bar ([\#483](https://github.com/forbole/big-dipper-2.0-cosmos/issues/483)) +- Add `@dtag` to search bar ([\#554](https://github.com/forbole/big-dipper-2.0-cosmos/issues/554)) +- Add `/@dtag` feature ([\#428](https://github.com/forbole/big-dipper-2.0-cosmos/issues/428)) +- Add `feegrant` and `authz` messages ([\#481](https://github.com/forbole/big-dipper-2.0-cosmos/issues/481)) +- Add `vesting` messages ([\#538](https://github.com/forbole/big-dipper-2.0-cosmos/issues/538)) +- Add status row in `/validators` ([\#556](https://github.com/forbole/big-dipper-2.0-cosmos/issues/556)) +- Show who the top 34% validators are ([\#506](https://github.com/forbole/big-dipper-2.0-cosmos/issues/506)) + +## Bug fixes + +- Fix validator searchbar ([\#540](https://github.com/forbole/big-dipper-2.0-cosmos/issues/540)) + +# base-v1.7.0 - 2021-11-23 + +## Changes + +- Fix account details denom display ([\#478](https://github.com/forbole/big-dipper-2.0-cosmos/issues/478)) +- Replace average block time with average since last hour ([\#480](https://github.com/forbole/big-dipper-2.0-cosmos/issues/480)) +- Renamed `PROFILE_DETAILS` to `ADDRESS_DETAILS` ([\#503](https://github.com/forbole/big-dipper-2.0-cosmos/issues/503)) +- Update handling of block height in searchbar ([\#501](https://github.com/forbole/big-dipper-2.0-cosmos/issues/501)) +- Fix community pool spend proposal display ([\#520](https://github.com/forbole/big-dipper-2.0-cosmos/issues/520)) +- Update how tokens are formatted and display up to 18 decimal places ([\#524](https://github.com/forbole/big-dipper-2.0-cosmos/issues/524)) +- Auto display 0% if validator is not active ([\#541](https://github.com/forbole/big-dipper-2.0-cosmos/issues/541)) + +## Migration + +- [v1.6.0 to v1.7.0](https://docs.bigdipper.live/cosmos-based/frontend/migrations/v1.6.0-to-v1.7.0) + +# base-v1.6.0 - 2021-11-01 + +## Changes + +- Converted all react context in to recoil ([\#455](https://github.com/forbole/big-dipper-2.0-cosmos/issues/455)) +- Enabled desmos profile for delegators ([\#277](https://github.com/forbole/big-dipper-2.0-cosmos/issues/277)) +- Add license comment ([\#474](https://github.com/forbole/big-dipper-2.0-cosmos/issues/474)) +- Add redirect for old big dipper urls ([\#427](https://github.com/forbole/big-dipper-2.0-cosmos/issues/427)) +- Fix desmos profile alignment ([\#435](https://github.com/forbole/big-dipper-2.0-cosmos/issues/435)) + +## Migration + +- [v1.x.x to v1.6.0](https://docs.bigdipper.live/cosmos-based/frontend/migrations/v1.x.x-to-v1.6.0) + +# base-v1.5.1 - 2021-10-11 + +## Changes + +- Fixed `detailed` transaction list not showing correct msg count + +# base-v1.5.0 - 2021-10-11 + +## Changes + +- Displayed desmos profile native address in connections ([\#420](https://github.com/forbole/big-dipper-2.0-cosmos/issues/420)) +- Create `compact` and `detailed` transaction list views for users with different needs ([\#391](https://github.com/forbole/big-dipper-2.0-cosmos/issues/391)) +- Updated `chain_config` + +# base-v1.4.0 - 2021-10-04 + +## Changes + +- Updated markdown to handle `\n` +- Changed validator list tab orders ([\#411](https://github.com/forbole/big-dipper-2.0-cosmos/issues/411)) +- Update numeral formats based on denom exponent ([\#409](https://github.com/forbole/big-dipper-2.0-cosmos/issues/409)) + +## Bug fixes + +- Fixed rewards dict inside account details ([\#412](https://github.com/forbole/big-dipper-2.0-cosmos/issues/412)) + +# base-v1.3.0 - 2021-09-27 + +## Changes + +- Hides delegators in account details if amount is 0 ([\#369](https://github.com/forbole/big-dipper-2.0-cosmos/issues/369)) +- Add MsgCoin global delclaration ([\#367](https://github.com/forbole/big-dipper-2.0-cosmos/issues/367)) + +## Bug fixes + +- Fixed tx msg label padding typo ([\#382](https://github.com/forbole/big-dipper-2.0-cosmos/issues/382)) +- Added default config value for online voting power ([\#378](https://github.com/forbole/big-dipper-2.0-cosmos/issues/378)) +- Fixes how queries are called so data matches on ui ([\#371](https://github.com/forbole/big-dipper-2.0-cosmos/issues/371)) + +# base-v1.2.0 - 2021-09-20 + +## Changes + +- Update price and market cap display ([\#322](https://github.com/forbole/big-dipper-2.0-cosmos/issues/322)) + +## Bug fixes + +- Fix account and validator details redelegation linking consensus address ([\#323](https://github.com/forbole/big-dipper-2.0-cosmos/issues/323)) + +# base-v1.1.1 - 2021-09-17 + +## Hotfix + +- Fixed display error with previous delegation rewards also adding to total rewards balance + +# base-v1.1.0 - 2021-09-13 + +## Changes + +- Centered desmos profile cover photo ([\#285](https://github.com/forbole/big-dipper-2.0-cosmos/issues/285)) +- Add License to footer ([\#287](https://github.com/forbole/big-dipper-2.0-cosmos/issues/287)) +- Changed position of desmos profile +- Fix avatar images not loading correctly ([\#296](https://github.com/forbole/big-dipper-2.0-cosmos/issues/296)) +- Fix rendering issue on account and validtor details page ([\#297](https://github.com/forbole/big-dipper-2.0-cosmos/issues/297)) +- Add validator status to account delegation component ([\#307](https://github.com/forbole/big-dipper-2.0-cosmos/issues/307)) + +# base-v1.0.9 - 2021-09-03 + +## Bug fixes + +- Fixed desmos profile edge case display + +# base-v1.0.8 - 2021-09-03 + +## Changes + +- Change how markdown is displayed ([\#274](https://github.com/forbole/big-dipper-2.0-cosmos/issues/274)) +- Update desmos profile component ([\#273](https://github.com/forbole/big-dipper-2.0-cosmos/issues/273)) ([\#140](https://github.com/forbole/big-dipper-2.0-cosmos/issues/140)) +- Fixed account detail balance ([\#271](https://github.com/forbole/big-dipper-2.0-cosmos/issues/271)) +- Update account/ validator details staking component sorting order ([\#266](https://github.com/forbole/big-dipper-2.0-cosmos/issues/266)) + +## Bug fixes + +- Fix withdraw rewards display error if not enough gas + +# base-v1.0.7 - 2021-08-31 + +## Changes + +- Added testnet and mainnet configs for easier deployment of the same chain in different stages +- Update akash webhook CICD + +# base-v1.0.6 - 2021-08-25 + +## Changes + +- Updated SEO structure + +# base-v1.0.5 - 2021-08-23 + +## Changes + +- Updated models msg types ([\#225](https://github.com/forbole/big-dipper-2.0-cosmos/issues/225)) +- Update github actions CI/CD + +## Bug fixes + +- Fix staking param details displaying incorrect `Max Validators` + +# base-v1.0.4 - 2021-08-19 + +## Changes + +- Change logo placement in nav mobile ([\#202](https://github.com/forbole/big-dipper-2.0-cosmos/issues/202)) +- Increased tag colors ([\#207](https://github.com/forbole/big-dipper-2.0-cosmos/issues/207)) +- Add IBC messages ([\#192](https://github.com/forbole/big-dipper-2.0-cosmos/issues/192)) + +# base-v1.0.3 + +## Changes + +- Bump next 10 to next 11 +- Bump react v16.x.x to v17.x.x +- Update logo to have max height of 55px + +# base-v1.0.2 + +## Changes + +- Update the structure layout of themes +- Update footer light and dark theme +- Add maintainer section in footer + +# base-v1.0.1 + +## Bug fixes + +- Fixed tokenomics legend to use the correct colors + +# base-v1.0.0 + +## Changes + +- Created initial boilerplate base +- Updated proposal details to display results using snapshots instead of realtime data ([\#116](https://github.com/forbole/big-dipper-2.0-cosmos/issues/116)) +- Added desmos profile feature +- Update chain status notifications ([\#141](https://github.com/forbole/big-dipper-2.0-cosmos/issues/141)) +- Add custom 500 page ([\#149](https://github.com/forbole/big-dipper-2.0-cosmos/issues/149)) +- Fix twitter crawler preview ([\#144](https://github.com/forbole/big-dipper-2.0-cosmos/issues/144)) +- Update params visualisation ([\#152](https://github.com/forbole/big-dipper-2.0-cosmos/issues/152)) +- Make mui tabs scrollable ([\#152](https://github.com/forbole/big-dipper-2.0-cosmos/issues/153)) +- Moved documentation to own repo ([\#162](https://github.com/forbole/big-dipper-2.0-cosmos/issues/162)) +- Add validator last seen active feature ([\#160](https://github.com/forbole/big-dipper-2.0-cosmos/issues/160)) +- Updated params to be JSONB with models typed +- Add logos by different theme ([\#168](https://github.com/forbole/big-dipper-2.0-cosmos/issues/160)) diff --git a/apps/web-archway/codegen.yml b/apps/web-archway/codegen.yml new file mode 100644 index 0000000000..1a7c1e9ee9 --- /dev/null +++ b/apps/web-archway/codegen.yml @@ -0,0 +1,13 @@ +overwrite: true +generates: + ./src/graphql/types/general_types.ts: + documents: + - 'src/graphql/general/*' + schema: https://gql.archway.forbole.com/v1/graphql + config: + # omitOperationSuffix: true + skipTypeNameForRoot: true + plugins: + - 'typescript' + - 'typescript-operations' + - 'typescript-react-apollo' # To generate custom hooks per query diff --git a/apps/web-archway/jest.config.ts b/apps/web-archway/jest.config.ts new file mode 100644 index 0000000000..d0d9cb919a --- /dev/null +++ b/apps/web-archway/jest.config.ts @@ -0,0 +1,32 @@ +import configFromPreset from 'jest-presets/jest/node/jest-preset'; +import nextJest from 'next/jest'; +import { pathsToModuleNameMapper } from 'ts-jest'; +import tsconfig from './tsconfig.json'; + +/* Creating a jest configuration for nextjs. */ +const createJestConfig = nextJest({ + dir: './', +})(configFromPreset); + +const exportFunc = async () => { + // Create Next.js jest configuration + const configFromNext = await createJestConfig(); + Object.keys(configFromNext.moduleNameMapper).forEach((regExp) => { + if (new RegExp(regExp).test('_.svg')) { + configFromNext.moduleNameMapper[regExp] = 'shared-utils/__mocks__/svg.js'; + } + }); + // moduleNameMapper overrided by nextjs, so we need to add it here. + const finalConfig = { + ...configFromNext, + moduleNameMapper: { + ...configFromNext.moduleNameMapper, + ...pathsToModuleNameMapper(tsconfig.compilerOptions.paths, { + prefix: '/src/', + }), + }, + }; + return finalConfig; +}; + +export default exportFunc; diff --git a/apps/web-archway/jest.setup.ts b/apps/web-archway/jest.setup.ts new file mode 100644 index 0000000000..301ebcb836 --- /dev/null +++ b/apps/web-archway/jest.setup.ts @@ -0,0 +1,16 @@ +import mockApollo from '@/tests/mocks/mockApollo'; +import mockChainConfig from '@/tests/mocks/mockChainConfig'; +import mockDayJs from '@/tests/mocks/mockDayJs'; +import mockDynamicComponent from '@/tests/mocks/mockDynamicComponent'; +import mockI18Next from '@/tests/mocks/mockI18Next'; +import mockProfiles from '@/tests/mocks/mockProfiles'; +import '@testing-library/jest-dom/extend-expect'; +import 'jest-localstorage-mock'; + +jest.setTimeout(30000); +mockI18Next(); +mockApollo(); +mockChainConfig(); +mockDayJs(); +mockDynamicComponent(); +mockProfiles(); diff --git a/apps/web-archway/next-env.d.ts b/apps/web-archway/next-env.d.ts new file mode 100644 index 0000000000..4f11a03dc6 --- /dev/null +++ b/apps/web-archway/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/apps/web-archway/next-i18next.config.js b/apps/web-archway/next-i18next.config.js new file mode 100644 index 0000000000..ebf68ae324 --- /dev/null +++ b/apps/web-archway/next-i18next.config.js @@ -0,0 +1,11 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +const { resolve } = require('path'); + +module.exports = { + i18n: { + defaultLocale: 'en', + locales: ['en', 'zht', 'zhs', 'it', 'pl'], + }, + localeDetection: false, + localePath: resolve('../../packages/ui/public/locales'), +}; diff --git a/apps/web-archway/next-sitemap.config.js b/apps/web-archway/next-sitemap.config.js new file mode 100644 index 0000000000..f1d46928c5 --- /dev/null +++ b/apps/web-archway/next-sitemap.config.js @@ -0,0 +1,5 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +const { readFileSync } = require('fs'); +const getSitemap = require('shared-utils/configs/sitemap'); + +module.exports = getSitemap(JSON.parse(readFileSync('./package.json', 'utf8')).name); diff --git a/apps/web-archway/next.config.js b/apps/web-archway/next.config.js new file mode 100644 index 0000000000..76ba5b65c2 --- /dev/null +++ b/apps/web-archway/next.config.js @@ -0,0 +1,9 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +const { readFileSync } = require('fs'); +const { i18n } = require('./next-i18next.config'); +const getNextConfig = require('../../packages/shared-utils/configs/next'); + +const nextConfig = getNextConfig(JSON.parse(readFileSync('./package.json', 'utf8')).name); +nextConfig.i18n = i18n; + +module.exports = nextConfig; diff --git a/apps/web-archway/package.json b/apps/web-archway/package.json new file mode 100644 index 0000000000..6372086abd --- /dev/null +++ b/apps/web-archway/package.json @@ -0,0 +1,138 @@ +{ + "name": "web-archway", + "version": "2.17.2", + "license": "Apache-2.0", + "private": true, + "scripts": { + "dev": "RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED=false next dev", + "build": "next build && next-sitemap", + "clean": "rm -rf .next .swc .turbo coverage node_modules", + "start": "next start", + "ts-check": "pnpify tsc --noemit", + "lint": "next lint", + "test": "pnpify jest --passWithNoTests --ci --no-watchman --runInBand", + "graphql:codegen": "pnpify graphql-codegen" + }, + "dependencies": { + "@apollo/client": "^3.7.14", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/launchpad": "^0.27.1", + "@cosmjs/stargate": "^0.29.5", + "@emotion/react": "^11.11.0", + "@emotion/server": "^11.11.0", + "@emotion/styled": "^11.11.0", + "@keplr-wallet/types": "^0.11.59", + "@keplr-wallet/wc-client": "^0.11.59", + "@mui/icons-material": "^5.11.16", + "@mui/material": "^5.12.3", + "@socialgouv/matomo-next": "^1.6.1", + "@walletconnect/client": "^1.8.0", + "@walletconnect/encoding": "^1.0.2", + "@yarnpkg/pnpify": "^4.0.0-rc.43", + "apollo-link-rest": "^0.9.0", + "bech32": "^2.0.0", + "big.js": "^6.2.1", + "color": "^4.2.3", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.7", + "framer-motion": "^10.12.8", + "graphql": "^16.6.0", + "graphql-ws": "^5.12.1", + "i18next": "^22.4.15", + "jdenticon": "^3.2.0", + "js-yaml": "^4.1.0", + "lightweight-charts": "^4.0.1", + "markdown-to-jsx": "^7.2.0", + "next": "^13.4.1", + "next-i18next": "^13.2.2", + "next-seo": "^6.0.0", + "next-sitemap": "^4.1.3", + "numeral": "^2.0.6", + "qrcode.react": "^3.1.0", + "qs": "^6.11.1", + "ramda": "^0.29.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-i18next": "^12.2.2", + "react-share": "^4.4.1", + "react-toastify": "^9.1.2", + "react-virtualized-auto-sizer": "^1.0.15", + "react-window": "^1.8.9", + "react-window-infinite-loader": "^1.0.9", + "recharts": "^2.5.0", + "recoil": "^0.7.7", + "shared-utils": "workspace:*", + "subscriptions-transport-ws": "^0.11.0", + "tsconfig": "workspace:*", + "tslib": "^2.5.0", + "tss-react": "^4.8.3", + "typanion": "^3.12.1", + "ui": "workspace:*", + "usehooks-ts": "^2.9.1", + "ws": "^8.13.0", + "xss": "^1.0.14", + "zod": "^3.21.4" + }, + "devDependencies": { + "@emotion/cache": "^11.11.0", + "@emotion/jest": "^11.11.0", + "@graphql-codegen/cli": "^3.3.1", + "@graphql-codegen/client-preset": "^3.0.1", + "@graphql-codegen/fragment-matcher": "^4.0.1", + "@graphql-codegen/typescript": "^3.0.4", + "@graphql-codegen/typescript-operations": "^3.0.4", + "@graphql-codegen/typescript-react-apollo": "^3.3.7", + "@graphql-tools/mock": "^8.7.20", + "@graphql-tools/schema": "^9.0.19", + "@jest/globals": "^29.5.0", + "@next/eslint-plugin-next": "^13.4.1", + "@svgr/webpack": "^7.0.0", + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^14.0.0", + "@types/big.js": "^6.1.6", + "@types/color": "^3.0.3", + "@types/eslint": "^8.37.0", + "@types/esprima": "^4.0.3", + "@types/jest": "^29.5.1", + "@types/js-yaml": "^4.0.5", + "@types/node": "^18.16.5", + "@types/numeral": "^2.0.2", + "@types/qs": "^6.9.7", + "@types/ramda": "^0.29.1", + "@types/react": "^18.2.6", + "@types/react-dom": "^18.2.4", + "@types/react-test-renderer": "^18.0.0", + "@types/react-virtualized-auto-sizer": "^1.0.1", + "@types/react-window": "^1.8.5", + "@types/react-window-infinite-loader": "^1.0.6", + "@typescript-eslint/eslint-plugin": "^5.59.2", + "@typescript-eslint/parser": "^5.59.2", + "csstype": "^3.1.2", + "dotenv": "^16.0.3", + "eslint": "^8.40.0", + "eslint-config-airbnb": "^19.0.4", + "eslint-config-custom": "workspace:*", + "eslint-config-next": "^13.4.1", + "eslint-config-prettier": "^8.8.0", + "eslint-config-turbo": "^1.9.3", + "eslint-import-resolver-typescript": "^3.5.5", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-turbo": "^1.9.3", + "esprima": "^4.0.1", + "graphql-tag": "^2.12.6", + "jest": "^29.5.0", + "jest-cli": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "jest-localstorage-mock": "^2.4.26", + "jest-presets": "workspace:*", + "jest-transform-stub": "^2.0.0", + "jest-watch-typeahead": "^2.2.2", + "react-test-renderer": "^18.2.0", + "ts-jest": "^29.1.0", + "ts-node": "^10.9.1", + "typescript": "^5.0.4" + } +} diff --git a/apps/web-archway/public/fonts/HindMadurai-Regular.woff2 b/apps/web-archway/public/fonts/HindMadurai-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..64b2f86e1eb3b88a07fb6e8d3380e9bb8328b70d GIT binary patch literal 45624 zcmV(>K-j-`Pew8T0RR910J1m$5dZ)H0t#RN0I}2n0RR9100000000000000000000 z0000QE*pX%9Eo%WU;uF5Ck9viaH0EK@5Qy zTR_@z2X(_l^%Oe)ZB?*I2L0j!xp}7aW)g)7@^b}p(`kY8fJkr~7c2Y!|NqZU7Guo2 zhwec@wPd=aRfC*U&Qpe{)Z8!^WaK4bZ736j^0<4X4q@d< zXtEOgr)N5#h$rt{t%~{gPELs?R_GnwdLjjtLRY{T8^kYkh!cy&5_M$wY*u)TKi*j( z9#X9l`;B2N4u2YNeOwzk9{6&)^0acrBY0Rf;6FzHyETvDx6&_UeM#0(ysxbJa{DDb z<+#Fj2#1bWZj_OVG4=u3%{sypoJD(Lr`5=g%_<{RyDQGS;1n%=Icxh|*n(G?k|~9M zO?4~ZQVMSY!<2L*e&RgY57i$oPkOWXV`!_Ha*lABtAKKBPK{*cFyq~_wpqu}tb?{1f zG=UI;cvb29;x?Y>tdq?;+5G)(S#CTH*QiM{)a@PsJ_*CZ)%gGazo~Zbj8(XICJKVX zTt=7PyeBY7kyEvGQuiDe>}p}O%Oj_paDjtl;7!;(&~m~B{3|a+u+6_*fRs&aBPs{A zp4m-u=lu(bKvD(5J0L=x|IM0Y*$zmuLkc^2#2;8kRk~wU{j~)b{k7E(fd9=oPY^$y zcpPqlT2|2v(cd+6RoT41!@=Dqpa8()F`*Ms_4cZXb*8Y$5Ld!NXaJ6QP?Pie-@kJF zz&vAmduVVCgME;#iw98mth_c=!Soj`Cd&|PgS#2=|G#u^zxTN*R+SL%fkQ$sJEQjLa!dA=GInw>Z@DFCw?|iQ4BKG$ zD_Btv|NqW8K)KBL2@mv=;_tZy<3?H#4dq$s5#81cGMRD6f(zhx-^ZCHYsrftBAMJv zw&`}R!tL&X>7gma<^O-G+P$xS03;<+6fIGt?G!PVrnF`wMbmUR z4W@D!2;NPpDqF|2MQFRdSMGMU!&^l+sesvB#6$cU%7b+GcJ61X$F} zJln-gb#)`efnbv|dpU%+|9?~MD}Ap3h+tdjTefCqSO5IgIT%lkO-YbnTI)i4^3AsD zzW3^(UKI*N6+lu&f}{$f3@EWhkkXexwg!a)DL8USkHl zJw|`6v(avlO%U#StqGD1;|bD@gUvUHHVD$?AN+g9?;WTuiZIX%oKaiJU&+VB($*Gx zEFUq8=F;xW+&v1}I#cT|$>#riDX{{QgbLUyPKt#O%=Rt;$qIMpjnHPF&*3+P2OCEn`_3$RjEWI<5VzAVhcX z{=;9h-w7(+;&D;5Ep0IjF@`Y=VWjN4zu%X~{*9@BCb2v9&*1>XxIh`}A+$gK^?pxF zZ@a&B_U^d0ARz=fWI2bK@9|~1dh3cEPWw&JA+(-U@?iSY&-p#*fZ2Gn*}qqkc*Rho zBq$=Koio!JeRZaQWy^annp}jaSWz1tnKh!arT|r_=|IRAUNnbj^zoBo6(r^#_1yvwMOj=yH>C7-#!$T2MZ>uF8N{SnJAEMo;wcX>iPbfw={~DYUQL}x7)NdppdQe z)3p|Y6|-_bLRW6i-_ZQXZ`|Aey!iX(ZEpYq`;`_KLGpjY%b%tq3_%Y|9}wc-2Kfks zmto;BXesl%IlFw^K19%8lz){_jdeQc^e~QQF56dZulmD zdOR!+o=&axC+QAU+k*x>45XyeM@7?a8pSkuapIJ3%Ac=IYiCa_vG z!J>)`(XvV`$*Rg6*}5u#0jMTVv8k#=x37jsv#Yv5wXK@W0##e(K&q>8q1DrQu<9Fp zxB=ZTzD8jKUsRrDjXA96y*OiIrD-}4mUmJ=WMC7biLX%tq%kvumiF~`oHB+SN|PT? z{GynYIj8}hI?D!=M|kYQs~$75pKXcX-n zQ&;>%=0Wo~wjVMc2P82mNl#u-A%qrwBr(RF(uC8P6*ZzR*70>r`&4h{zq7+H@Je3C z8~Am8hc|N#xAIYL=PnNT7nJ;+B1$NuKJC*bJ(|BYzc#;N>;RkDJ}ZtZ$4%o_1{q?6 zCG6z5#JHssk54@LYk~YX(ZIn*8)uqX7P-=mcn{u>#rPOLj+OY5HZ(h|9n(J0oB412 zPkxSH;^e%#fb#znZp&{RG#W_ud5D3zGqveCJPKnV8GHTKW)#HK3&>WiDE^*d+XGZQ-@AH zamTINZ93JegoU{9q3*zcx%~05OIC`q)UFcZejV)xsW zfS9?$Ky=QW{xADe^lO(~0C7<}4{TmTTy0Xn`Jvp{Ve=`>kS;!wdAu>jl>1{D8Ec8F zL@I3$k~FxI1WuJ%Nd`>7?-_ae(Kl6KH}0rswamFc_^DQ`NmmYe=JI<`JsB^xkGG#Z zGV)-YuxVIME=en51%}=MfU&kNUJhGxh!u-T z)}{`H;GbdWLOMuR+(G6h_TWcPq^Z9@<|D7PJ@T}#Vb8<^ui~u-)s3Ps4MANiI9CG= z7CjiRNRJz4OhCxdNH(33_UQ(xO`Kx@^_=Q(e9h(FvEm(7JlLU)zLtsJn3c41FKwWZ zhuLZd6qsd2^mJhtFXtS4_A7z2>+RuDRS#l}eWZ>5hE8 zt~n{`Ve?2c|7!hXif{Q>(#Ph$ZXSM-GS&sc=l~gBbKJ^XY)IA74SzOy<}QmZmS>RG z1EspyG!42%7b!Z<&64f7#(8DLZ(MO1&6I{luVg+s-*Qc%|MT|Boc$3RFmJ? zA?7kzK2mz-(9to+ypa`$K<P@;q=Qap}%~&`J1XvGd56EFdE+N)}g%P)TBFNXntI z#L=*%p%F<(qmqHfBomEG*2pY`^On@h=8+02(%Z!$x7Bk8+DgHnuJdj6;O}Sj1m;-6 zH#~_a@D$$1(|8}x;C)|R z1L^EK=Ac1#=a7Pif02vQIhIA_i!9|eg?@fYHh>yK>Vrfoa{Fc4M0Kw&xmB)@lvQfa zY#}o#Jwe3|QRyKq*VDJ54JATH=3DkmbN!YU)^5KvQ`;a)^dZH4CS~rNZAoacn5HEI z>eOyxL}^sE4wIWh${*s+FtVY#(ld6rNX;2bi^#j7b;2Z41>Glu?t+|`s0hOw{pE85 z#xN1)7$>59q@qC)hPJZ!!6=ZHJjoy~8KKF+FDBchgH;1Yh76){K0-?z&^#_>OE~1o zBi(Bd_CN>E5;t)_njIcAWHMTUL8+J0ZC#tDEk&kbQ-O=-g zSzPMJQOT0+!VKALxr2r7&iBPoz~B!IVIN-0lCe_BSWgk{jG$dGqU~Jfw;tW0D$8{msN^;W0UqXKh=8ocMhDH>Jz z$tTSrQB}|=kuQ#L%<+jpQW?ESOu5Ep8i|V8z_*y z_KBkaKv@P979vhHh*oZPPUTIl;HZ(r@&;w;n9$z4v<)~0r(FfXVn48bI8M$Si zmE$O97>6sjVS~ntV}TgPWIVnQ4OS@I;Y2J)bSAv>JYxl;xG<`Ch9A*h4A|>~@6AJ| zx6a(6MuVE(P)7|kQ&%@CQUFYp#frgMV2hklrnOp=-zqmP3wNdq={)V-jdyRx?h!e8 zGW^P?=z(j{=GNbRFHSO@GqXbT9eZS~)WzZ59Jo!JwCR4?Dc+`*qF>NzY-q!EK$Mwl z#T^XW&}y6Bhv~@69Eu+3+cvFr2I`dmX6;^Yq5XTH5j{=ed$oN9e#F=5C-j+vv?$<%sV?YL5VN{bi9-$K>7j}{l(j0`0Lznl900>k|XbbLE> zm#rb_k(r$=bY?c!?zJ;K&Qm(Us~6bz+po)P_xP4i%cEllqdc+WHswAeW>3zbc(9)x(hI3auNRuo?B-j@c`u0w}Z zT;)01N$DYrlXlSyI}!iKY7CMW1OAIs_I8Os4nB9C<`vfuGt(35F7-^Nm9?m%C_kVq z&elPZ&P8^;(}>xoTtl3Y1tFWHNG$s!@6TdCAjyO2C6Ofb3((_SfZ6RG?_ITO@c!D4 z-Ixs&G90=RI>>Rs-q!x^l`99;)U@vcuHL7N6RX5`x{Sa~{$@$j1Q`aFf*h5!OR&&KGMDGqu6A%(IGO$I8Q-mBe1_zt7D8uR6 z>1EhEWuNaRJ~>Pwfr?E7&*m+G2lHSj%v5PzHjI)?6J|N*9_&2$I@~)Bd5ZNSLIdNh zF;HpLPOVJQO&~Z>S(Q3%;X%3&(FOv`}z4wL@J|h1by5l2x^#2f!^vFWS{_>MYzRZGJYpe>C4(3fajgScjY;tMRD0dl`yH)u}+}%Nb+}0>e zx}i~sHB)D%5T|T%uEHA5q0V7?IL)OI3bAQ~IL~A%VJjLa#YGg0xk8YP*@7v=(Ws9) z=TXe}r%n4GD&!SdMmQKr5s-aLj5MY0hZL5O?_d)pC59uUnVjOfcSI>BE!I;bwY8IQ zEvahWIUj4NS-6jHwry7#SVG#aRQOwWm>S|MP!FCHVga7H9b zF_SQc$2@P)pkG}s5;jnxKgvhUBwfltd7PwY*&^f+A;&4sQIgC3OO=simFq<$r^{}) z8bolXr5BF_6L(dbgbeJ~w6VlNH1$cU)x7-j`;_*wrGzbewa%%dg0zPkW#chLN|+r; zA*U1abZ{cP$K&-7H>A{FdYsFV6Ap$<(l4_C&}iO>N$0@c=xokzQG$775$+qn&=<5z z3{gyVsY7AXvz2*fF`Pu-VTm4{7Xeh4%f~}QvtZ~N0jp%JivP+!N_tON#t>5+-5CV$ z4bKb&@@6z)w&Skj_u@+K7T1HdHSbP5=5alPx(OWv((K{LbdykiP`4hG-#o^a^}13- zI);V~`=f%d@d!L1--wcIDHbhd%5}*Zj4L^(`bg{LK9weiN}2o@V^*#r%ndoPjFOES z-3qJ&2)7IqlP$WG`5u{s?;1N$)3+a{5Z|7POu+Z)sn}b%lEE3cx7oKijwoQB?5vyb zT}+=vRHZE8se2ayq3=6Bw2xS65Tj#Pn+Bekt{zUvBKeAd#XxI;dxfd)fAFDJ%-($4 z{Xi$@?%jQV3)naGJ$TaBNU2smls4~&>e%x!(44?=()p5Z-PEy(TQJ)rSNVfCs`7^^ z`nav0w`Z9twFl350925l~x=4ZAu|hJpHrJ?JlP$+nW>irreh7W^y(%mHFU51`H%MgLT(~JA(Pdb?;G3lK&p5 z(#MuSD(ABqqWOI`u9f`VSE(d{sxClHOxKX>&e?-FxbM=7bMR_*>3IBurAc!AxKtXS zqgG{O+}exE|5x`*@t~3qS?U4t`dr>XYCmq@%;MY?D{VmHsKBo+OWOg%ev%~DjG@vc zlUG;uKF2AnfHfxyBGtitnzHgqjjH^5dt>8n%B-dQ4KzNZ{piC17$!cRes1>B;N=^9Y zaVwawR@HBOY+mo-Xx9<%4p9ebC+9Zlr?CHxf*E$;+`Y5EP1tkewQJ9d)P#QG%GZsd z&>AQ!?#e+#v5U=@9uflNklXw23c?RFP3o3-6-k)uxW#r$X_0N%mtYDie^#}ToF2?7 zX$X2xT(E1vmr%NApnYlA`oYzBmbf}z6pWCD#&%;_Jpu^LwJOoVMA@mV)s4d-zo6?) zHOUG*a8TF3VFOJ|&{ZWC1{hn9EV&^LkzNO4bC$--in?okO84R5Eoe&M(wAl4pj|&P zQF&H)%nzxRG`2R~xKvJz2g_8@1k4RqU(YN?JP&c+poK?nDz6gW8#+rWfmt`0QYu#p zNug(i_=uc70`9JG9?Zjl4P+=$4e(!4*?lVJSy$46=V?@=7fFk3e397xh zi}jjU0xe4aIhCWashu*Yi?F4@vY3rAxF1Uc%(!-_V~zk!n97i`7|e)L!r4(#IWl30 zQm{?49`bv;NsmjP(0-{7D9WI`lntF#O!+L}5H_PfDs?q{))&}KD*^9|8AU>lJp}Ld|vwb4}$Bgfm{JAz?Q(AlK;BUwl#$x*LMwrDkao7B&)>Ifdc%3RBcO zEiS(r4$j)vNLKF_Qv3J$NuHZ%@Rp;;D|F9>32!e(o}8W~3G zlC2b;KP90uP%bXs$190)_{|2u&Dti5r? zpIM-m263{AS1yK)UL2W}%y1a`T$$x>ADW3K2*99aB_q~bv`oqSIMLz~xxQsU=wIRp zW4FWA;&pQybs{E$-v^@V?OKSR73KV@f7~1IafcY?k|zHWu%;co9roTWvjSFtUzly= zKaTZc)0>OHB)=}N*X&=2AuN#uBP+^yrm|IG(3@B435=1|&1qhS^ZKBOa2I4NLP^-b_y7b~K>ANvxpT6)t4rL0uC9xJ zx?|ry)Y;bC`x+)xtX#}?WS*l_goD=2oQUgDkaGnxI1XEaZ@BQW`}GO27PjD0(vs{^ zM|7V9mW5jJEa_%yd_R2Ur+F&W&xl09j}d1ih_(To%e~aZ(OggR>}tx9pjts%5whF;p2u(q-(I%y6}mQubP%NS4a#)oetCCm$|Trwq|})b1FQWzBm$ z!+8dBwOkv*GLsejUAB6r1K+9H?P=`@>I6CsHNt&r^#Lsq_Q?!``d0@qG40#tFCEhG znU;YB(4KlcOW$aG?%TmR7L$r;mHRxVI3r2u#05^T5Y_5%3vliy&Cx!>6j~;du%;Hp zONcda&C+qj7BMA+zr~2Aeav|FdIQZo4aS(HQ&eWn4Y9`wc@K%h&b9ekPF(|9!W63e zW%k&&BfO9Hr`zt(=m2(mH z5YU>sNLM%cX1b|oEMG#Ho&F>H=-vCAJAY9;d`5Bp{Zk(mr!QP-_{*&f2lWI;iYgJ( zDylDl%Mm`r&#&UL$(Ly(FGPvX`M$%*?J2nVLfA5YbP3l~Ilbu7Bv zFVtFGr{wjPnkuYoWXjy+^ue(45q>nVe&+#4g^e;WC5JsnFu)h7AS#8l-s#^L2nU<| zHXk*Cu1GYLSW-Y##^nb^aEOrC0T)Kp$vduKxYvf=2@)x#=#q<^Q+F28U=i&oq_pcA zzXkqyCxZfUdJrJnZkZ=N8LcIE&R`11fslOkBCmyo?--oWzU*YoB0#AF!AVmb^@Zl= zqa@`T93+yu;2}6|mLqGZ2H;?r`ypw0T_d>%{1xmuTVI5+gp1%|Vak|m+19SR!jO3h zU20e+7#NSC2}U&SiKr?g@DLCD*NS?O4FZ+nbn|1?js1tLRmRlj#*Vj@Y*=gsMkVC2 z%bPGn3oMHft0$h-Fr-Tpoq?pO{j>I|wi!p_K~7u#q7IiwVC8NuFJZPV{=OILj6S@0r#-^JleL z6?t&%5SFwdp(3oU@AoYbWnsPBkzLHgtXPQo%QhN_Y~zY3fcytg5K;`Mj#=7N0AW6^ zjq!Lu1-G9?mmBFE-ZX@9RIU&XFQC0D$Q21*{b}NGHL?(8?Q>Nq>KKX&vbQ>tGoP%`7k;&px z4yv&d-#dfyh|N)~Tsdfvc=ALUevtMjoiu<-0p(l2%)}dQ^G1iObAsPSUpq~ex-qbE5vzZxP~J! zEW1C7=F~DTuJvD`;CE_~UKwJIYYM-rb;YT&I#hi!)At>sNhdy5nx2{=e!^Q^@SazX z_75LCuPW2xDM3m2eH?0r_$N%;A0FXyKH`VxDmSR=7MGA` z>|Kzsvs}o7Vz{P*r$jYyTXUAuR=WS2GjVuF5o7YA374g|9Yyx2Yx6+4Y?mBdIIyz3 zemYt|#~N^-MOLUvk4X-ey`JEupKV-;nd0ZiVdinV~+{7a@V73+e`~941H_jP-rttT&)D+7ukhr**(ouC>xxO zxdNtFdz^DEgOI<<6||D-2}J0ui!O z>HZHlVv$P~8H}5P%U75U^L;uJQ(xmVEz##N>!uok*lS^Pnlwef%0K6uJml`gPxP#I z#I&3PHaqFdjxSTSQ`)9yQ z&rh$-{U*q0NZ-M4z<$84Jmo*#buQ#Qt27%o4`d&P^U zpVe);@~Kw-glp8UzxDb}v}9!2^4;C_H+1Z73D$m$7S?4FCAR?9Eut7pl>YN%LiAWe zQh_Ncld*iRjbTeDdtGImTWC!BH)ed!*{nB+qsN8E_w)DP#^oriu$E)GQ#>>6*>leG zxFsU=%x|L|&2`IS&*sRZ|KayU4hM_s4)?69-{&cjpB}1{|5Glcab)uv8&vJg!os&w z;%bw6omq%FyMcv!ww}fVsGyh(a`7fz#BJG|@H0}palb5B?6I(+pa7<2aG51iqA-_} zOBB;em^d=$sbrPdUg8kouuAM=Kw4Du;FmgyMY<`E^Z#J;4m-y#y>`XkSRQb)Q>FhJ zw=W?{Xf%N&t%T2cf9~s4S4FYy*>|o`ojDX4TrjZd`^5#XCH+WCaPgE9CfjcClzsCL z2~e_WfBboVbajTk z2F@vDuy{-qlEY*}00_XI6h-2a2sl=R`+ zjk?k-85cb^J~bhJtnAdr#iI$54j|P(aN_Ew{U2WKU-#X~4dK!zjww!!)meoqFK7tV zDrD9Pu*tx*1=v(KkWaQr=5Jr!+I9U>_tO5JN|z*e%c5*9;m_z<)4e7vOH0RE?){W_ z{*Mb@){&Dq?eo6S<325UPf{l9zy2%UdaInwP~}!j6+C%~W3j3Bu}>~x;Su~oLhiy> zJq$LvTuf&pQh)NTJ$|Hb?Wq$hika!kL!4-mziVZre%Z>1jfIBCU+urtePVd!ialos z^p(*y4NdDR0!zCK&R6$`d1+4|JjmmCPH)ENOnHAfFZGYl=?1K&QS`fWhS)tn|%e+{p z&A2!pn3Kai%zbY(PxWy4Ldv`qa{DBC|6pac-yX%`*#F)WYu_@Fa&w=)#%3!Kn3b8Q-~N$(4+see-O$l~*O!bz|0zv0aheQ(AXVgUaOZAAVs$J1|aa zgIF}b@*dh@dAu!Y>d(>+y7jE2IWRIEBYu-d!50Sz&YHRkK0; zk@z8Xc=6(jnubMAYp^B+6&fZ8t)Nt$Hl!ti@^PXWF?5!Yj5!iI3Le!mv!MQ!8~if=Z>b%guPE z$g}n*kWW|yCo0vl+0wI8Xuc&Z(CH;v>%kA;y?QY-dIvE4Eih>{RhYo+mRv-IQx&$l75gXa&+#>WQSFXMuDJS z4E}VWOI!#iDYVk)`!QXV&{EaI@Wv#1=!}Ti{l!M9uS1k9*RT7_! zFAt`yJ|{gTm0(p~clnAyW%Vk%3$NN^*Bc28xy!5s-L*QMzCOw?u#Nf&BGb3k^Ueb0LZ=X=59h0LS8?-hx$_TKj@YXPEt2DBuaQoek@60j5aUiF(j?or)1-vt7-3S!|(7egx2GO$RILDu@Sol_h1{aFb5P*O)}Bd<5>yr5}%zMC;fnJYfB!_IzS&voF>Tz zwSaqRM-OyRCE!P{LXXWCa4Xi%=+Sa`J-^QQwTds`|G-qLm<*+IQL7p6Ib{2|e%}Vg zhP~vyu)fuls`crnEzE69)5i1&WzFWSeWl$2zKHLGWlEW`{fKZ$Zr)8s@_9zW+x6M; znRkKTXY#*XMAufEt)+rIt$^TVa&efPz1)=K-i z`2VjwOD+bSGlsbrs0Jg8G#~a(#y6RDXilT$MhafG;x(NMY||1ar9c^SMQS! zNd-7Q1w~|N#B;z8pd?*k2M$&yt>is3ILutO%VlCs9>DX4)02j@=$UIp+}s+xSip}W zE5|a^+`Ks0zIilv37J^|V4?LEyQj{i_tc#zZqis>_0+lZ0W*n8H*$FtBS20&_i=Tf zc17Qc_T&G~-d39VBk#;b-p~+z3@L!h2T>NX<8fgf)p;H>5Nnx3!_XGDR$p*o4oXD} zwc%I4ry}&Ycm}^N{tL-0Xzyrf$D_j9n(xI0}3<2mXjk|t(#4z%eR`7po| zGwWv8>R(*Y7!eR_XJ7{+!Xu_>jDpw;=MDphuwAXIk(dM+Q4%^OE$1}@yNDd89yLe4 zv2$M2kPj?!6qreDfnLfM2IY1`y!!33?44w#z9n5x)>b&Ywc)u!-2|Z>EvrheWfe7=mc&n_D3nI6*Qa2EuHKESxBQuwF(uK%j}?{bE3b2*z{37zNQ5E*MZ? zJ1xG=a!eY1U<0$m(th$x3$HM%Qx`1vZ>OPkWN#zVf0#1Aa*4-US*NvC`jsX!Yi2Q5 zzlcY5V|MT}>ub_$s8m&6QO7Ukg)-A<2SsYcbGZzfKmZ&^T)v+xOf*LwQqZXfbEgSM zLSH{vT5JnKaDU-6@tCe$1(T+E@Zz+P%g*!=ZxF-$;qBkYzMehr7dsn(irIhS`7y)2 ztl*dTE67qZ*B@$IQ!FZ9p(IPl{AEGT^UO-f3JJ@Q%8F#su>D_W|}%$t~mb%P5?qRR+0%gEEn0CN{*I(ddkL`Mt8&}J*! zDU;90e50KXl?qyBm4?o&_A0$H#z2JcCJrT5Zc$m+PM@8}>C&|)naYzUKVXaPP&Z`5 zX~JnH$m9`t<>0a_K%Pk;CSdHVTDMha!SAVQ{8t=}(OWa-HtzM}H~sz>g8T_7l#qsL zT|b^aMBpS9BxjwcO+MNKC#}Zo1rCR3n_524OJ7eoGs}wyh%7`?BbF^?Hv`lwF+Ge; zTaofjVT_U@^$aVMXHEnWa@yB!iqdlhgJHo)y7zxE22L`E;{zR+CxMud2iDeh4 z?c}eQiOIZ`-JXXjg3!M#xP%3_$+NqQUiZJ}2jyL3ShK7p8!+ zb$eUMZknskQ5^j4rUwE#%y%eI&ebg>5u|L9I-!+uXU3=jP)bMK=(X3{v7Sb~tiGuTGEoovAuyq(|jEdrKh`WMbrIawCbW z1t()f3J4mm)Ti*si)q>|#%e5uoPo@>?J@1dkxN4ct-qA&653BcKogJ?yo}d#?^3UYD>yn=;^-}M2sR|{tr)Tsx;-|1`Aw8oL#<| z7L+T|{IqFwY5m|djY!YU8RYLs<;9dSYV8bPZ2KOHZ{6qf2a^TSWwYy@jDTCN(ZmaO zg&~GWqkDUi@xop9NV9K=P?G0JBI*_*1T*VfqMYE=w=Ij3rDoq#m=jJ8MFQbtpRp+= zDCL7J>3zBrx0Edyu(aA~C$#bL0>AAO`mT);l5|2~D=Z5M`G(0pJPs1le zjh%QNH^k%Ou{=(Q$2o&ZAOY8z^_1QXOP@H=qjjcf|nHVxx%VJV> zQek=927iXEiz|gm2L@8*8_X4DTa2;sTMGTRA=FmdMaF7&D`t7zI6lEZ!P5Dp%_#AO zGlv}M^brO}Dvh1C^`~}y(I@+Szr!1uKkikyC~*=|t#>JjU!&$WNa~=%V!O7cVW}UO z%`>EXgFI=(RNPQQjTCl<8jbQ5$9P#b=iwi}KOfxAcGaQ!oeQK3w6KK=?*gKE>#m_* zJyhk2uVWS)VgzmNV7-*wY>v~S9O{e~ooK-loEN9TG9e-%5ozlp7q(Yxjj(UuKX?c} z9Q6={jRCN;Vtd!6d)tp%JueZ$_DW_1u;^uME*@nDjw0jh`iN&DX z#G>N*pwik|QI2Bd=P~+$Eo?psgA$V2!XI0>Y7baiJnzG`>??5&a|G1wBL z$HcU=kG?dqMal}7vSgEY)uNJsMU4hA6uKJB0TVQOqZERz&4KYz>64iCNU@zSVA+*2 zm0vuAIhCmqb7T&$II^~}Wqw07AR+Lmcor8Fq=6Ycwv>)vf@2o#>=3${dY&#_kTe#U zDlC$qp>~TnFFSWkPX3PtWycpRY1-qCc0pLMT#nhm<(Z9AjW=v{g}Qb#eYOoahaOu- z<0>sYtfeFI8%WK~& zL^(WQy1YiJ#hY&i{@(9N{*`GSa>ux)v$JyQJMrVOwi`WOpw6qy1!krTV%jRAhAY~~ znpb7a08~JT#~{XD{%PFo5nAEAqhJ4I2rLeCtr%+MmQekUYk=z^`0)Be5NdLVOhqLt zy_0T>kXW{5)5G`PG`K&0#xl}5gKu`4MG}Wy7uUyXnHBMSs$faJh6U9Yk40EWQEz^{ z9dPyjzpi(vcgHTR(k4&dT~&eva7O$r7zhJcW|I|^z^f4`F>wb(CZ9AQdN^7!N}1Faa`en0;w+7t zrlHK!ZMT$xa&v`sMY&g;0e*aHYrufN#Zl&^w~|5 za{hhAV;R}w6aCHeYqo`jgjd<09h|4@y%S2?hEG5EW;z>=QkmL~+b$kBP|!RPsuU#i zfCOV!{iK|gJ&TvHh}uH$z!S1*f!ze|elbyI4LEv(4sn*bbMNxWrQZqj^VybpOC`)W z?gqWRl`H$!hg5leh8;L;@%d)+9qWKj=Vx%M#Uz9W6Jv~!8bk>5EH$~uF2)73Myu&H%vbuDQMy!rq+ zK*qoFT5zF4v~*R(*6op6EG9_AqIVnpLB(T{7y^r(9R9}y|2R=+AB5-XeiYdXHB>p2 zmzaKp$;Yu-@&I%&Mg{sZSkrKl7+7(E+6`UAqLDXX%3&aE0hz0>aaY%t2CK#p?9<{h z1{MdFZQi|jY5!KppK3_5yBj+Ul?JuJZRo&kCb78c(x=ZQaLK5b1s&xL9=TD)l@C4Z z2*37`nRL3r<%q&Ogmm*szlX0#uFNFUoqoGtz3+;qel14hz@mllMMD^``p=H7v4`u; za=8_F9{xGug;h&s>)1-W9%<{8g<_Y0nUo;MG^wa2u@Lef9L5sVl-XQNkdE zq_kMI0*^2+08IHxjKXoueCIKGi0g*ti~WqAcM8V89)sIZ8Ivu*yjiRF1Nf#NL_YSw zKKkYT-7~kN4|!RM+}pup-^bMNzIjDh((bJbGgIT_uuu2sb?L*~4?$7fiA>ri$`x63 zGW2hGpc2c6sQ85(uR;-6)Z|Vd`)A4z$ccaAW@y=Qf0XSbOG{KTU9-<7Qt=8g3?_-p z<`buo*qL&gfX9rh1*-7CVOfzu%(J>>pxr2{H+d0ouc;W0$p7yj5M5-Dx~yu)=Xi0E zl*a_MJb}>xrWl_9pI$})ux8-`x5pj_>w@L3!w?Km>_^}zm|``1HRjGT`d%M!`jm!3 z;=8O8q0=d&+h{m%d^J;_->>QH0!ea!N~i!{%%DMtn{nA} zs*-_@s-iV|7k{pG-oP5qxQjvrmSbh;g7+`*FTc8XYrP#IMA#Q^+uYT`tWk2?>PjnG zL*yUk7YPTJN8~c;A|62jN20+1o%@qlO@|m_7QlL9X7#`pxJ9t}(J|Gq`LG0D^gP(S z9h+5g*HE1uiP~>4u(h*d*1C|GS?iI+&Ty=6oId8Rj)`VfZ91xEMW@Q@iJtWWmwl3B zytD2NC9W>AMwZN4Fe|!8yx{FuZP8+L2TmOE8@2}9ZcGuJmV6rX9sbQ4xF2ivB#!xL z8rk!rW3Kxxh>=Fl5*Y9b(TjZ#?2^b&KWuOk(O=M|d_9kA-;%nnx)*E0|A*t#_z=E- z&PeQ>kvX%c=Z`?~ZyFwP8E&99S+et+fzEOsoR2ByNPVr0-c;2Y$gVP~SVc!Laeh&( zsG0AgQl`eNtJ%K|i|5hOej6>w7qiA@z=krj%CZ5!XD8O#c}tn3VDYF*IZY?X#8I3B zTOn^}l-441m<1%^&c=-vZPA=k&6uCYu%sr*3`mcZm4#v#mJGCYXNo_meuHIwlb727 zz-P{hi-JeR%^BI|sZF!kV?*N86-;Pvb{v4qrV8Oj94v znhah$g1s|SlrlA7?dXkwq4&&@GLSt1l-`dF&aYG01qi7uM_CR3g@W|7O(HZ~y=Q=80=3)^TVYEc_EwbRvmN7peeENEVFQ zGu7vFZz_MD*3{A83#q8VJ7uJBvAHH_uO^%GG$EyeuXRZ@o`5l}qT}CdvtMhzNcmBN zmV-~K7uvRZ@j~*|qhbnOsdMYg#9;~@i@`IS(fLoJu6`+&@yQg8NbJxPk{5WdbFC=l3sDo)YL}${J#rQ( zgHZ>~`F^Sz(dE|oQ;DeshmvzM#@GbuXV)CaBqW;RO3GLseI+F2E)_^b;(1Y=R3F%u-VcM=kKr%^gQAdg_^+a3Q6myjx|CG2Isz2PAU-QqXbw0GWRVtnu7)Z>Qaj0Bgg!A zAy9R#nnaF5u~a;nnLTZo!OyJGtC(_Y0HO^n>#mrb=i1}1?Z0wrE#>A`J&P`M*`z|3 zORfmJQLD6H{`vay`r9kvEx}2hOCU+P{|_(=D|VAjojtVNHfY;n*iMOzK8=msp!4jIChYKkmSR!CXRD# z_!!#N8xo0$B$23GC?XLHdUo15%}xCy!4hK*8-kuaFgP#nO^NA*+o?dTEh3 zmV1%(U3PL@=69s8V+BPZn}4Kz+vkZ_KD*9;W;vEl34LO{iz{lfv%h5bkDbbNvTWlN zH8#$5LaZLnpMe_iymo^=KZ)-rs^Db zuJbazPTB=iY>Ko7ET*R7a*gww@XMbLGv~5{Ja{gY{SzC(QCO_TSvRKVe$5l6#wo5D z+5Qzghs5SzZ-n|PT#CgaG1qW2fm z*#9VgcRu)aR^2q#&XQcs>lsng7-=ohjA{F$l)0O-4;radxlXsrVvL-|%2-CK)`^g=@u|NLf zkaqUK=={Fu#lzLI)pEgMTlld3@GyHgtx_C@N(5`kcPs>@U6 zDIG^%G3%FYvF(@bm)Q=>l9Kd#v}W14-B*JH)dC(XRlrFHBnJ4q4;jZDxV>5F3DgQ? zk2Jg~OJR@*T&N48iwZ*4W>ygCiH!I(C7NilPFkkr0v8rqs2@cevtvvop@nC==KwI+bc5YwkVjgD>21bTY2 zwxbW;&`T=aBa`@>n_YS0T)x5xB6sD$dcDk5S(|%F{jgY-bX0p@;BlpzaI?41ImM)&7K@_4qtDoQeDY~k>(%)Rqxw%ye&UD8&kHAB31B-8Z%?;v<$XiulLtC6y=F? zB~p!)%*G-}hc%RWlFTh5VNnje&X75n6AQ^yRHJuKMsqxm*A62r_GPU@A@NqUx^l$X zJf20+a={Ehs<~!ec)=z0n6&=dhN3)?`x(anh=CJZNL@6qt-~&LSdEZYD?_g+YhE@s zctMyCUqMcjRPSjDuGl@i^v;J)q8UyiSw&>Re0-cnQMN>@Qxo}c6e)HKeW3!oTI)VO$C&!D)~OI@><~WJ z3^pFJGlw4Qef1rG{Y}LD;CMM22%`%mj+5N@s-gHsguEk8gh;1PYqb5R;>c|u2@+C$-nZqRKDtgrI&dVn}1Vo1!WNH z`e1A(&AbJe!XbNUNxL^)oF-;ig`^*0AWMz7ZJ^nVu^Q{OFwX+;T^ABnF8j+za-lzCxhR#MOI#p zWQla*LYh5pI z>`Ti5<(T{%Cr#I{@~^+1YZSLNo9IE_WR)C?ve2H5WW!W6Vc%d12?GoRyGO&C zj?dJy+*5l5a-#RN#=$|}VlP$sjPD)`$&SBLE+8k&M8s;@ad%X=!H(V_cZ$*>sZLJn z8pc*UzBbm|oaKGC820T23D;b*lXIIRe0P+|zmu?aR1>z5Vr>c9Me5-^*jOYdLx;dc z=nh?nSzGh{>M?DB)1A>G%7^wUH;#miw@xPPHp6Em2gS;tmc>_Lf$}f=(gzB6b9W<~=4%SuJmQW)TwJ*x_nlb~>EF5X~o|scP`YDf; zZ(nvL(-1Z4udi;3_*aQlybQ3F?%{C{+IxEeW(`wn}{FX39n6 zgqf+cJ2v5G4$~I09>);5t#y@dv5HrSW@KL;skdcY>fO4isbWk6=^afjy(BmZZ{Q-* zY)EBHDb0bJ04^7U=D;*u`h)SnTvF=2Bcn6<7Rz6gX&Uu=FA*Y0C#Y9ZKmM}7y|DMb zSv?HFi~FR`-fBE+4Mg(sT~#=d`p`O;-nh1-X}gB|_-w{McP!)sN7cTr6XzaYy|De{ zvPC?Rjx%QNEDVaKvXH91_Gl1r^?JuvHaoVyI{f@@@9y5AU3#@mo_rviKFh+HD3C63 z*MCN%;0K_?xuvFw%m!?%}!@*eHWE z9qd~f9H^3>iqs1(^)-hVuh=tRDAY62fV*hoVc_KH>;jY_(C!>KeS25n3#DrX`Y?Uz zrP1&Tx~OF!ZTa`Z-=6-b*Pui~8fq@oh1dES@i*8Dg$_#?l$-1AtIbXzSpu=FNI>1= zA2cFGNYBdkXI7o`HfJvZe|m{PgKS1&IZr8TW1}@EwXhLh8u&zqekDDM(= zb)x3bDu^Enlj1Xm|MfHu9BBx4I0k3je)CuS+q)8;$% z@5CWO;4>uilaRsGWyz`y#=5{UIZdE&i4v39V-*&)rcyJaZUk=bVt#Z+3PI5h(wXL^ zxog@*v~`KQsCJ&n2jDA{O1WDsUp{>L#@XTeaL(O%y$n7UKR3Kg*7S7FRMGB*s1?6{ zeEw_uC0oC3T-(jx2w zynr39a**p`#!xCOC<(e~-R8>!U$QI5+`nN=tM_Rb2iK{O2>pjz$_Hy$U=~(*<%%UNv{=TS(j3AtqPl~(w2CgUiwRWSd~rkJ2U44Dxp?8EnP2bE zwyTf;Rktq_p#ouUVZq(rQykL@Zmy^EIgFq%kSz(L{LE8LXtpo&ePK*w5)orpX_P0? zBU8#8{E~;;3Qn?01F$z;XX2~wBuZ=fpX`p=Wi*m7$Gv+)H3k@ z)OlmGMSR-=Cg8oJ`3&(nM^F3vp&&2+)W5%ShirOh{*l6@c{9#3FKu_M-FIqdai7B8 zg*sT`!tC}e-YE|i4dT3|JTgxLP(?zT5+H(c2Ge4$swQWRwvKn9x6#+UWPOc@tDTds z|64JX0AO8#{E3L$?kDzlCg3?<+@YZe%wL zb~yTVe0x451x<{@K?3iung{3gnD7!9g9j<#Vwib$Pg|Ah0YkKM6bo85=`&D%N*7PGQQv8+W{$%TqFXR3+v!X`B?OGNoB=dlvFYZwM&rI-Qw# za7Q;gcvAFa`GXejE6D^21@Vg64TSWMB(n<;N@JJpbGTkZI6u|;{ha0QA`IG~j$TkZ zDf8oFq1+W;f4+UcY+hPX0`dq`fS(AR9suTq@-3Ob^yz1QcJpG+uF2cFO5g!sX1ZH# z)Vyr@d*6gwB^DSX&^j!)jbN`b1VZqIMhHR3J6Fh84o;-e1wI7 z%dC~!K>4mKrIYYip7YLa+Ch|HVA*I0N(rU~o3sEbhY?+rHXQUA;h#>Uu0>(aaR6JJ z1La@Y#tm*{jhR*r%)Vt>Q29ttG34J2<2Ge@nP~}PkM2TX^UDYzE4PHhF&DNu%|70= ztxQP(Ze4mr5B&LzI=QB{8USf#h43%3ma_Sv&X!CnBXQ(4{Xzc?R90Vh{#87#Bn>~} zWh-#S7MaIs@F1B9V5ywXQX2STi(8p$?75{JfQVJze)Q)$j-sJ!skf*O*-i-kZ@d)D zy@%)RIdMRy@YCqunP^y=)e|>$QHLi}u;RyCiWqQRoz5#jYQ2@lHP>&1-Jko9#*E+X zS*7-^{_^3ve=4@jKwh;<~Zug>CPC5g4dtk6Mj zVXK@zcl*$?$t4d2x%m@Q5u~{L_cPnuJa;I7#rN8Kbmid(kgkRqD@JENQ*Uo_oQ#+$ zyN1-hb)a2|z-ThxTc?nXbW9R&`yHm)}Z- z**5ydV4zpDKg~T0|Kbic!HZX#k#rXMK6|myW(><^){tZJt;BN9gS+p)-2c`%o4n>7 z^GHk4jRh9Ufeq@?9@L*IHT(bYqlSxR%EfH7XmG(o*j?FOSoR&o9sMy27N`JLRV*sf zVDl6lj4EH1!$IWn;Vdni7X?5;no7atDAY8tUhfTc`1B&VuYwjP%4K+log%LfkX{gX zhc27Hv;miV09ONt|hADvmo_x_SqiQ_Wc|YCdBL{|k2StGQyY zpy02d|Mw#I2%6{Z9u!-Pd*)I8(+?x|w5_oZW@jxe5&ubi=b_F$|lK-q3pI7>1*ubNR3{ zcL{QqstJF44$B8xqQ7IL2IvjNTz>Mn+*aElGNOK}^Rrjm5(4FpomzbC1fC>dSoF{Z z-S0DZoh~JJ6J%RfM#C=>AYOx0Yd&8O>(SXexYBNODg+fhsbS;$0gXJ?@)mL+cwqR4 zdmVt*TF0Zi}U&QV0zdDuKFA#z_yMczR-sXoloa0BTsFy+mH8 zHe>FO$eyAGDNfMsy%7^Zs50Q@JHn@l39+`@2@^1NW0+FS?3i7V>kqs zZ+p0iAH%MOa72}<(8t`ZMQ~GR-}bTXJzQm0zM<(Pjr}4h5Xn5%+4=th7b(@ z2)Row*6_6Jr6g=4C_4XW7wy01uB8r%uAIYHeHQS%hxC^WnVIJiY z+^abl5fe_T-Ci%LAY61*fjLq&M4U^K`V>C|U2p&LIHw<$2D6Q;h8Q>1v^|MLVF|iP zUt`NmN#{~(%?l|G&;-R)T~n9&AaF6C;@J&dPRW)I8MR)G``L~eODJSuObCeR$f;hi z=+;TqW^lvk}w)Ao^V^=~OV`9{yV#q$ zESk$mB(pr-BwI4cx+K*rsMg2p1`4<9I6^bp9-*_FItnf+Z1GQ~r!cpNY%fjyvK&m) z!Nuryg_wujKXMx0-0(kRV}A z(RofZ9HNtaaAw`!SJ1$5sI<3hm($ z(AwQ#5!A=Qscc7z0zb7OzM?Xd)9}o((S_JuB%s?DGMffk%g`zeRP4n@k$#dSr$0b^ zqNvT*m!~h1?t=YE%%2_C<74EhE>2Uf_Vfs8v0^iolA*gypImV+IWrE)MJ$HgA)6<} zCb=vR403uajsS7jQU16HBHhd>?G8kEg_LQ`^dH(AiOOvn;00Y|!MXOD?$B$dixM&j zW5y9cnR^+rz?8ji2C|8Q->L%h=y$+cRfT$w`^tXJln7wsz!U)S7OE8Yc`9cjgI0&X zp#{Ye5v$8TgqRDLhainK{JB===fFVWCa?p17C=X6lk#E5viQ$EcS_w>!9#i7QDfDr zxl+&rB|CSSm+ge2ZNKtsGS>!}UM8mrD#-|CaSqLWJE1^3Qal88g~nuOP&wpPP0D7{8fuoGE{W23J!y>jL{BD*_Flwi;yDXY z8i(#L_Iy$t>re%u{`bimDPDB%5pp0tst1Q-dx9VSF0#k@hP}36t`}$Sp{V1kvjRIalPd%98uwVXCs6dU`Dn> zyb94936oKkVL0NE=lmQBRUH69t#E0gaMR&Z#CBh&E8agG zLwRYJ7d$&5L~6i2+sYw9rucX@-L|YU>mtlU3zF&qi+6!pj9LB{-@H2PvLp&dJC1%kC`IXPQwT7@LEN|?#F+!X zx`*)R;{}qQ!}hlh#Xy?HmJH)v7FDBDbNVTqeTzd6+L??=Aki+wtrEK2ifodwxdR>Ct5m)JfE*${G~ zJgmu5v@V#YA6rG_EtS!c8Sk49^jarNd-A*{sBM>9(N(zHcXNE!{f+WDOP<4*cG``{ zgu1eb;Z}j4C_LdJ)*yY5dapDE6rh<0NY**1wb`N4Bp!LODF=nxb%!3ak{O8sd_PLF z-InaUs+dNr337yW;SvU%6#^S)4wiIwxeawFm}U;T?53g?b%mP=fEE}%Z#kwD*|1So zXmU(RX{~sg6wf0G^=}bV9&(7lpHqYwr7u~8-ImPar4|++_z+{R8Luw|F_*7jgYnY} z-u2)zD)#fZ>)=AfDf*a5Ye~3-zZwo_jsgUdB&tM8mtGD763L4}W5pP+-oPdI>z3M7 z6!rFAdU-ckF-@(}2i=708moLbV-UwsgUdgnMycy^+bE@eIZ&7S10R+>FBx86Hi^0R z>U2EpciT<74uyLhfiKt~d*EYY7MJmCI=6`>huCFOuU?DX<^c96dQAPlb0_d2(M>{v zBe@~cJwVC@M$V607C{h{H9sYk#FlJu7R{ZCsrF+meX;$Wtmq|tpim^sFn~20 z4f!-rE*_^xT4JJoMt{mqDaHnJzmw(yxr%XqHZ(0rl#DVS@}9lAC*m102ry9jE8Npa zFWHm1HLV4uWZqQmp$qOw(5H6WU%shpiT+v}QjrJAI3#7c#a?)V$kH;KE!idbDEaE# ziAJ8Ee#TJRe!)+;N)z3PdagmrA(u--lliqp+zJLGr&SgPv(YZeq36q0h7v@AS@>2n z1u@cveJTNWY{qt}?2{nHQ2_4YxP&KIca1ozHaTXko%DsWQ^@2lY^z&nX&OF$A{jZP z3R||$6luH+B`VDPO5?xMAz^;tv_qaYWvoE#x^QTb{)*Xbk=J;Yv?MzHcjBb8chZ;2 z&LMRj{=HkyrX}e-OM)t_=#cfev4W2XgnlPrzED??Jo|t8O{Er#5lr5E5cq<}bDeN) zaZ7yZ=kIdUV=h{*w^}BcVkN9FFI6s2cy8CTIwAS7Feoe2Dck%pNl95&<*&0m4hR`M z6Ad%{{IG-TR(v@1Py+iF8;TQSlzi*-V+TP;pYIP3hxn8(I~^~C5f_@~sp6AVrvC%0 z5!-YP6vaVwo(7Yf(y|)WULl?3?~liSP;^PHg-hN3z?3Rp(jOAES9Li_zO4?I$8ENc z%9Fa?In;TtZ}&zgc5!|F5|P}8_xt<)n&vsHLKIuMFK{rj&mhxast%ttJ;3s$JCE?H zn`7M8{4Lhg<8y}$)LzxY=r6L7S$1?euUV~dCh{fhH5{WO zTU|ZfQB7w*7+Z%I9i|m1huwtuE&1DN?=`b8-mO=4srP2j<&uu2Y9^--=(SgB-DD5x zPgZ8l+wnw9`NJNy=^v#dGq!8c-VJ@Mj47qas~o- zoc6ekwF+VNNhi+fnatpWGv`x6f0bkzU7rxLFY9#@*pKD{5iz$Ddt3$tpeTD{>e zpo^0<>3W7`09>_lC$-`8R6#zUW8G9Gnmjv6(}NaN>F0xuw05pR&i_**&@tDPiN&96 zn#lsr_47}CVCKE-W`W1u!*Nm?8rNjnPK3_^icWvEz{A;`bX2q`vL(e70=mSb`F+FI zCUYtl+E1yB2{~*1J3&_!tnfBgSaX^?J`tEJ?+v0Op(cp&CFqhnDyMOm$mDBD$8jD2U1)`0IK3)w@&;POu8xZsPxlD4)P z-e*ecs^NJyoZmHZ61%c(nwchEn2f=e^%AXlSXoo#X;?=!0dqSo&RSK8I5ZE@L?02* zZ8<)y9F9y;QG?lh0DSLPUgy@|ghhme%L5rF$fI|zVq}O?@bZx$(eoPn;4Qq5+#BrAO0_A$zPAZf1y3B#h!7eI4@A0+ z)F{Nvkc;SzUkj-FBqPn`OITStx=gnejk9D6|CsKV_4!omS|a0M=86wPd`a1dLfX}q za8DtXEYD?#yw0e@obyDi=b7bZc7?Utkc0 z+!LU4k8IOH7(be{XHBM4t~wI&X7`fMHZc^wAf+`Wy+tBEfr6y$S-1f1F`Pl+I$sh# ze`5kUoGg9Cj#Sm15jDB>p&|lgi0UqVXWk|05sE*4Qf!Qj-eNxhYYUNKBcjAaE@p4x zZMI4ws=7-b!uGvZ!xHO#aHw4rI5k&Dfkwqu8B&zxvY1?V*n@(PY8b}xr%AzdN*^FN z4^}{*Dmq>XgElhMH<@=$L`nSb4$BW8zzwmRx_t`P)+OrgyA6)PY7G>fZnsc?pBLNv z;b+k~yzAXL)#klHi2_g%?VU z!+3y*x$5@jw4Q{7e5A&7`zjo}I?vOXk4%Rt?$ut7ZRMAsWM{9n!HNrX%~XB^w&qgs zGcvltMVj^B?NuXL@}LncG2pJ_%Mh<=*a&arKCNl3iF~4`wy_$ux-N(8>&;!gQ5rv* zUk`WY;Fi(-60gpz9QW7PK8E<74s{!$5P)>s-QYNPpbsMe;9A6gN$G|=K|ij9CsSfN z%fVfWJWw60yNTyddaO!s=TCpkipzQ;JuZP7DPJL`EQU9*h!%QZ{G|8g8dP& zH=lKSy<{Qz(6vx(SSt729s?hxi&^u09VbSLO){|IY_F1$qAo$02+#e1+kX+5kkEjrikabksQ+|RU)Bp1`=rbP8(lRvOJ0hvCcE@h z-8T={Lu?bM@ET82RjM#i-S2iCXRuc#gD7B@?So45rQcwvGeTH-v)-z5rgWvl3;5HKJZ6wmDy9?>s~< zx?^Yavz&1EoqvvWz_AO}njm$tPk3B4pjy&2{;J}5A=mvsf?-4|q_B-e2qS%g`YZP< zIPi&+SUj-=A^b&~SU&!e$b9!{)*nU*lZ01*j4;)KvaCpwHvO^9@DB**5ffquh0S#V=}272Y2{ zDic7kwf1M^-R0q6UC$^u$%i}C>~mPh%aQ^SnFxY)&wADM^3>Kmu58=|ft0@r3g0*5 z*{Jz<#tvt#g~;O9h)rd6SBJf*`a|M>?CYwB`|Sp2e4&1cj`vD~KT+N?ixc5w?Yh{S zFF8*9@A_W9lG332yy3I7-up+pr8q3eTQXfoSKR1j&rc`mN#wfCel&l3tw>SHQv6T}V<0%X9=uG{ zWh63RRvP;;e66qD4~{AE=L$VlVh5JG-k#78D-0m-lHd&`8jzZVv=|8Pb2=_F&P}tu zR9H&h&Bhuk%bL_T4rS0`rZ|0HmZz8*M~AY~poAi0nDgZtrRflWGeY*Xv#N(jMEDr= z-&I-qUl>$RQh1e)_mD~bm*;fpLoY?rcqryk=eiELcZNS!l45c`gn25V1F!N%={902 z*_*EHl)|2RH9xo6vanO~6)iSAJ;f-X$ra-yK{}DO|yV`*jaiKw-&7$Ge z16hB9;=Yu2 zPwh!gCZR}KTKHcih7m?@uHqplf0X+Cj}6pqcXQY_mHq_Bx|Pp!{AsUtooCGyp;DvT zg#Ln=DqCRumnupR6ty@S*Cidta{Ps#-3X!DOZFzC;84;gkh4JlFXrIX+OX6JxhSEY zPt(E&6>KZ4K5<;&nYJ6w1*(d2uM%%(3fL&0=Q^%;Z%@Z=tHO3AqBOH!pS?U%ctjPj zF7}|n_{9i?=#WFhQe#a3o1__6NmSRE25VDY2EvLHYoHF&P;!%X-FQ*_VrMfhw~D?g zz$(;AyIQsD)wbDI)-XDk5DDhJKC8Sb>RH9xkY5u#b%@D#z%iOjF7~Dh8GO*2JrRir zzcohqJiqnA?4oTVc zagF-fA2R8itbQ|pdJbmJo{>3_2%r7PiMb_P(yn4#t;4=;OpzrL=Gj}kF0c1z*B2my ztSBayX>-s*0!aPHhJjYwND(-gd5SOMlqLj(iBwE?w@lmnNnv%Ps}hd<$AqykvusoE z1q`6=5l6i#vN-U-&Cwa$mRq6xE!{w`US;vG9XK_rV>u8a!c3~aUkYj}bzV?HC-oV@ z>PcbH*kxywQrt8V^5_JE5&ytwOMxQ%D@;F8ck~QbSp_m{;#F_wOQx>m5jHZ>HfU{Z zJKW%syh9dwPqr}De={ttbPQj8;aG;s2oSsX%c=Xz%9X|W%4SLEO96BwD<^(E_J};P zXM7$7paaev(2h;*yCV`#X~WX(hLul;m0HEo5rVrtYJnPnun%vGX?!S%#@2X5yZ_zI zXWIE09rXhP=l7rY{$c;{K!hm8*dN~MAFR(gPT!$7fw`z-80VewS3oKW2D(xz>keQSKCv4(mv2A_&nW?FqLa}o@9gtAciHN&{vD2-MF-NlF?>P@fsAEuP z&3pxoEIQ8+I3sRGg7L}B@Cfi>1`rXqP|8{SLbufEr=}`XEcI<^DL9dtXZ}Jj#hRlk z81g^_I;5k-R3kOYpej?N6uebFs=(%AqcRXPP!PnU&L$Gm7Fv7MHoc`!x1B~UiF}t+ zf<}wVC1hL`kMYYCu8~&vaXqfnSWf2a$q$F6tjg&jE6vw4?B!rphV*c3LS{`D(mmyu+yzhxz*5`Pgk%6`3|4g`RY~nm2Fd z=Pme8c6-Yl$+OiTKx}9PGwCVP?g(Eg|n#GU9E0vIh@P1p@ zHFru2u^)c<_uaxg2!oJ zvma@DYp~#$O7_JpiC9P151BX`HAh2LhmMY|Oop=S%7ctX*y+lTW3$Y%uRD)wB?$dM z`)vA?d2H)ACvd)ayb-1NYp?R*rn%cd?03Iiy?pY-?(_Y6+_#OzEb&!$bl{+=IR8EQ zw>%@C*#Ae{dTbrxO`)Fg&~_^R3m@=Mq!B|8M>Q1nLCs!s{fpbaLRKB4x=bRGiw6So zJQ}cskU`n6W*M1ZZnp?xk_w$D$Zo%!gz4}}OjKaBah|u5G5i=*+7bR@Aj<S>a#Gs!3O%VjX^(M}3%k2A~UT*DqbGE#8g;}x;l~}YoyFMd7 z#wXWP)N7gEI_fiBH;h9=SY@7F@WA9F>`~3g)?OW=>xr|8;1gQyBqp3>m13x$@P9+j zt`)akxHM1w6+EVRLvxTI!C4SaI5f!eQF<`*5~4QsMnp{|gIgq~U=##ezwvsG?qE1- zl-VXOZquNdtpJaGRtq{^NXUY>g2DqrRCj_EU(GfIs8~=?M9KowufApfCjWkC+ZYSB zpsE)nrgpz1RY5fXgaC@%N$=j2gfjM(8cR%4|xY(957B3@5FxPBo<76;!W} zkaQ2j*(6cwLxAhHcqeN~S~Ko>1wT_cd|}kxm+2_N2sOG_8`g8dsL&O$(MyZtdc$x6 zQeB%Ah-#^jWSLz(a4%KO$yA14YX#AxoDIlZTqsXx4v)PhZ~g6hp`v7f1>ZmfeZ2(B zP<9SmJ+Ft%Ee?;fk&i^4%!ecrEx629*Hv#s*$8zQ@HJ3tLIB@PTcg|Z1EUxj()xEe z6S3s@SQ?-pEjRdbGJ!Yb8~93}>h9Xv>FTk| zRITYx{q?-gmTrjZt>*217B2%&z+!hpVX4bJ=X*`eaS*A#!z1Rl?gQ|(Mq{OEu^%6& zjfXkLt&=#`m1UyKGpW<>_Z)b51tm3-_Q2jpKU7?UxLcx!?)!Z6;dJP3yW4g{-%%#r zt*GDUv$9KQ=DHLbW;5vPb#*q<>K@>;Wg+##Ov4bDMYDP#FiudTs`X>0CHAAR`8eux zb)LknVQMzv$hYLzaLzW-#%#t9VDfdvClo%h9v*o1c0FL{a&E%Jgw14NtK~kdYMI*V zSzhK!$n2U%V7j%3QA7a?5I*K|(}eh& zRB(_a^AwWp~Kgpr)lrp>^1xImqp|CYZq8C2qExlJcf#3@FmX zCw;ND{+rUY5^ZD7f0!VW3nGfbld=k1pB_?@te0e!VkUoiR8xhWQT{|jD#UZ3%lMdx zWDI7c$*h<)!baJSMM?Pjt9`d_NohQv>3Bn4@S;uB4TF98)w6_S77vFJ2E#>?N@N6I z5k2u{KEi0|hZqMLn@E`y7$Vf_?5;?e+GLq&_pxAPL_{ws@ zd2_L|Tyg0FpJkwURankA9i6S^K4$UwClYNtdPkTvN0Xu5ZdqcYUUxVFLR{pjFT`1u zL%((Q(G!p!Fp;F_3@}aop1r{(UHA1q1@feebK!2(2^LC;q51I)%9-&rs^b};<7qSp z>e*$fdmVNUFy;{q5FL9{)OG))Zpruoz&OTdaro&u7bHP;J4ECKSj%qxwGJ?P1lYE9 z%RqnM=1m(ntY5dLyK8A@dvjx?vb-!9C@t~0Y!;(lqms)cVgZj0(5NIL4vX@jpCwMK z-DepL*fUCZToRWk~dGJoHI|RI-UqRo=kHfbNBUbexN0oQ0nK<=Yc1@ zdklj-F3)Qu!O%3Z`2vtK?yiVXQHf5r_9q3q*=M~I)42y6$2+s82S|Lw&*f_RQ{$GV z;F&(~6}SGHs|<+zP;mFqm%DcE7~KBFwyj$>Z(P^Yy>juw`r4|BU{|Qi?<@AYoS3wl z4SJ1wX2qkjRQh?jm`;X+Zpu){T2@dn-;F6`nE3B#j1_XqmECP=D7E2@A~5K?tz_d_MY2NcSSkJrbtR|WEU?8$ouqqYvBawW=L^r6U@M+f*& zp}qFJ)&AF)yzo4l>Uc8fcr?v{dUjj4E@j^Xw%u+aDjx3jgJu+p=NE5^8zBx$r#E-C zAI`%_@Z!coAR*sU0l$>L_*LRN;mbLx(gX`JW2xD{)6ZRAj(^R z4Vt0Y`1>2X-}c+ZY~0m$^-1KObLaUUObie@JwffqhU59&?}X+DY_tb7<6Y*=dr`Wa zQ!B$b6dlU#RQo_seTH%2!tDlv4P&t56&8A2{0U*=Xu^12JMv)iGzaNU%127SK2@os z(sSCAh*o0TEvWznTX@f1W%`>s8K&$8j4s2^(gjn#n6?Az#_MO0uCeOhzFa@5R+Rw5 z=KrQ(ws@ri2CIowln4FAUc1$7)M*uNrCSb)g)lyh&!i_`N0Oy3siA-h#ch{_t{@h* zjfeZ+O&*+oXLuJU_62TAxOYKwK43714OJr%8e)bnQ;9R(P<*ndV0g;2FpsU!JG7Tj znP(dnS)BJ(C1&VSfEy`A2xaPq^O;gv66#2+AnJmXC(a37yzEIsI@eS_-x9U9B6Smi z8m_7DeMA*|N=CuWRY_=>bFvtm;BhPA;Y~*=L?yModa@fFHE<*Jz+-yegQR_2_3aE`-OE*o~2*im}9jz_Xg2%aor5<>u=Qq1}kR4Qt`E*Y5bpd z^0;f;%V~Gt-`lS3wwrZ>8hkX;a{m0lK|1-lVARZK2D$`J;hi*S;&SLJ32c2rd&vQ} z%~`_Bnj~y)t1naZCLqg06j3?)1P~@M#G%okMT+2Nx~s|*EJ{sHGH=uz_s55r_2T@T zF(JP=7X9W9V|rZ)j>eMpvSJotaht=F+$3+dX+!|M`Eht!UR9eUhCg3T-u?9U;J}Z= z`iIRAtM`}F4&ACW0oXAo&PB`h3YL+CN!!FHQ0R1fzHsTV5+QU=acF{R>pRR{(gcD? zghiI-1|{$aplj7?B6ejZf)trtSn1;gH%jw*ML>3?%*%s}j$eRb&Arxjq(Qis&O`1} z`^1EqoU~tYdY467yOQ7=@%toH%I*y&=ObBX+qy(!qIKE-X23MrrhlLuhmpt4|564$ zeKNeQqmX5dQusdmMX0&#$j##nz(DYq)Sbaw8lTSERkngbo@CbQv4tv^U(eFtt%Nr` z{tz3)`2BW!`z;_1ZWlA8?s`SWG}YBn0KA;>l5rgDPBc!iQQu+9+~fd{Gw-=p>SWZ` zZ+yzl-;f))gkqcc&M6`I>h`^O`Oe&GxQ8honbGIEsn_dZ++2uAFYq%oveJ1LK}{>g zg<*0o1Gfc|m2wsHdJ!`s=~q#lK?FzInOzF3^>d!jvrdm0fl_pJ)4T1asY`o1<%2{GJ|h>OP@p|sN%#rr8xK_v1vENjoxI!=a7M%SE#FBekhX?IuHSt|T*HlGFdfMf*@01-YILdePLyeV<#5pink%$Cwv zk`xoCY;5+IBzsmVVdJz?ym-xTC#c5LCvcKoa!!odyS6^M*7T8LoM}uIN=;Y{c zJ*jgB5#_TPSeTGue#-S6*rNb=N2go8dAi-A_;Ez)IHL#C+@ z(Pz70G_xh`2?TXnH}RvxfS6q^BV(CwD#}3zr>BR`YC@e>VSnoA4kbk^%Hb`i4;%`# ziQ;R-l05xJdOYj4O(lr;fm$gfqiSPI4tE!|y;>I4lgy)%k`HoVQMH?1O_|qUYxH60 zYg&50B}NO^X(eKlL2J|56mqdfq7eysToyp5rXT}LWz_<3sXlWLhV1!88a)I3VU=NG zEsZ8iBVaG-w7>*Dk#CVPy{{C-mTTT$%;%4{%W=PLtJ2OUu=^h~Jl1~qPoV45-2STk zpLuk~cpm(IjipZQlT{SNEf?~ogB94png8(TAHgS&G>$3VGlb%CXw*{c<%`lSeDum? zg+YWYW7DN;yW}3V?}46P7>($SNY+gmsUb@rQvy%ujcf`A&cr-_byc+MP<)H#QaQOK zU^L6bCWuUQIntW!K_o;y2P=E;5|+rjqAJB}&UQ;Uhs_>yfI+)|TawSM2j*u7}XB{-W-H!S5g*1XDX z>M5{dIHRw)(VS+k2K2eASp%3*i$0G}S&MLRbKU#s`Uchn9>gM6szD7CVq0KoN;wfR0VvT0(-v4sID8i8&XY+F+T931 z^ySvK3|7hm4KBLo@qN*59Rg)rP$T38UTF11Ox)V;JPy8ZT8R?>hFtGD#Ts9Ibp`M@W>P89N6dm-TI0V?1Yr8lF!_A>5$y}<~JELouWM-rE@`~J(aQPr*SVWna05G;A;N6G((VH8QNB zk49Q0c9iuRSdH`1d8%sU>_^lVy!UW`uw#mq8B5Ox6smyNXZI(9z!2qg`Nz_N7!mci z;AwsL^VmGL7b{fX;gjkJFB|Kr#dZ&HoE;qhYgDww?&Qd#pV_fgS#iD2WkOvf1NShe zbB`8+Cm--pfJ{z&>`caE;)LYlig>$yU4hT%J1_SOclNh;zl08s(Zyc-%x1@IuF^X; zopldJhnk^CULlvm!?SH^0dXxm+}zpps(E_G&ZvmWp8d@SgJ{r$QlXH^u$uKwgHxrD z>Oh@PB9w?l92P^s6wqlD5)O-mTlQ{YL-kRSDFJv~_reeRXR}c0Oz{kx&4YDePGqH4 z)N^;h+V&RZVF=z&@<8@OH>yft?B+(N0bc)j`#y>{TCwAD9z4_Xej~|8gQP(mBY$Uv z4AjoM$j478NM%+(ziQ*Ec-d@aEM-0Oh?{{Ty82K+t+|_{)k^TZJl`}@bcox+N@{{IohB1H`p9>x^I3N-bZ(GQ zNqsx5S+yxP4_>-K%#_135T9!mNDM7 zwC!FCr?ETDGGi&Nxp7JqdFv$b9lZ48loZUuNH;fy5?Ml@egGhid^gZrP?C+gP{^-8 zNMVFI`xj%=hiTv4E)ahCi{ryu)pHGvQy@my!>*~Z7g9?zN~q}nQlInly>*rrQqyBB z^}q>S_XL0&ypB0@1xEZFjS01+s;VzCjQrpx?Y&<2{{HfQIqkYiqb@-q2P|$v(b;j> zmmNr49uP9>PEhfcm~SU=ROR@D>8qfHz+OZ{GQfJ}QkgX4x+@9Jf;OVhV9xc*Tv%2?xH6zh>PY~VbYTlKF zgI}zjv$jM?y(TmTWGaesq*k zT-YL%Hfvloh`>+HTcnv7nG67I%^1AD+)oEJZ5NTxJdnu`$IzA{i!kkC+<*uZQV1CR zrO4(>&iIA5;)#v$J!uH3T%kAa#j$XH+ZPmBRPn`<_KFIJu&%R=U$Tu^mm zSHXYUjFCW*6wkyeg)crg_4$~y)w(psv=ExiJ#wZeCj#X#^TK!$9v$qamd>P3z`Xy3?_{?yhYkd2|d_G6Q{Rifi|lHGPjNr6VSZPOhkk z>|8;V{3*`5Rhz0Q;=O%`+9X(x@*PAyFtN7KLUXGYDsUXpjO|Zkr=Pq7wY(bWF#Ga%T%Gy%<%r$F7 zYWTeK@F5vKMdu?=lJo5C+Lhbj_gRt!>y*$Dl+eOHo%pfdw`r_!ujj>-Vr;(Kuf zh>TcrC+K61nA^JDPR~LAgZr&!H3>XZ=Zqj|#QyQhZ7`~g;6I)G^(vPtb1}pwMle_y)b?zJJ+;_TzF-n4_w>5_h={vT4^GE=CYgpjK zFCQ+K806wEW?PM?XY7PPI2id#VbFpBm(yz1s4L0?)xqlGBB$Tww>skAF}uy6Q(H6^ zl~N?&asUP-DJ5SMu_@0|tGxHGRUgBmHd|*jIMdu5yP)vmi=oE5X5+d2X#%I?mCog| z;U}ju17hdLZn_m+?zd~7dv#r!LMVUNbMoBug6}2?yvAfJV^GKV84poiE%7-pHv#<( z1tCh9yOfmdrVtvPX;LY7k#%;TR0>hvjru!0mZW3a)_&J*Tf#gIe8Ha#GV}0-)9&?C z$=R4wArx{^`EtB&Ek)11ic3Uv*tHjB<;y>mP4bkL2}>v}yD z4sLM6)Z|Ct`7lbp!=eBD6#Xb`Q|nGpi0Ee0Z$6M@Nb^X5Zn`ahQmd{>1y*FcyjFdf zKL|U?m5Y!HM-HGX2Ong0bDFAfXl13oo9GDa{8*69< zbZ+%i2p$HYt;-Vu_)hn_@t6e=R;YUUj!v@0G=pfz@6Xw8`}FEg*hW2O<)6h=e1FW8 zJRf2dXiV*BlHlnuT$uGL#!($-k%F4hFcfgN?>VhqlcV3$WKl|NisaD`bbiVJe4d%P zhXppblg$WI@-N1s55}Z7ApGqwcQ=<8r^k(Y;A>@tT0VF>v@IYY0?UzsfFFWP08G=2T2C@Z}qySK5}kA-?*; z)EOnnJak1GKikG5=`GfT(Yh*cU`TuR1clG|>aOLzypURZ7c|%2t?ya$0a*xh;6jVWfPbhwS)Xjx zlewH*eSeC?LqjoI#&qOEPMoe7Hy16O@Bsafn-Mg_90ix5SG`g$m5qaD=A&id9HC2u zstMMp7DCf==QWrn)A2v8^JWdYxx$Jm*>EpS!9Q^5I4#F8&b+!l(1Sck24v>+0LC5d z{VYJTt6=aj4_na-SupiyTplM;ukgJvBw;X99E#2ipQfOCABt9tiZ)@u2osQk;J^4x zQ+U9`w+k==PjZW&!bI7*U$)g7ryGpem*8Kb%1_d%R=C_AoLKXV7dt==#CBmpKvp5c zs}$5x{(R`tAH0k(@u)03^#3G@01+4n=rHpaNhv-SzZSsR;40q;{C8cG236(CFAV(|#evLsIzG)7$p9j3Ltcs*HL>u#LQ zMZIwWvm&h-=*&0?0jb}vAzfq-Wvkv_XnXg!mxpXMFxjV=%PEUhg;U&$(4g7$jGp66 zbRlNBF-RQ@BcByqSI>*V$pn0OLqz;XwGM+L_8rzmy4Ip%&s>uq&$0qg|F~z2N;1E_RK3vVR=C*tC)&m z48Bng@3`<@N;vA0LTzl>ywRq2qK%ikzASza_w(;qg9OjLHv@sD{$##n6NTK6z8; z4u=urDkB+#vL=;eQ3e0$G6Vu=ZCi6`lEP-4M80R6NW0lBeHvBb4LfWXtlHoV*wo9uFyq_&zQjKSn)SL9d z9KWG+yX=9k1G_Bd?$}A1B$?JQrfn1~l+pdJX3^^$Hu|94I`Qd5T6ZDf@DgTm1xTt8 zVL6*<{x9@#!?y-=1OP>OFi_%kIm||lTB-TTVbVz3Ine0kapZg8j?V&fJT8`hN#Iv> zRA~nEc>{tsjooNH^Pat)LeCDq@~n+>RlUCPu7g_TxNThgLBbIedMI!oBRPd3vVKYzPMmUpWj( zeO+0|=W{xuAX`&iM}0?CMX0u{))$N|1O6hnqtsbyx2Y5`eHLI+drKIJ(JhrnptmxH zPIuhyul7>3qfwII4vrQv*tmlvLa@zVjNw|7JUS5!VZsAqZW4RTxjhpr4kx97H&2e= zypmPD-KBFtB;F&sXt_1publmym5)_6c$WDjGX9tw8WT}p0Kpqhgd`-;symH$$q*0o zO-+T=pdgVwDExwDyie7A1Q#k*dPS@=Dyz{zeY8@`fxtzc7QHT}$fe^do7?V@=>>u} z*!-iCi)}#&iT6-JRL+sM(>LpP12u#ewq@ZN+tGueQy_yt+(O12&UuwsfB@aDXz<=| z_rD*+R@4YB(ymKAD-%E{#X8-aG1u}fXq~0YiG@H+aYMwC*Rb;2nIt)P@yAY1l~fu* zV_}fwt329!XYvm}UTR?Y7|rtp8z*V#{+_ydKA*%9rpuyo zzI755VL0=4k{1uwmBl-OKDIwgDr1i#+f64gU%EIyJMFZ?R@4f7Z*B<|=Kw!h$J&yF z*3$S(p7AAnI_{%3W(DMqW_nAB_GZ^fBjUDcm~q`~YHqK#lGfm@p{-yRc;e}>Mc_%n z6{u-2%{D-e!0&rsO3~Q`v$}V{I@sBeg(_3+8Z&g(+nU6CSx3SwbKc}ubAUTn^=7qE z$|U7vNnP4Rz)PQKAaoC31QSR!+T#i;Dx;*eDyt2-$X5?TN))M|e^7Is+ zJq<{N%moO)LBRGe<>}Hv73kQOO@#5b1_36_@UY%Y&~isl=7-7CCxFTA?`Np5jgAY2 zpd*&qL^y0GQ40yp9~uD#wT0TblcQ{)?dMI|8r4<|JzrORD&UDlK@uv{TmZpl>vR}k zcGCGWbZZKmKg^9h&NyYxtWRnt|k#X0*UKb7|Aw~)pvVhsD7bnCqD+BI2Vq0-8q`*jxc4x75m zhU&D80@aFI$D>u>W(Yd$fOAq555TU&>tMxD55`TyL<~e!GZ-bQD{NV3nokht|fyF7UPwT-t76GI!1LV9K-{&^1$pn+*RqWwify?|k!zM=w;g)i^PpIR_ z`RF9#@<>9ojnJWysPA{|+;kcFYEh!U3QN}8$xJgb$FJm-l1}hxw$N|DzL=g}nTfUK zH$gfWb=2nWMrw#HZhLyiTd8_a^rZlLQ)rH;$tX$bFag`L$?onPjGj47iR)ON?Gclj z2yC~ts2poS843nYuD42sh=3U8q(za|>)-w8#K;1OJz0csAt@H2`+*sr0yigABv}fD z^FW2i&4aiw4g+FjRwSPT3EGZUj|&!l%#l>a#M6Wp-Ksk|Mr{tnAOb+`(jKPZ<*zyv zQqJRTJD-Z=Z}^*EogQ~u^=cH@rphrgi{NJ!@mV|W_G}7u>oI!l9o#{d5UZg;$^xD` zmlujT(U%X*6lmfL5P0K@byj3~=;2b~w1B7E;~q1P5SkYjq*Q6)~kI z4=KpQ;u|DBF;{qc&C+EHF6!UlB|-tR^vg7B(qf)Q$YjU+e19kv`C7+*Of$Sok@uX? zUB0)ib62c$ZAtlQBZi}K;}cmy=QOVU4u#{S#JGw@(+o?vJW=p#W+=p3y=HJg3ebgn zxxgA6rs6L`b`c@DP-H)*;b%_{x~*od8U>D}$`}E$`*J=1cp+2OcAT){>Zh>}Vjsjl zhzOQOGLc2a)xn5X~3)6?sy#FrFTo^uXL-6@Cw0vjxi1`jkO`=wR?Vup|us}Uv~(r-*( z9og9S3X#Oe_5FZ^{-QoGo{eFN~-km=#ANy16I35O1cD~jBNsi{&-BpOwtrZ(mDWS7Qk<1ySXTe0_mUr3JeEt#mkGvr$1K%zj#@ZM3ueV%OYukjZGB zpMjEgB6zdq6H5a;^{_p5$H6`B-K>Q}EmMG}0_r(wq`q15jmqzLEa`9-Ku5SMI_#D4 z`e(}HtL9@G0O_*H-$zIsiQ_plAe_*d&9zn0b0K9)b)VFip^CIjxrhR1Pz_(71VBNz zAQ^P)LQ@Yfu!z3vBr^4IidAk?;=I z4vvc?Ur^Ml?sz@xeEexPj(vv)ixEeVv%d;wlGW8xc&0X6-bg*1`0T>^;eI{59$!(E z1YKL4^NC>5U5Bc}-vX86XpF<86lo5Pm$xDSb--IuIht>t#N-e)d80E`0+|}ClsMYm zWSmA7{HMoKhdC1^yvs3|1+f`MT4~&BJPG%zuPhUc-z7XyNKVu>YNgacO5CJ+ zb7|7c#D*iT9$-RM8{HATJ=>gou z968m|pwEE3usgL8)PGz*WeV~@rK8q@n8BO_iZq?Z14CSH2RSwqzOWK&7F zZ+GX*=M=8~`SkD0f1li3o*y5!o7LF&B#Xuv0g^PlvNnFHKl9HA=;e3dDG6PDhxfQh zX(Wco7On@)^;kuVeQ`@AIfXfc?(U`;*|aE@r5N=-URR(vxf04c6brFt(X~aeM4V-` zOp&lh^kJ!5hD1SWXrwuDWUpI%!L{D5r-$lNy3#-^GFg`M5Roi$_Ak~Xfr*=Y{o3H9 zCZ`t7dZkqTC+qN( zgS^8y+;yZop1o~L?tT|2?4k6Y`kUBK>i%3N7|H;lPP7bGlX|lV1s}B(@4ZCBKqV1Q zD!uM-C9K;wVc_(>`kAnjolbO)M+fuBa zJTAMehU>2ufkx$VxtD* zU4kiD7P>H*U6M_^{NOsJ|2PeOJh`aN?O`ZFDZ>VX83sZY3dU3*4+07Ywqq?< z6X&D@AZ_q=p-G?uBoiONc+1S;?mHEKvs2`q!t_Jib*yX_Ltw$!a7#2sy*uuDOw)Om3t9g2NcGo;>_USlJ}Xs{K^{Q~2s$Dq)tG{Dkluu)|d(pouR0=-APa*YIMw<)4Tt|HY%_p;b4F z1a?EoQye>|VFNZBC5|AS6vVSd9-s#t;5}tR(g$+mW6tuS<=!cr99u1+f)H^EVOv&9 zRkt@>R6Ul=f13SDsC^pK&z@s$nJI2!RLMapli(g3pCX-u1!`#i_TD3BVq~et<$aLY z!58xp-z`eq-Ypj7&>Y#cF0}Egn8-x2lO{C^Eqtn|JLq zL`t}~b6#bOpFHa*H{e5c#dG*A8V1z{^#&nL3bO%Yd33&Zm83>qrb~!2pvqD-8<~T0 zk?J^w5!Cw6H9JfTE+m?AFV>YrRhxl=LV7@^)N$X_%NO}3eS;1ULpaLu0J;IJ?C&2IP@`V6cbl7x++i?Ag_tsqmIq z&IVvmo|=L|wH9?Moe_BdRE_kWK1=aI!|u)R-uWJX|GUfc)=B#$VWq`wayi|JSfZ9G z7z$GbpKQ`*F)n8LusCMZG-$OKtX6sS9v>Z1qg3Xtq;P7qchys*Z=D;cZ_}z^G_)B zp3e0xJTHX*{d}b;%V{-f-`i8}Pqzyoz5@Q(Crf@Wz~!CEfKWY&X;Xgi_`&yoSR<)9 zNbdFjC`7U?E-U*j^W}wQR$hbUCRpdn%_pl)gN>XurG~=ff36oOW?_cGhO+)>S94Cm zEKu0_(n}$!0kYjB`PaET+v1I=?RmU)B_7G8=Fo3bMvvRR5MbuBG(nMFG*$@k&l@g&)+44&Y;!Uz?{p?^Y0vL>`^tnIk{>Cghoq63T1p1z z8=V91Bk1$-;Fy#b3#D)=L*1TJyKRpvyJ4wWR`$oCJz(#c@f$Ldc=bdJ!^{)*hQOl$AXJcnpWuqC z-JR0%0{jNoTFQLJT~tv6CW@D@aCFdwJVm&-y9;p(j*6AY+gcNEz}pd!YYL zWi%B2!%VtVe!<7`5%3ItG8LX5!&47^0AxtjL;bR3_6v|^Sp|Isiggp+JSjMZ;?)@1Wl;~Z3Y!2fznPa;s%QeU73g>k0 z&3_qh=PvBJXwL-b?@PcbmQM3Za3xmCHt@b9a zItbFwmgts8A`M|L2PXS>%C{bsTTIE#e=LnIhPlpCkkd@PE@O`=NS>tRfQHapE`V(k zM%n1)o11^dJ!I4{VY6eP(Gn?Dw2_*jE&=vF{|Aiw3U*T! zp4#7S$4t9?gmV@3JOjLFN$;(Aroi&fVC*jtdjT*RjJFAPM#IQpMB7Wvyye(A%61y< zL0+LdOZ?5DRk%OG?l#)-BkX6JGXau|l=O1tZn8p2g$KH=lZ-K!v0oq5>M%A) zB_(b50JC-p_CA4?&u_V}u`U6BeJtl6^UJ0^M1*HRz25-dZAssN+`VlxVmwp-jJ(A} zvl07q6ZQ;ZoZVEL#dxMewC5<#Ow5}NyZ;*>64u>`dA?+MIK=w{?YV?-|Fd~DfX^~X z-@|fW2JY)rxP=POafKfd?zu#Cen+|8xbk;+j2ZmpU`9>wzZs(_mv}8Yo?R<`%NJYm z`)D*>4sZwZwuh8;?qQ^#_vG~K+QT(H-J@lAX6(_`o4dzwt1`{Zg@*Q6Ci>l;ymS3) zk4XMt>ryVi=~;q8YLqKh#H#{SHm4j=Xh9?CZ`-^jZ<`^s!@Ka$&`SetO-F$|yg{R`V8zDmXF8s`wZj5niVI*_CqZHBV-$Pca8H zVBB;(3@jwdfvNySyR%Y-@RDR9$W}q2F-9xcXoN+_24;EzA1LA;mk;3}W6Z;78tc`h zbd17m@NlR?Adfw`;>~_O9MO4uT?@K%hIQ}RG-({ms}^S6ZeK6Q>uyH0a=}pQ_&ww0 zmex|hF^*6T=ft_@HM%l92ZAD3bf3Jn3OE)*Y^xzz$J+#FHsAh=R4G^J?bRR?{m4Op!e8{>Rmxxz+3 zN%^`g4UAqz9>O-{;43sDTrf4k#Uy{5tUv~3j!lNboP&lIVl8a-u${l(!v&Qqf&k(Y zdx z|JqY1RccN6=d+QKPLIK8GKZq9{O?^ze=riXvP?mid_ zN20NKBAH5OvblVrSSnYlcH3jW1ODfLeGX~WYMw0)JE2K^w0fi2QXSixIM!L~`(%6G z^^y(V_qZkwY{^uw|{VWbbNApc7Abrb$xStcmMGC^c)C=!jWh! zo=B$BnQSg!D3;2VYOUUAw%VO;uRnNre0qL)eS81-{QCa+{R?qk)@?t|>wezv7x77o z&S0|G9Naj|c)L7$l)l*s#3I>)>iQ6dEF%5`w`e06$%UvQEOMSuPp@x$T2;>=Tx;6?mcx}!#@i05qWhtCoab4un$g$bAP6Rm= zh68~*ja*!}CiEMVJ)Ab|krl;94EAsMI#SP+bPAYoiQw0qNu|Zo0e(j zAc?5t)G}m4@v_w?dGVgup7*xXASV#*Gzg*}BunTZy$h$@1CArK*SL1WNFj70rk`wA zQNn#D&*b@mj93|ceSlJlJ;0bG>SC&sV#(A^a0ol|+^r!4UmnPA=&f3Xd$t-!2=}#K zY2Re#JTerR+$ee_4Y!XTUaY83cDm6>?vXvhxv+P@h3rNf%_I!f6($_lZQ2)P&+8vmIn_sEHGf`Ikbcw z6#ONi8nwJ6QBbvK#+VI_(Nd|lE-QFCvI7@Nqn0mAH2#%EwM_{p&{MxE+uLet`Oca= zAmNE6=vS#vl_^#uQ)K1TkWN|EUrIt{L75a#CS|!P|4xOc%?^{p=aL^mgb;)fLI@!N zAp(L3LIR`@nRj7nO$DA~B z&4K)Ce}zi!SdKY3`>d>6FV^F+*$xjr)5+h0a9~(s^*BNcd@M+It>$a47xn*2V=mT@ o{LJQ-@b8WLNA=;!CVc;_tv_O7{K3e@U2<*e3?W4+H>ySpop`EdVfj zylc~y#lHYstHYInn}1h9M`;FLLV{4!R3TZTpdl1scGKX+54uyKrmUdv|Lr%*$)7=` z?MvmWM=t3Z?|65})QpuBdBCJ(185=-g0x9pBHc_+0yB}N$_NR+Xl7KJ!xPWEK-PKv z#r{g~j`&y_9cfOh!KcQUH!uz!B+ptE&fG^{8U7zxDq;iiNA1_iX?JPH?s?~^JkH(6 zpo3VfKTJ`VT*(CB{agqxDht0GTSV^65id}NAOJkvhAiwX$#B;5jREG503 zl^lH9=o;Y1o|AISPMZh(sqSx<;c6y<4M2bQS5a=uJ=0wM*uqvHHrdDCNkzGKR5(?- z_Br^l8?<>Dz@a{Sm1#A1Oc}BiRN}{ufj07btoh>-LOnt|SO*Rpzi^HpT+sPk8X{9n0tXfRBI_wR+fGtWa+?5TRm+GH$~w6TqheKN6eYTf!s$37B;_|47kdX` zG^C4szul5+J#k;MLT{pj4)k)}D83xTdHyV474p-TDlUc48YU6DxNtmA_uWfxc30xl zvP@~mmENOVTr0oqIO*ok_05q|M(YQzQ&-+wI)f>E98p$blE8AY<=LPD8P^_;O1e06 z?D$@U9*ILe&7ximlq`>pn|2+?O=&bq6Fp7&Dr~W}^cloae9G0o;w0A;)H}x|l~Ii{ zcmz&d2c5Mvy~&r!?-1_DC{`v7XbLiF53(ybE&H|bzR}klLA*c#^@i@x8ep?5fc#x_ zLc^ms_x-N!xm0cl>+Z2}Z61>mjoM2GQZ^V9JOMz7v|XoPZUBG@6shy_Rz;QV`5!)E zLk8=4vhu^vf0nkw>nCV&9nIBl6)(e+!aqB^SvSZh;-Qn2;yjMFoU!m|?g zhq0mEzep*!%A*%zmM+Z`@7BiiX$AQ0@Cr9EAkN8c^rDwAa)9JbN4jCfWBs3RbRlW9 zB?t4xQA@CUP6X9}@EvL1s0Q+2E4JKnyXA`Cn^;)z56gUitiW*;#I_(+Hmo7uaN<33 zE>qvJKGm>Ll*zO>V38jyU_$rA1O}O~wbqMHH!Or}tbS@_FK^*(+m7mf(UEmCTdy%Q@~^K z0y%?Rq{lJGvZfPqbA?kC*}(g#We7Vhx{1%uD4uhnq)0zJV=yvAm#^u6Qe&DPe z_Q)nh8kbfs1KQeQu$L4scM_%^R*4!~1aWiEbM`_JCH2`=+)ujW=2ri#?K-cA(|wH7 z2FMjHz}ByhZO`u$vGyk2Dr-<)Azr1k9Dh-aSs~#eFOSGXZR1)kYRV~~j;iWEFZlS| zUX)Et!zL^(&;N9)K`}hkNNLjv1;n`|)KAOGUrDcEu-Gnfwvo+BDrs2Hx5mF=(ZZi+ zljGjDWD;{gk2i-Tm3D-^=IYnKWWAo3!6%=xWm-zZyGoj{H;R2xLtxE6`wDsoB(UkV zzi!J@hb>Nu(vo*gUY21VnShYnun3` zfor87`&{mR11D!d7{qwRqxPh|WAmxfgo4s5f&A&_bSMo9$g) z$9#V;xwG{X62E{=`J{_91Z_uB`!tB?rKnn=^BG6*ZO*FVz-IbpFo4^xl?| zQ`rM&-mlv%_-NL`Us={y{4~6yE%(0dwpD;^0I>|=Yx>oGFt3A`StTnp9g-OE!_hAP zbS($EcXFXh;;}lQO3^|P(rH$_e?@FA!Yc9=LaDv_gFbmEz{_u|u1;N|Eq82^vP~yS z>$RX9v$|NMkq(0}}L=~5QzQKG)rB7Y!D&}eLp#;&zFByeeFjOyod;2viLG%TU z{8ceX8O9OVE7(44my({%!y0R5zKUzK$OmKB1vTi`F@)wq7udle&P2HdU#m{GgvPB& zSlKz3fV_f96ndYXpI#fqTV2F}a4Pu7ed>ie-$vXou5ez?3&PWjLMS+$r}cZC$dW}H zA?NrE>OYS38QR2M%1BXjJp)+T(T{P#)G>i~+00Oc14nBW{p<{$p5VPh0(-l%Sb^}# zY^1X8(5=Wg#cdyf+<W3WCGGdsUzr=#))ACxv{XfuHIN|a2fl8GBTN6=`};KK_m&1 z`%CZzb%x;q_c?^7{}6d8f|fE~=zfv!FeQx&5}t}edW`b+ZFjca&tnbji$5wh01D_p zgCBTX&bjcbMj|RO&EE1(48SG^md?XI;IdkxooQdk)7ts1BBndw5UgmhF*zyzXLif^ z^e-DtN(TGP1QJP3v2OU2bj4lR9PF?#f_#`y2S^p24McOwRw-a%E%myOgLDqIAY4Usu3Z$w zd2#VNL2VAheqO?Zl<8|2MZ^!L3Y|9nKFjZnvfw1J)3}JfUiiIx7?Ct<8`pnUK~qz0 zV0KL+X|&d$0s??>i8wV4MJ^d1sDN-<$XvwJc#jA+cGW7mZ*N~)q2zFqoVnYy7qwEg zqdpR^nMr}~I5ZsUhg6NygiXK>({3Xaw)Ueqh!{PPG~ZlZ4W%Ci5mi*B9{n9YyU?|Z zVgozkLnu&&&_lX^p$jD|rDp&4WlN^1VzH!cd0lC%7qS8U?Jl9cq7Jli$*IT?7IbPR zYP8qaCjGqeS|ZQk_U&vm*@u|lx>0$hjn7A6}blEsv+>uFPjH4ZYXZ_|b-iGcmxF}h)G!5YUJup(GMpw~y> z=d?mBPIKa0^pfZov4h}3oXE!BEEX2D{CILW-}S;!ZnNUz8+QD+3e>N=J(!vnl%|Rc ze*C(J5j!J{l)us)TV774hp!3=*HmI3D$a8G9wbbWE^wuZMGPLe`-{l!GGTo-1 zw%Lh=hyZ^KsaGmlAwftvHYa$EnSPh%+Y!wiN|eZN8{I_2uHtH2%DveT9-oO`#n#>U zja*jLGVJu1fm9D;wOL(_*5$FyLw9zW;QNmROm7zC-uG8(=DWKYcZ^x+e5*gokuyan zymBURNihs9Z+hQ|oEW6rbcGvz!!V&9vYuXq*30j#*e{JzsS(H`seV`6ftB$w{H@U7 zFB$FkE}-aLYkZ`5W0@9k$Z7)qP>sxq5vBjl=I4UvCj<@aqapjGpI-J5&jaYwL=M(~o&4a(Mt<`&SU4lsx8lOvXdW7n0eft2JN`*V!Io-=AvZl=lkx-6^M$T?(HLJ)(M9FUH_soY&Td-Vv91QkO|*Jn zFJIrCHN%#)Zih>n*6}n2S~3vM3x3@d$-@2i1tjklC^)tny#srAcD!;u(_u<2)Aarp z9QTAbsyLqAI>mI=Dq!b`&XXE|Ra80qv~SQ9zD8b#oB`&+g=C}w(l4i6z3(JZMhc7- ztv2}AJ~=%kC;afG!AboeGgCiUyiCA`;N9VP^WE2a(->GwdAUuDD1UQrN5G@DqCShN zJ77h=;REKVTqC_qT7H2e*6AYaYp~XS~82A~rP<)zeF992Ei_Br0|-1LQ@ZtqaHbbgChlJ%uG z0j>OUZf)Qx*3@weci#xvLfEP1l2#+v(z(o(PTaVnjXjszxf^=!7E0=H!0>`Zp>~<| zXap2Sdh6fE+1w4*DP1I8Mk{f$&X5)&_dhtZ6wOy=N=M`@{>Y|r%Vbsr)o(FlK-Ar& z>t8eY1+0Eg{$0Mx<<0yWq4>~!)bhLi5;1D5EAZZa9|fmtEcR}Y^}DODSyd+*#6tJl z3>9S$(yZom=fUmVb-S#H#9g~`*8UO1mkOiA?5#pK)r5M8eHW|;yD>K+q-W63c1Oqs zB`5dy>g(MW5=UuvQr|t!%U@1z{U}s{P)Q!rKI3;b{GEGeKVQGoRFQ9`xTSLB{`a25 zDc+ECF*kiv^)T%18K;zx0JUkGPFHo6qGZK|*X7||n)zg?ny$cY4};ewntr~gA;GM* z9k#9BUaHT2zHxkkim;kX%Z`5gw(DG~Oaq?#C0YvaM(`jTL`Ml!8SXlqQ$vJ;lShY2 zoEo2Ue0jc?%Y1R2tGoyzHFS!q$3^yOt7&Dm1Z4bho-}9aw@yC)+SA0Ck9S7JlBret z)YY_?AZmqD^~*KxHv9J-bt3SQc)K);y_hE;1!kUGL;w)pwLTI?Y{ED6U;4giSUiA|F)`3irkR!IiZuz3PCtcEN;&TOCoV%<-UKP87;-BQoD zfu~HiFy4IuOHT0ro;P>0G!YjVCXxq}Cor$atZF}{%4#_i{61B~^R%VQSXftEIQGRg zk4*wk^|}MX7Qab@$r%Y-q)683U<}?pG_bIC`+E0%K6G6RZ*~5a7DE_}cUgdcUTzME zmFfWJvuQ@^pcqAqDG2#1fAdZJCCfo(EAP1k4FD)g+Ylwzlgv~reCR9wN`q#==Sj)4 zMoiHkQr}>qZQjS@L$@<1)$`YPnP%;#oCmyVsmGFW`$o7n5`02?OgFLhgHbqItMv41 zR-ph@mC;+$%9n$R3r7iGcgiXV+NAMYm3dtdb;w0fZ_f$s zJYiL^o*IQCNOoK^kDQgtvj?ire5g0vOB+pzxID8v%B+V9WQN#ax?uo7I)6;b#L8V` z!JS3#_st}MCWp^xkzbB(?z#Di_2wP@8a z(IV;kvvcPtUsPH4Khv8B-hw~WD0E74R_|*?`^L0b30G`xj=pbDQDt584~`1>v00~@ zZF)NoObEaRsMKS`#D1JhdFfgimwd%zP4fJVR#atHHHr7aJcx5s2@bMY$+lZ;A+yRd zR6?c%tufa82_*ew#0Y)&1AfoboYm=JbJ#Yn=lWuO=3;Ng6<#tCtz-g&_jP;H-B*Ztwpe#( ztEH@!Q+U4q7sFJGu2qhBGtX!5g6*(W&2~-Wzp}Z~8Ywrjls0+NkN-wAkO5qhFkR?24$2dkRE z1}q=CE&6ZPC2Y?YO_j!~LW)cOogZA9+WCvf)Uh`pbCO6`=bXBo0AJ&_nE=5aV|$H6 zTuYmGI|;%IBn6-2)AE1yK*lNF-bqT5R99Pe&E%*J0*ON$bCw>VF*O8FzL2KKlA}bn z^7E}y9u>b7o79~Yea!G@EvVo6K5O$G1Q}kdVUxY%Ik(J3JXhNb7tj$YdoOQRJ56^{ zOV9BXgn0cQe#Cl8C1YFs5RWs7O#!NqP0=aX8FO~n_6JEO8I@t&O|0g&U<$cCaFnXnLjL@_42 z<3I#>*l{>{AZ+kV|8Dh=lGM|XpMOYuctmYo4*+pfh}cljanq@1(1YkWl*1%@Y(dPzYSa(`7qHEg|?eOHuu!@o3@N}9E|EtkIYX>RpK=R7O*920kefO~hhyp!Rx2OQ#B z&3a~yYpx88IVASN0S{v8;6LUtFlKI6GB6s&Jn*+N9vG~NCJXrWy%ZV*rIUeKYWwtm zU;4kBfg~@SKnF8M#*!LYac^BNVb;}Ewz@f0US6*VbllAGY2>8`>YunLyQPm}zsd{; zzDw7WN4x5KPeXaSg)wl0;kb=M7v47J1^$barR9Z&hQVL)_%mN2p0{4BI!(Iwxh2D^VI+`WG?0E{*o~c}vqOwfTj=KM^o2eJiH_2%VWTGXAs6G}0(b z%eE-x_$kiddrTJw;}I}!xF)jc)0F%%gB=_Hu0)AI+|oYi96rdD6(t*nmZ4=*Jy2E*6Mra*x~Ac5FaxbH%cx zGzAO&hv3b<$Wc~@IZopM(tU3)IfV8}k(7nr4#jciVXHfIA(!9XlFi*rDPs33P_J}2L(ma;%?no-RzEM$H z?x*c-sW!TE2U1xlr0>d5Q=zO9W|m+GTE)9flu5v_@in{SC-#54PmJk{idY(4sAr;S z3Xt0bi5vZ*?yWU?*-;$#}ms*^I1o z3voM_V(oYoIoW5GuMUxt;*FFYBC4dgge8FsU0+vT_lsjEJymR2d12Ebx9GU%F9+`% z32JXo^PfBYeq&tIkkVny6|EUQTx*sHhU#}HWVz~UR=4l}oP-h&&JbJKYUF*9?7xUv zT3WOwymXopK)^J{YLCpHbtEmqgu5fE*Dh}UqNuJCS}G}z?&4SKrA$3LA!MVOu&XN5 zWw$O|3WcMy1af1AAP%WZzy499F1G$K1?84s6;$hf%Gc@VsEet#GJOu^$5xu?x$Vwh zAMQEaz-A;-6)*Ipl9!zWu1mz-8x&B5*8N4u%v5+$?IjXMNyk{=sj!&Zmce@#NT9dc*cyHrz;COYn?N) zvZF|Y_a)F`@wYZK0?z3!Dhup9dnJs|dnBqJu?ZmA@0kO$0*MHSZcexS0#N0f8{|m6 zvT#`6lJl$YU8i;8Nsp}eRo_F7bG`N4C|uFepW)bEIQNaGhg>$5P+dd0Y31M1PDuiz ze(BF#-fU1{d}k?axo)nG#W43)Gya^PN<@Ii66hp>#`K8)$*0ys@)l3Yh9yoOYi2OB zcClD&Z+uV})*TKl4j&~^PCxMdebu2pHnQJ$X)MwjQ)YIOQ%zH#(4eqCi5}vc*E0cl z)Eo&jDL1fyGj)YGu_NIZzrJ6`IB)QOsSg#@^u!6ql(@vkHui4W4M4?s7sYvyM{F87sek1)d-8|Up=2?e6 z#1U&!VwtzU*J%m31o6~60qYr;UFewvT6*}`%?NSxIf|5--K12Gp2uiskI4z*nlCkm zjZx-%G7qt@2Qh3P{tV^u{>pO{6ENnFBBHv#nvESBd~){$HNe%Bd#<=gS>!v2Wev$a zj7C4t&zVa5HY{ftPChjKWPGf!^-5{lOSR!IGcRlAsS~>O8!g-UVSll++{<-|^nq8c zlnPgyk&ARF0eYFUr2wns`!3hqA0dLiHz_d!Nvv9!%($_4l5h4IbNtS+;{1;Tv?NV} z_fqJXWlUoI_A&l#i7S7BMN_v@hpN7R3@6acmb=~!?+(l39#+40m-{J1vv~?8`9};*uOM0XPKmbnG;h2rPl{qmjmKd+s}i<&mESj z#O379qtwk^7WSglbwqbN!W^W~C=&%ea?*1^?t@Y6NgTmQBB<V3Wt{B>t%IA! z3;GcCb;^am(_YT{GQNWERUCNxS+QLVt1G0!J8v)*WnGJ=C+_{dX^{&-=O$0e;T*~w z2KPCddcpa=*laGU@*@;0oAorpLS-=<9e%N#F#*TvqUU+q z)$0GS^6vpZh9nv#?tWp6%i7=P0Sc<2y7*}(WWDO@5H`c=Po}B&Ud2%4JxkSiHz%}R zvb~37fu_Ax$!Thuj-#9k`bj;O1_lc3lhLy*>X4kI2rZAm-6ipNKXEHd_2@1C*1F0C zp>yLobu07US9(a_$LeCOPqB8Wik2&lMj65sgM~$j3i|Y@VbpHxB?;Dy`U7;lHdtg2 z<6vgOKAnPp{%eBBbu|YobO%V$Zwq`MKMDA8i7VHE$@*Qw%T++p?I1p>ZT*+yu$upa$$-xE zj*u@N^UK%!e5PDGDNL7*`Tn``yN$hY z+qcygkunKst@P==vAukKdb2!?YWLqx^huuL`{DQTVL%!9p~GsUT7^6rWqz{3hZI_w zNBIUzs^6cY#X9NQaPpK(yxSu*mx^SV8Na7^UkoWJSDf?q&Wk@XdlDmSmE~+dIKDJ= zh(p$$DlF#ZE8+P;&V~gwW7xE)45pzUe%l4z zjjlnw!VwCN)>b=-zDqoZWJ^g%IFvFT0e?OLyu6EsVF%;I0|2m zvLL*=7r;f&lCm#}7Mn1`!J$tw=TO5WZ16Mc^_BJOcjIFZJg%(A?UJHOTl1BNGOYOi z(Tusx1uU>^Z^SI*jdx*uRcUsT55`c(VUyW6F;yg&vgiZZjCjM`J*Uv{X9)!V?lAX6|kQBKo#mbA}p3E>_jq2~gLs_Y9_i4`r(TX1tFw-QGr& zhMkUbW5>w$bG2bR@-PT#ZEw8{Z#lMV4*g065(MzVoDcQ}HNH{-0`wj~WGIlR{n6F>{fzeQQ))Cai8HV^YmZOGDfheLnQW5;h4c4w|C;I> zFs@^_#D%AaTu%3-@;>URVoA6iunzt|aj8ojM$ZzrDReKZP>;@PPS(Ba!Mpa~(v~vi zG1VbrdKvu+g$566i(HSzk|{G8isw~BE{MX6)Aj_(q^{XlNe|+tL?}a+-DX~J2>>q& zxmS~?WzFDe(n-L_?Oo@QC9^{r1mw8uy9^;aUWZ+D|iB z4y~zx2eE&`CZa9yOMF#e$M%Y3T(->Fy=YBdt!TCxBlm_h2tA!rHc=p%rEX60)sB;x z)CazoKcknW6r~eTk@@Lq2{WkfATZi-@&_kcT)IXDIq`O6ufN)Nc?vYY=N+9BKPx+I zHHf-rpsIq4XYzxc+-u;)c{o*+Ikj-D0lS%hs|jI%=p%E)2HDomsvn|&k+V)PK$v%soj0BlTm#IJ^*u=0w`NNZG zlKYC!8&)0+yZ9{I{d+>I!V<{BsHd0evy=9M?8XKsvf4_v)-l%2ZKP5K;h)m)La?ire9r`72Sfm5z_sGbS{7J%|diJYM-(Z2$Pl7AaDl0f_tW? zzPYV=jJ=)_FHY8XUsB9>%!QbvVZlg2ys%sgS-hI%5(@Ne)_nVx$#^PQQs1EC${*SD zM2MHwAS=p)8E5<I#GG#R-?PNI2?AyX5WoyuBSDtKN=UJ# zSp!D$I;0jZ92Opo7vlQ{oUe`lc-Wl4e2c@wVK#pmR$6g7zi448k{li=>N5#^F9Im~ zC6mJ^&x)zeV65PKTTX&-q9#AT#B`Frk7m@L2kqNQQ$V16emXrtPNG-4Ja~M4e7fEB z&6DmquQXaG2|bAA{f4JehpRD(_Q~XU8*We8VGDjt1*D^V3^NlC@_zu}?OT(g)%+{Z z6ctp!4!bF|1?64K4}C=E1|3}E!-CinryjFBWfU8V*Gf;rbN^}jyo2dC5|Ql|+I z>epjZwREB3wY6#Ml$V-zNH@F0s{ZUHvzGTaR*sC`|CielgPfrgbd1F!Yz(@G3#w{! zKR-ksvSLY`=~09-@A|dPpmfHwxe9?OGD>`Eu{>k$b#i7nD9U4NpH#chG;765YJ6%A z?(MFDN6RD()Ry&D6g+%m?o!bl?tw>1ir4npHEw*Y>aPO7b`-{tMIM|6I@Hxp%!?GOv!p9_h|VU_yrZVwqk{E`0PIjT0XwT1xh=1 zNtqAPidas`}8sGT&0md=D#b?u#Z5P}(7>WwJjg*4E!5(;L56A+8D)J;-YNvZA4$)*{!~V40 z6nLxA?ZR)tRZzu{>h$j)0MM0Svf0)Ykt10blvtn+li1scTH^Oa_;wl#GqyzRq^F7Kaod%NONI1!#WXp+FmFq?kKW>#w9rAzHu z)Qp?`X`0I*02uA{sEzku^j$J&|6@%SVbpq$BHu+pz&+9@8eKu`1bcc=~wZwK*Rcu_d|LR4*5`;EAXeh{fn zUcV5MRhba0Eun1m>+|sh2MH6+i!P;`1ab3v3=(k`=&kPX!O#!5Yue9r$OJ(xBmZa39dTAe!vOEoJXH z$%TU9zw-Vj-o5(^jUd7q%w=Hq*00LzM{RUi3CUmL20=_D#)I!r7P!@vP|b)#zN+^2 zr*tCWtd(aVGE)J{h^^o0(m0T-LgE+d#=oUF!2@>7JX6`)77k9{pe@)2TaM*Dh>hu{ z!h^TE8kT=;JGl$ZfAny>6c>rKr(Yz%g1s!Mix}6&ZyXZF4Xoq_mAJR=ZgZP(WWz^j zF`EDB$oLE3`LQh8bAkW!dik$kU%sqrM+1HktFXJXA8>RZfAJ#n41Da}tyYC^-yBP+ z+SVx#1DtVZq&i9Q;QmM5*wa&e!dQV$Uy2RTI^@(&S^BMzqS12=;ubnqHdtuWP)_N> z!GqII?o}8?ZPP(z@mRr(bhMxR>UBA3)uH{iq1xZ0#h%5G0s+_#ljIDbr&KBb#Ym?M z0J=5stoO^)-kyjG6EPxnh^NQf=e65Iqd{n?^T{A;M3NAgPm2d%UC-b{5Q51MrPm&% zEcv{W&2SEKt@7wmzq1|c4vhRZe1=@Je>xyaS_b#;;xx>!d0JmY2p5SxKcyQJs&E#o z1<%V;ZRyDigF!{f+rP%6?yiMZhM`9mN=THmSo_f&oV>bzJOKte_8?2`0+rUoAvinq43!{+8+iFxntZq+}9U zEoNO~uF^6R*Eq1VI=i(8QTz0z-!eVkEr+5<-tjKVsC@#$-#dcf6t}#CH%Qjow_v-* zz0fhe#0mWTi_7&=T&z<&OHG~*4}LLOsO0VTu*?u6lIZz0T|l@!y%{K_{Eq&xj*qm1 zFnECb^a)mi&Yo%_2x%kaxa;>U?JUwghys@-FLC6Nmt-?iGBkMb{?`*;w-e+R)bR+h z$`3x2@b*bR8qtLI=YcF*nff4EtYtGyeT4F(;$qiR?n!a?3isY4{vnJeF*zAIkNS%y z1iUx@4i-$M$#)|-GQbapDaBMi1DI>ToF!T!ZOWKH2Sqyq zys7UO3VA1-r==+R_+)R$=^@h~>%3>Rpe?_>n94x^Q8cf2nKUk@=NdXuB*VaH(WKG~ zVRt)3sXlqh=az~sz3at?$cFAu9`5Jjq5$^9?sARI}J{U@3Qin984Gdn};_s5ZWQqobv!a{-O@L*Fg<9$(OC`3Kqp5sH z%XeC;vTAdmUQlDpM6*W_hk2X6hsBznK5bJ7n zvhR;4vHeT(O!zSK80D6Vb(rE+9s3GGFT7DB+Q>FMIAU!sV8Q@U>z5WGZ~`zxu3lF? z+YS8*#8R5szk|axjdGeTGmQ)i=)~oys6b-Kf-w%~(NxUK;#W-@hvip)UvW#5O|_Q2UYPfn^@(dr zdRJ}#~j#E!Am7X!hskQyW) z&f&c_4;iTofXnm`J}g7@281xZFJXVir}bFBPk(rQ#nRjBzNim5AExjBYVuSuTgpe( zy#6A>${72;c|<|)e(e|=fgu$9k-r8zJ~s+#R|Fe@|&1a@|g>UjkNMjQNQN9&dRQ@ zJwdZcYq#D=*+uoLF5^C)N&aL5k$3;(j5scOUkCnLsN#~CgO#ag-fGWw&0CTdMx1LZry9+8cHvQk zSlm3Z8)G{ElAI{i@PgqmhSgQ#TrTGC!Vkli??oOuuW-y9Prva#2sJW}Aq`$9m1Ui? zHLU$r*)mz_)x!Jek-qUcDp|z7%6{ed!ag3ON5lBY1}H7urljofd5Bp8@0ea+BN~4% z%!tF9r2E-mW{tyXOo_1s4W5i_>`4X&z(HF6G1=N$`u~I}lU3>`XN+!VjtkYM0rtLE zk7vFs0q}!vvLUF31duVsE_fAV93>Qwd8 zk;gMl1*29$ht_5JDodTV=xjV-p>N)v{e^x^Re7mO@ycz#EL*yS);csEhNA@1UpWfeno*2!ec zhWNE&|FOX*#lNM?(fZhckuxnEDX$zk2DQ}Y8rQ*4Vw*aY2pY(7t=A!NSVEd|&d+C| zEO;;2c4YXCLL+HCL~wlNELqdJ)G|6R8|tIMHU^7@WWDXlYUaH&(ijSl@LH?KbKgih zIWa&~wlDCFnNTZ_N+NLR2xd*S2fu=)Ww;u^&^*c_-kIf=7<~VyNJ!35=Z*kCu(@ETIK7 zJj*>EPG&u(d2kZo2tSVB>iR>5)FZiz2PZ)+Wf>Xw2+J}}{(5&ag{E)JR%*nSW=CQ@ z6#D~P@?E{FsCIz&=cB=PP3u2S}PwVVdM!U~J+nc}{&Bhzoj&HruF zm8ItzHhyY36xP>awV!1#HB`Sf|eZX{9iI5_?{ zRj5%$IpnTsmM-^lK)`pgcy)nAB=6B&hA;-+8^M>HA zAHt-aF#Ip=RhvNpmt(yKyEfSro;^_?Ol0jppCr>@!I;S;(p|G(ysSdfBA?|)5fZ%4 z^)Hzi@3oy!e3;p3Gg|pZ;Lb+l^dF(K-&-Mt4quB6NL=d!*ryvffnD}nc$FM7x_cI3 z5yz)nV>*f_tHhX+Cb5RiA8$?symbm+RVnIM$9uL=YN(LJZcuO$qE_!>pehACn}e~W zn=!fq%Rn`id{TM|T1&t|NXR5S*Eh6EYQj9C(?_08y9)jBfALtD-U0cTQ%_FQ(ZPMX1xbLNvhpX15uUHYpp5LX` zF&NTc?b+C&P=v5x*xrqafVNR3mXED0JKWqV2a=nE)l$uo$BR+Bepql{0Mk0YUz+Su z6b6~Eu)~&V9+mykvJRFX0P=(gbjrHG+|;znL}KK#Mb%M|xx8yt#NB0(jnc2`BL%6O z`Px}PTh9cQ7?g{8vmA1b2zci~O*`Dyw$STysr9x2dqygj6wjo2{ru3|Ty&RgmixQ0 zxPL7FQ$<-e5Z^(M!p!HrDK3syjk?=)+xPFhSKUqeKE;Z1tn#1JV zA?JU30}LS%^d%9HZHUE^20%x-WzC9pZa`QG{Z?ZkJo7wL4FF80TcECCFtq+itv9ny z0Sg~9Guwli)RfU5RCE}qoBrM=Io#3} zFsP#=h<=BA+YIVASX8I;VPq=xJQzi&t1K-9eCJ1;)=f{jSkdm##rT&Epf-pv8yWt+ zcGmH1GNReq8fAOT-6$l~Jz4m6d%NznYy-mSeX|wKj?jI!*e|8q9px>ed$~SijiUqt zUbGmaPk?tJ)M)*|z*|F`Cbr)?RN>gq&AL_enPFJbu*JgbZ^0I#Z z7*Q9nd^eZi>dF#j-9x(WANOCo$8ya1gc&IrON8b46kyckYDqpL9hzEoh4PY*gM$~p z0b#oR`$}Zi&3Q3h95gq~7AOiCcl|#ZZ?4ch;#n88a?hEteQvJg^>6xFz~ zxL6;=o4sZU{Ps)jX+=B{$SH*8CEt{;w==yh!)3T6`?q-6!jDqY?vUfRw#8GJgR-CC z`?1l&D5EQGc?<3c2!s(hS`H22f{sB4>FUr+sbP;zx0+@xrusl*aj#c!raQa&q*Uym zh+6i`Bv>E21Ow6xz;X7N15X?tPJ*HMI3BARij%P1s{{Ug! z{G)dHSF^N6fL8;1ZD_JV+A_b7(p85F%x{Yzl5(oR&~9z}<$@4z0seyrGOSsTmx#%M`Fwg(;*8Luv_wdaYoOC}eJen#5<(MY2^yb_ZRuK24p zDDm{voN8M<4E>CG+AU{%VqX;v8X-ITSAQ$t!RwGj^Cc}U%>$%EF%IxFQ3k~jJldb`z79~F30vpSi zt*!3qL%^HBFAyg#H`nqN&8TnS^=2U$h^kk=oK7DGGIavP-HtZ<^8EHfzV*+ScuM$0F*`zR`F$UAbNf5_?X!x4)k8#Ucma>1q)FE^#+Hto2Fq3y4 zFenm-f06Ed0otZopa~Tx3v3gbwi&g#9fLoZ4bYQq*4neaKnDcG7b^;`y&*Kf5Z1Vz ziHowU_Y31%TX8{vfByCulMr7TQVtE%1~wh%07Zl#pAXuvRIBM&K1pcwPO46X@^_BV z27FMC>O7=sdj$*JSf3MRq@%G|6}uF0L#t4l^LBgMjfVD9Vd6TMdVE^gYi*(L50*sc z2VLQ}AoOd#0To~0V@En2TJv!*MO6d)TyjSr;_b042xo{huLRedTAXFq5A%6v! zsB2~#Jbqg=SJ(C82f&4(8_?5GZsG`K#SgsQZvQcx(Ans;5ZH|wht7_C!nC7+T~K<``SMOJLu{N;NsM z0&M4jNAyz{`u(E|K-yrYeIj(|ide5Ut;F5#RfjMxjukt^!(}{mZ4bJFCY5_b=#U6; zgy=CclkaAu9OwtUtp7@^(gfah+I+GS6cIU7&~oa-Z}D3x5KUS2pmCJ8W#ahA+}WLZ zm)$oV0o(*mTkhLq$Ruj$x8ycUOweYRoMp4K>o?PI_=0D!PZ6-j+a^+?MB$k;^WM3G-%P{P`Y%`*IBxJqmfxE-ooQvMt)E`Lz-#=nON93B2xwvi zN)KDlO6*rOC7&!Yt-s8;KEslP{nu_!_?H?J!^1)Ft}}9OwRv~^=sPM3Fc-cT_<|T` z!Gdld4%#>uRVHrsh~ARidFT6yz<7G+a@L17k#`iN8W1JYB4;?}y@mJB|4bNnA-E-Y zHJpnYP*=i3*>%xF+DJVDOsu`9oqyle**`KWZ`{2%?W%7Q>%jn}Q%aSvk^AJ%EY-X7 zY3xOvKJ^s331w0WV~ZLnZ9U*E3PU4#pkZ;jdW@tKH)qoi?m`9NjlzM3l1E_pU~=i8 zTP1j~TbK}%ky3UNq-*9|qC@?z^?oLHEg!}g$dlNom7IN-qz-5F2Xsfif3KmnX7qS2 zqOgPjsTYfn<@m63`^DR)5DTlX<=f_f4eUV+bkeXI-t$F8{qcEAuBGK^&GQ5#(#h?E zB96|L7pEy^`jloraHAsB(Ie1#JUgO$l!X==q@0s4 zvIkRCn?QO|oswa26S1;&9B1Pg&U=BzBA})efQWC5RX zdy$~0wIVl5;NH|fPy%*t>71ti){09f$6g4B&GZ){DRL?uW+W_pKZFsg>B%rD>KiG% zdRud3+0sn#EevgO_mFj-BDaRqAW{<53k&C}AZ;7+`0CJH=696{+dCXWH)RMWw-Cjl zszJM&c}P2wvDu8`KSg=I%6OLTk%}447kG#MeN~E&2T7g0&zcAL+{nAi=W_UfU=YhC zS5#BKjnA5& zmseURrRfK8L?Tfd41K>3?sYEdoVJ$aiqHcktpubPrppm;E8r7w6$_Nl61cm9is)D{ z(a^|hYXe$;?c*~_Z`LB( zyaX|cc=a;@L4oQ_i`GG-m$f24OW-=AYO!;N3YbgdnHU?>z^IC!x!dO>Ie%u#8Ht2< z*%fiIU{pZBUlrxqyxFR$Zw%HXup%no&pvN0te7Tqe9_;C2k?~l6_Zjqfl{LJ)bhI1 z$&P`L+rRUTVuSy;wewpBrJ`TJ9Z=h@UixQ=b8o!EZ$@zJEJ8itftc{dEStOY+y1LO zUKapbCQ$<-UBN2V`P8p-djxsIv9-NIgVXkFxlga`k%wu&0AS|#C9+gkx-%8!!cR8Y z5Cs@o=uiQ?Gf80La5m?UK^eU})$Ws`K=eq8Z#qWC%CFwKIk1+N%i=)3aV*mls5%IDpH9F7N0QkCo}vWe8ZKGUElTcp7S+QY#Q&ZF+ThiZCwtL7;VB6-ka42;LR zXeH0^YfnMInb@Iu4R?C>x^vNX;Hq&;;I1`tbEt03%owze3mQ;={lRSOs?B{A{~VZaYCeW&jb8 zCdkhie4WrPz-W_U>NBdEzPuVeIhIX7Si!|=OJRAAPx1aqT1B0)?=99OfbVwWxS&_j`|AxEBt3B>l*ev#5Kn?J(m(vSM>J=nGRSc!xW$ z&2=t~Ab%jZnK-o{289NW6R#}i=fHgdz;nWD%y z?hclTIuoOG!==$kT3PEcbCYMH2X$Zt>$B0>;T?A|*Wz{Mm251z2y|}FMTNxjhImiE zbn5?IB-~=pzG6nx-ycJF3b_Dm{ z>3Q-lzS_(Sj*gE3Kib80(HUgebwB^Rscml6typ{@ydZa*D(Xf5OBGgFV%Ma^Ll8-d zpxf7jwvNuNQDg^#+Yx>)Qsy8Y$T}Yyj;>$=?A)!7`BePP;pT(k`XUXEvJ5!Za8uor zeLBy48+L`#(Cgoo$=|5j$)4T7is}!1`TAnH+^WKq8+v|wti3+B+^I!tG9Z;)=+F07Q?fin~d8b(7D_-l&xhv^NnVf3lqJ$n({6& z0>1TZ@-yL?mpl){ZFV@dIz7!*w^Cip#xesU`My}?oRWXOK=m`-`or;F{%f{Z|NQp#K$W1oVvEfJxu}zUdHv9-Y0R(CTQB3IZ8JvDUsz0% z^Yx42gd7A&aID7f+n$?@!ez2@ZKrAsIHy=9?V3jeD8kiq%Z@CqFUu)xOC%eH38DrKe)yOO{T2GdB1< zsnC)Q9QK(zjW%*88U0};&HlWfa7IMj`*))&8uqmcK3mXWyj%858OJDH##qN{={hB`!N)f_?Vi z*!?3&`|Ab;Fb({!x_4UR1oBV3%nDCV| ztrbPODlqr&wI+$-5CUh{6_wDlV)Ne18qHi1txX`YM6rJeN71V2WZXg5m~K~)n;wMW z9c%aE?M8#6dQWRKfFRpg6!bqhU#oO(w<8>-E`9q?Yquh4n#9|ItezV?Qw3Qcb@qGg zciQ?FInaa+f)mK3+Hb`)bBWm+7)0u{a+5dnn%E_=bLc(KQU#+TH>>$H>l}9)p=Q=k z0f+(!^s)5MM&`awd)^2DeP=sQx!?>%jHDx@Fe)z={HCw6?LtSml+RY*1gf z95WY%#VO}}*!Dj$u(>-I#cE7>mkf%1Izn?$>@{7;fiVrIu}>;k!9NqYm~JAZDQ-GLeF|wJU$+wd)K}XVS{}hY!79*(A&^ z`CHYAJd5!lR}f)=A~E}VwRh$ed3h1@&3)cJo;^IQz+r|_p0np|H2DJnVF2PBl8O8z zl(O}fiSuqzSVINp(CO7{HE@oRX9b@a3>{OK-P!4m;^~({uF-IB$q6qUUab7ylcc9W zVq62Xp9&-MY{Rgo{fzB&YZ$~5-nl?Mi>8zxRh#>tURNx1Yt0o^jZ?eyyVJr9>qmLD;9 z^7}#MQ1<9;g8l_bX?X|pZ&G>CBXlY~?Xm_vTi^uw_*l>gv*PdkuH15RF=quJMa6k; zViwJKTt+n)a6<#ymLQIjNTEq6NAfwd-xVuqoCD^hC-11tw2WRaccdSLQA(molz;%c zvUAxPt9(3YT&*b$QvgKc2++IZ14RMU2~$)|^mxTq4{kz)K@TEM^R2y2 z8ULjRQsnCM>ah*oRS+TJe!RJ$rd8wC z{-xo(pKkx&{t&uV5PIMly-~UE+T8yDQDyvq6kgl#wafYTWUkKpc+leJ0fKwqd(5vK zbjD_1YQj5TAUY4PM&q|1>aO5Bg;P*>X6Gw>8-HcQVRv9-n&10B`tur2<50Z%@96Wi?(P;*#WsWD{SM(~ITmUsM79 zef`0%1dn71c~5-YE#x$8lz@kNP(#Y-A(B8nomnh$klySst*MG1^M%!>X-5?`&!wNn z(OE1`i8%zdN&IKHN8*v|_TAm8AV3c1%MA^=itam3FP$oh-Q8t}jHS>5D`5%pt;g<* z$6vntb37{wOKIQ}6`x*eKEz(E06=T+DGS7%HC!AfYIHoNIX#=z_AN|y1f0k@Z4f=- z*oulheLzWMlx(6<#a{YKcJ}RY%E0K4s5<@hTR6n;^&cD(8}|z0Ax^C~E^otpE#Gvq zHG#m$#S4;14tVy5^4Se{UaJ>-*-g1cJll5P?b-ug=st+^MN%{(A>D zsd-IBR`$llPKV9>k7O=N8ayaAzJBh&-XrOV;CQ0Es*DrqRF;*Z>%4Z$MR;%3biQ56 z#$I@=4!wiGc?gFoxmj8_V^;gOyz7VxfHBCua{~HXZ8*T@rC+ebyR&$JsF?WHdcX## z`d_g%`stG;tP>9VphUI=`e!f6{I;$;?*su+G5FG5^zr{f&#g>F&kW}q=TF6rE7)9c_MHx^i4i*#@@u?x%;4NdT z>v2tsNO2g~EuPoj2n)fukTsEhN z4Shf=yhM-LK>*O>Bz~PP@-*`_4?`Ju2!j7j{MXmtA{;eS+Hy&>wHvcB|4=Ps+5e*Q z79WXnB6|qAHCP}8Y>;z7?zXV_TE1hsCTxD_0aI%C1z@aj7Lh$k;7a^hq7#_LZs+c` z#GJIMY3vu4^ClKdFw>MkNoO(_(|t0CiC8feFD7!hxb>jQ|3C)u0-v;r<2cn;WO%!B zd9Vw-h!nhtLaKAhh5fGhSMO$1HT(oQ*WyA^?{XgikPv;%354)|@G+qZCl)}>-MKc3 zJg3>(jypT;*ih)}_T6BF3j%+rI9UuGsn{C*mQ)92KFlHvJ#g9bmH{9we>rFHoNBWpojjGPr>G`pEw>7s+M1)Lj{@QFi((SO^_f#c zk2r_&zuG?r<;Nm*JxRhiTCMM9D@Z7ngWTM{IJA}p9HAYeob){rDQ!s;*(YZhWxHbR zK-Uvb0CNGcMGLN{*FSd($OfOa(#oQ+mHS$A!#k=z>#EAbhE(x>^dEJ6nPW zh?kp}n}dgkgNI+6n^))wuMqE3Hf|mvZf|kYMX9;)pa{tQ-JOcn2U9($t zAL9;)Uumi;0k{7>`RyesxE&Idy0$XO8U+o$028w&eK`QowW}-18~Dua<@oy0DK8FG zTx4qT4cLf@Lzc;n@X1t_XcV-X4>bGCbmj5xti4w>Gg>0bGg_Q7>mB%g8fZ$>t317m zm@!H+TGx|{ry0y~rR5}BR>N1{*xfHbqwdzcJDHek(+W?ycziWg)Y>t1vbSSlWOPmb z>K$IhBon1Q9^JLVsJw1?W>_KVLlWgX4xqPO-`VJtOQrbV>UikT6>Q}5|GxtiihD$J z!2>ns|CBl2c&u#1&2DoF4IboYO|4gdY?(j~o~GX{c)%$9KNZn0;O)GU;^}YR;rlY4 z0%BJ>Z)vW(Yf0&otI66gdk$-uQ~Q0wI9WXTcIv>u<(l!Y4_=S!o>PCp5N3dn=^Jrv zqZ$Bt;afDid|If+ztpQx=_eIesSm3HqvWsi z02V@s=pxMiz5N#^h$xttS?xZL4d~rboQ9O7stk%|eRFw7ApZeDV=RO1;~u^eAdS}( zZPI+2yf)kT;p()hubz?amQ-QdK@>wJ@kCWasxevOl6yI0!cQUg$oIVC@c22~V^I^??o&R&jsDIGbA7BA*Q4yJo zmziV{&@=cP)o^+Nx#AG?+`# zCQrXP5&&LpZrX7oyu9jjZ6v9wWc9h$D=QDv7Py+JIYfdHalhr@hue|w1)cL*v@Mok z!KuhG4_a%3#Df=?jemYG^2sEi@c+J@dfAw&ZSiX^xL4Bddm(bRz;pa7k8wP^Sa|Im zo&pnhh})hl0QAeH9raO^`cq>9NhTGt-um1WO5VP=pNDq20SW*loCZo60zfHkUL3uO zvHnSI{5^g3^fl;p6NR{)y#MIHOIOl*{wv^_oHFSs|9(l4ap?M1R0MJaW-QzuW? zw0?x3;MWK)z<{VAF=h{c)D~$lY*gjzPCgYeM8k6N$L8lk3l--$QG!P0xvjLE8tacU zWs8lFG&PKoLRi>jRbF3pBR*y*hpit9`+j)gFggM;6KID!qD{@qxU^IT>l~DOe{22* zQ)n;`_9?0NrDKx@9Gg^bDKba36kdgextj}Dl^H%Kq6FDq{`uN$ z)^9cBc^QJ?G@5t4cCT6X)g!6ZjSGGO`*XnE>)m$i`w~<+iih-CJ}1(0N>?dD?Tz&| zRC^EZsYv}Ouh^Qn;}t*EY^IQBu28-2pxN^GDw1uiRrMd(jPlxF(*35R-HD@W8SZ$| z7t&=Nu|2Jw(FF9v-jU4)smsyqfaQyMx8`49H|=OIyJ$Qm-A=58Y*#02u*HwjzAI%O zo(Xc+I)|kV#KHY%Tdyv+WGSz)`=Fs-HZ6rh=vhRoxVWY9qm zKNHkGyyMohtZ8jgJI1=tR8#fL&XE;0EyJ-*frl7T&&0n%TnveI*Bo@V4BfvHueVYo1wyvJQ4>zJ?M^Wcn)$!HKs#(A zp}M+SXJEpY)=U!#2b1b%%kDSfs35vRBU{060l^L*77V4bGTa z-HCE^Z?(430QUpJtZwC>VUeY|Y0EO1yt$pm)sW=^Obj>uGOwej>L0ebfx84WdF#C{kv4?-}%+C>mMn4DdCfyU>40EH7vvjLYk&uNF5 zhC3LeD7pV^b*ua=)+`oy3t5|Q5kYONCeF-^7l=G;>YAx4(7*RQy}ar;=uc3+ABZ%E zQGji;3T7AoI1SNaieRG(*;K=zYQqnve|R4S$t7$gKFjTzc`l<50AOkX_|nI>5V~h+ zzT}!&O(ETkMViI?ip+lEQ8%wZ;W~zVi3l+)tsk;C8Amt4xPpEnN6Piw^V|l4ixjRL za7-SWtqHd`QI_&==lP@nDW@5~SBYH`E~Mn339O~0D?EifooX@u%9~?>7ic;1KenKN zYq-E5cV#Hk{t@>kJzv8I;^iH2?@Ptb~KYwu8;O?`G>glhPu z8V@GN-5uD`1gU9-q4+pLt1^kgxiT|XCk>>2VyaIis`&3!hC=n!(T-<$lL8K3c+C7`ah|s5IgrocF^C>;#kQW_fAiMV zeEVvfaZ&)7h>>#j#Af?uH;}V0U%6FN=Xt$kGs_^zk%|+hOEN6r{?u~sF>|?*2lf#h zO45(Zrmk&S!I%&{scalITI%tkECQqVmo*!rzufj@I8$lB5BOX_209@cQ(EPYtkEUo zEe9rb`JzRmUpJygQYU(J;8q^_!w7fQ8%lo{oDguLASLHS#(#3Mz{ECE6|D?cwUcB8 zgYzH`pafMJKLbxK5QLJ#CGn&Drd(K;$w+xDWNo&CR@$t{CM7#CUf5i&@c@T{{@%Hvli%XzbiBY^H*#J+g)C_ZMdyVq;E|D9^Y`SItawfWt- zQ37>5h+`}aLq+ZzknFZ)DX}xQ_|ob9XoiGwr4#^+-7Z+0!(wAN6OBSMq$Yld%M_6j zhIakcba17NjHnGu{((oJ>sFiXX7E(@-B{kYX6`q{^8a0o**f#F$<{)Bk`g5iF)l65 z)zG&+DIeP%y^rD;CIhFIBRrhtN7(*TTm=Z5vBlKKL-Ak$6_0=qxLfxZbmO1@!jn3A z)ZyE+L}kUz{f?UhgqHaF2nBU)TI9}&w6eUrBs85>Ej*&|5VT3%7LyS+@{_!(RBlHf zjt5wxV6eq|pZO`N5F9K#pPECn9;t^lhKuB~pZ2LjI`d4=Ad~zbrAC@elg7+0izfwH z8jA63M&3N7%b&b!L2hg3D|^nA^ThwQ3%{FKO7@D-T69Tv6JH^BH`Gz2%6)(FK#_i> ztX|0-mgw_wur2_$(3GkDtMx&>evw4d_O(OOTM;AVMY%(d;dY_O z836$JD-WE>W`UV2Bu-StA(o(k^|#qeA0Zy5=E6ZI#o0j_S+EH9~vdxD*4%^&lZ@oJkQM?3ZO5+wK=i6`!dSljBzJ|_B{v!G*9|3g4>{Z6B|MgE?d zCx@r`*Y?}NxU*?#?>(bSze)a;zPmGvOZW?H=G6fW>$d3F!hkC#xNoSo`a0iJTev4* z-gB_E%jdEz4rKZHg@4P6N^A}TWZAy#UlSX0JkuSIfpIWg!)ckIhr z|GRaScaaRQq*jZDjVdIA%}$#{Sa?Dl@64-;wMUd-wcIPQID57ZV)5@Xs*ZlyG^h&l zNWs)lQ%(EK_#3Rc2ArLYo=G+*tY6$Gi48byJ=wIt!lE$Mb+gNd$iYu#oZ(ONj&C+e z7S9&tBZ!#nllfJX7dqM7#XPpBT0~mD)n8@i476BNw-#JDz8{zSxSUQZB{^_8oi$t5 z=Pu0T9BE~>m7KZH-o2xbm?GM74<#dW!}-T~IYYf(M$N>Qi{wSkQ9{C$z5b}sMD2&U zM+88K%c9OErNt3L_GCZvuj#g<_=UOeL=7;Ks*msM#U54&>$vUB-%GcD&!8#okxv^@ zT4Y?mgHL}DBfhUV&`_o+=)s9|RRZ1brLA2={-5Fxyd6^B>v4PhsxVsnWQyD&_c84R zGsHG*g*_CD%1-}@ued>n>%vwdR@$0U|Bz&6tWGDk9YXB@fJnw^ z4E6I~Fk;W}c53BpiPGf3mB&f`f^gvFv(b(j5(zDzQr~ro4TJ}Jf~M23sE>*&P9x%T~qE4ww<%oSv9NEJ3~XHc=2yWVWYZCUhuz5y?%#HCT@m6}FF)k`Fs zj8Yc#X%E_xrY`W3Owio+k~$w!?!d(7a}`}GA|n>B_H}p1zTGfwdsf}J?j7rsw8&Cz z67qn5C(o3TruTSy?O%wzu^?4ZBK6o%XfwOmlz_{4SulAR_X<+orBG?<^NZ~dhb zJ5G=RA-&v&Z39LVdLC7>SLt64%676G_tM3s>){kZU8xR@#|$;#4(fFkQTYMU8_gJx+84!U`C`(9MRi~U z!1ZBS$qqG2ev(zHCC`!!za(m3VrpfU2*E8#45cGkTkFA7t zeeCV^bHRnvT&xM#&0gQ3uXw`EKhNQu3Yd*d}fyrabGT+_*&+!9rt zhfoZXyuWk6(Ezs#nV#{OC&o4E48nJi659jpt#cRExr3J0|GMqCZ<>440~I~x93PV4 z2t<;L=OUcEjzag_CFU2oE1 zziYq~TXmgcKUr#c_)8y?ii7Eb?*6g~>swi92IuIsiArOCVkg` zD?jc88!Op_Sq9TQ!s)ClQRikGJ>ksQc|lUuT85ayRStE2%Cp(qaZZx+4rKfuxIq-B zD=nXV#b}!^_g{N&J&T>)DQ@?@JgwEJrk%qRXZ$goR7roxhfy)adVeD}__g%j0Z>?- z_&n`dft{CA7svmyeabS;Jyzqyo0YlI>B5}2s*o4-z~ST)Z<~@P19#Q@CmI=@YISpc z>`P5P(O<$dy3=JCkB;&C*;HB!ZnzRhamE3GTQ9+w3mC64N!>AF$uDnWSqUoM^NAI@6giHU2YB`iSz5WX7{Wf|Vr=0@xh9!!+78jD#G(xznzU6Lp519UPhDq3jaY5e30l|Qpv`f(-?PS zeO-TY!iWnx^Ed3ca@9PMj7n4_c=40F3@w93>z%o;jsKZ3AMI_g{)8=K=T%`0YoM#B zZknV8S&pbsP0zRr%Tp78%qN#s9Ar|tV#j*WcJ^_iq~tW``R5Pc@MW$(Wl7louWN=8 zScNOkH^`3-6U8|XQ(57f?BA_Z3VFFj>&XRFL`8A14oAu5KKl8IJHgmV_pv;O~? z=Kb$^;NUIZIgDVazTh7_F01mQl#Nj~RwxAA+8u#g05PZ-R7g}*NL0cADh7v%!Np*L zP*FG(S`#hw-<}`Gj?+Bl#Qb}{x8plN7UE#00M3bVQUInZd%P0Is#fwr4U$;4FPw(0q5}S_rczg jUbbG6;SjZa4Pju1@eb-(;bAI{1fZ_`RH;hAGW34{{sE2V literal 0 HcmV?d00001 diff --git a/apps/web-archway/public/icons/browserconfig.xml b/apps/web-archway/public/icons/browserconfig.xml new file mode 100644 index 0000000000..9ebcb517e9 --- /dev/null +++ b/apps/web-archway/public/icons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #da532c + + + diff --git a/apps/web-archway/public/icons/favicon-16x16.png b/apps/web-archway/public/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..148a4bc5d1a5087ca76048027489549766e5717c GIT binary patch literal 1033 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>hA?qbDKd5 z$bcgt7mnb9a0Xlo&VWk+8E`=$10f#Z^~u%c9;X7PEJOsN5m`O5N))4j?hL?T3l1r` z6%g~`Cc~{m7J=J^&=uefay%E%@sdEn?_qu)92_6;E8k=ggE|}LyZ`_H_lf$v0S0JR zNsu2Xeta%W7Z8|!!Kdp|fU6oKqnc~LrLK_LnLlfP&J1DJx|NcamU2srIqcW3u*Hj2 zAFllO@8YV5s_FkG$G?9cKPjDS^WW#cp8wsKNJ792FA<0}U56>}Xjsg@u_}c=DE>HCto? z9O4`ey@Na>T|>>HePfw54lGzXb?Vf~v!~CUyLRnimY{{RS%ptrV_tc|e1cJm;iixrqI7D@T^IOH1|968d&^61gb84`|64ij6B zEO{~|L_l7LLB!Mh{0WxNl8m2JP3tq(u$%{aRJFu4q9i4;B-JXpC>2OC7#SED=o%X8 z8k&U|7+IMZSs9sV8yH#{7;Na!-GZVaH$NpatrE9}gIA|=05ybHg+!DDC6+4`6y>L7 z=A!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+0815B;+YC}) zeZ0Q-d*1;v{Jqc+P!Sb zfGa?^2txr-BgAC5Mu<^xjSyKhL8x_Ly%3ei%8(Ufl|>VTaFKPPv5^fYTQA%Y{MI2W z134qW8x%5Jz#x?bN_`LW`{3aCfM5A0gBVa2q!<>Y|NsBjeWLdV1MdR^fjf4c1 z&Hw&wRuP>xRg~-fd#>;Y55ldjRX1)BnLJ5^v$%*eS$jW^E;+5g1hLp&eUwC9gwYTv=|%z{5o z@gZ`fQ1HQ3R|P#dlYI4eHSOE_;R!?7#=N~8o0wkmexCT$QOhiEmAgj9jXkWPa!XQP zZ}XYK)c)4`!qS6&cXx6xO87o+Z^RSFYj1Azdu?IgG;_nL<`5a1k{>57ChvISsMR;$ zqLM3Aj^V(w{`bMzY*N4kqFUk_QIe8al4_M)lnSI6j0}tnbPWx44b4IfjI2zItc*;w z4GgUe3^sJ=Zb8wIo1c=IR*74~!K+g_fEvQ9LLy3n63Z0|it^Jkb5a#bDhpB-G7CzQ z85k<&JpRPPQ5dG7amxSn8PBId49v>hddb|v%EI20MVN&ZTpCOcr!XsT4pBIL} literal 0 HcmV?d00001 diff --git a/apps/web-archway/public/icons/favicon.ico b/apps/web-archway/public/icons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d1cfa921aee72e2db793624ab7753893cf0225fc GIT binary patch literal 15086 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 + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + + + diff --git a/apps/web-archway/public/icons/site.webmanifest b/apps/web-archway/public/icons/site.webmanifest new file mode 100644 index 0000000000..c5d1b226ad --- /dev/null +++ b/apps/web-archway/public/icons/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "https://explorer.desmos.network/images/icons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "https://explorer.desmos.network/images/icons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/apps/web-archway/public/images/default_cover_pattern.png b/apps/web-archway/public/images/default_cover_pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..bf8f8bc3d17576ff20712be4c7ea505af7e56f24 GIT binary patch literal 46167 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 = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +const defaultOptions = {} as const; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: string; + String: string; + Boolean: boolean; + Int: number; + Float: number; + ActionCoin: any; + ActionDelegation: any; + ActionPagination: any; + ActionRedelegation: any; + ActionUnbondingDelegation: any; + _coin: any; + _dec_coin: any; + _text: any; + access_config: any; + bigint: any; + bytea: any; + jsonb: any; + numeric: any; + smallint: any; + timestamp: any; +}; + +export type ActionAddress = { + __typename?: 'ActionAddress'; + address: Scalars['String']; +}; + +export type ActionBalance = { + __typename?: 'ActionBalance'; + coins?: Maybe>>; +}; + +export type ActionDelegationResponse = { + __typename?: 'ActionDelegationResponse'; + delegations?: Maybe>>; + pagination?: Maybe; +}; + +export type ActionDelegationReward = { + __typename?: 'ActionDelegationReward'; + coins?: Maybe>>; + validator_address: Scalars['String']; +}; + +export type ActionRedelegationResponse = { + __typename?: 'ActionRedelegationResponse'; + pagination?: Maybe; + redelegations?: Maybe>>; +}; + +export type ActionUnbondingDelegationResponse = { + __typename?: 'ActionUnbondingDelegationResponse'; + pagination?: Maybe; + unbonding_delegations?: Maybe>>; +}; + +export type ActionValidatorCommissionAmount = { + __typename?: 'ActionValidatorCommissionAmount'; + coins?: Maybe>>; +}; + +/** Boolean expression to compare columns of type "Boolean". All fields are combined with logical 'AND'. */ +export type Boolean_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "Int". All fields are combined with logical 'AND'. */ +export type Int_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. */ +export type String_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + /** does the column match the given case-insensitive pattern */ + _ilike?: InputMaybe; + _in?: InputMaybe>; + /** does the column match the given POSIX regular expression, case insensitive */ + _iregex?: InputMaybe; + _is_null?: InputMaybe; + /** does the column match the given pattern */ + _like?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + /** does the column NOT match the given case-insensitive pattern */ + _nilike?: InputMaybe; + _nin?: InputMaybe>; + /** does the column NOT match the given POSIX regular expression, case insensitive */ + _niregex?: InputMaybe; + /** does the column NOT match the given pattern */ + _nlike?: InputMaybe; + /** does the column NOT match the given POSIX regular expression, case sensitive */ + _nregex?: InputMaybe; + /** does the column NOT match the given SQL regular expression */ + _nsimilar?: InputMaybe; + /** does the column match the given POSIX regular expression, case sensitive */ + _regex?: InputMaybe; + /** does the column match the given SQL regular expression */ + _similar?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "_coin". All fields are combined with logical 'AND'. */ +export type _Coin_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "_dec_coin". All fields are combined with logical 'AND'. */ +export type _Dec_Coin_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "_text". All fields are combined with logical 'AND'. */ +export type _Text_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "access_config". All fields are combined with logical 'AND'. */ +export type Access_Config_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "account" */ +export type Account = { + __typename?: 'account'; + address: Scalars['String']; + /** An array relationship */ + proposal_deposits: Array; + /** An array relationship */ + proposal_votes: Array; + /** An array relationship */ + proposals: Array; + /** An aggregate relationship */ + proposals_aggregate: Proposal_Aggregate; + /** An array relationship */ + validator_infos: Array; + /** An object relationship */ + vesting_account?: Maybe; + /** An array relationship */ + vesting_accounts: Array; +}; + + +/** columns and relationships of "account" */ +export type AccountProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountProposalsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountProposals_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountValidator_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountVesting_AccountsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "account". All fields are combined with a logical 'AND'. */ +export type Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + address?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposals?: InputMaybe; + validator_infos?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts?: InputMaybe; +}; + +/** Ordering options when selecting data from "account". */ +export type Account_Order_By = { + address?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposals_aggregate?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts_aggregate?: InputMaybe; +}; + +/** select columns of table "account" */ +export enum Account_Select_Column { + /** column name */ + Address = 'address' +} + +/** columns and relationships of "average_block_time_from_genesis" */ +export type Average_Block_Time_From_Genesis = { + __typename?: 'average_block_time_from_genesis'; + average_time: Scalars['numeric']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "average_block_time_from_genesis". All fields are combined with a logical 'AND'. */ +export type Average_Block_Time_From_Genesis_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "average_block_time_from_genesis". */ +export type Average_Block_Time_From_Genesis_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "average_block_time_from_genesis" */ +export enum Average_Block_Time_From_Genesis_Select_Column { + /** column name */ + AverageTime = 'average_time', + /** column name */ + Height = 'height' +} + +/** columns and relationships of "average_block_time_per_day" */ +export type Average_Block_Time_Per_Day = { + __typename?: 'average_block_time_per_day'; + average_time: Scalars['numeric']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "average_block_time_per_day". All fields are combined with a logical 'AND'. */ +export type Average_Block_Time_Per_Day_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "average_block_time_per_day". */ +export type Average_Block_Time_Per_Day_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "average_block_time_per_day" */ +export enum Average_Block_Time_Per_Day_Select_Column { + /** column name */ + AverageTime = 'average_time', + /** column name */ + Height = 'height' +} + +/** columns and relationships of "average_block_time_per_hour" */ +export type Average_Block_Time_Per_Hour = { + __typename?: 'average_block_time_per_hour'; + average_time: Scalars['numeric']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "average_block_time_per_hour". All fields are combined with a logical 'AND'. */ +export type Average_Block_Time_Per_Hour_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "average_block_time_per_hour". */ +export type Average_Block_Time_Per_Hour_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "average_block_time_per_hour" */ +export enum Average_Block_Time_Per_Hour_Select_Column { + /** column name */ + AverageTime = 'average_time', + /** column name */ + Height = 'height' +} + +/** columns and relationships of "average_block_time_per_minute" */ +export type Average_Block_Time_Per_Minute = { + __typename?: 'average_block_time_per_minute'; + average_time: Scalars['numeric']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "average_block_time_per_minute". All fields are combined with a logical 'AND'. */ +export type Average_Block_Time_Per_Minute_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "average_block_time_per_minute". */ +export type Average_Block_Time_Per_Minute_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "average_block_time_per_minute" */ +export enum Average_Block_Time_Per_Minute_Select_Column { + /** column name */ + AverageTime = 'average_time', + /** column name */ + Height = 'height' +} + +/** Boolean expression to compare columns of type "bigint". All fields are combined with logical 'AND'. */ +export type Bigint_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "block" */ +export type Block = { + __typename?: 'block'; + hash: Scalars['String']; + height: Scalars['bigint']; + num_txs?: Maybe; + /** An array relationship */ + pre_commits: Array; + /** An aggregate relationship */ + pre_commits_aggregate: Pre_Commit_Aggregate; + /** An array relationship */ + proposal_deposits: Array; + /** An array relationship */ + proposal_votes: Array; + proposer_address?: Maybe; + timestamp: Scalars['timestamp']; + total_gas?: Maybe; + /** An array relationship */ + transactions: Array; + /** An object relationship */ + validator?: Maybe; + /** An array relationship */ + validator_voting_powers: Array; + /** An aggregate relationship */ + validator_voting_powers_aggregate: Validator_Voting_Power_Aggregate; +}; + + +/** columns and relationships of "block" */ +export type BlockPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockTransactionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "block" */ +export type Block_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "block" */ +export type Block_Avg_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "block". All fields are combined with a logical 'AND'. */ +export type Block_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers?: InputMaybe; +}; + +/** order by max() on columns of table "block" */ +export type Block_Max_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by min() on columns of table "block" */ +export type Block_Min_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Ordering options when selecting data from "block". */ +export type Block_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions_aggregate?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** select columns of table "block" */ +export enum Block_Select_Column { + /** column name */ + Hash = 'hash', + /** column name */ + Height = 'height', + /** column name */ + NumTxs = 'num_txs', + /** column name */ + ProposerAddress = 'proposer_address', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + TotalGas = 'total_gas' +} + +/** order by stddev() on columns of table "block" */ +export type Block_Stddev_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "block" */ +export type Block_Stddev_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "block" */ +export type Block_Stddev_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by sum() on columns of table "block" */ +export type Block_Sum_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by var_pop() on columns of table "block" */ +export type Block_Var_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by var_samp() on columns of table "block" */ +export type Block_Var_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by variance() on columns of table "block" */ +export type Block_Variance_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "bytea". All fields are combined with logical 'AND'. */ +export type Bytea_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "community_pool" */ +export type Community_Pool = { + __typename?: 'community_pool'; + coins: Scalars['_dec_coin']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "community_pool". All fields are combined with a logical 'AND'. */ +export type Community_Pool_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + coins?: InputMaybe<_Dec_Coin_Comparison_Exp>; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "community_pool". */ +export type Community_Pool_Order_By = { + coins?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "community_pool" */ +export enum Community_Pool_Select_Column { + /** column name */ + Coins = 'coins', + /** column name */ + Height = 'height' +} + +/** columns and relationships of "distribution_params" */ +export type Distribution_Params = { + __typename?: 'distribution_params'; + height: Scalars['bigint']; + params: Scalars['jsonb']; +}; + + +/** columns and relationships of "distribution_params" */ +export type Distribution_ParamsParamsArgs = { + path?: InputMaybe; +}; + +/** 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?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + params?: InputMaybe; +}; + +/** Ordering options when selecting data from "distribution_params". */ +export type Distribution_Params_Order_By = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** select columns of table "distribution_params" */ +export enum Distribution_Params_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Params = 'params' +} + +/** columns and relationships of "double_sign_evidence" */ +export type Double_Sign_Evidence = { + __typename?: 'double_sign_evidence'; + /** An object relationship */ + doubleSignVoteByVoteAId: Double_Sign_Vote; + /** An object relationship */ + double_sign_vote: Double_Sign_Vote; + height: Scalars['bigint']; + vote_a_id: Scalars['bigint']; + vote_b_id: Scalars['bigint']; +}; + +/** order by aggregate values of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Avg_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "double_sign_evidence". All fields are combined with a logical 'AND'. */ +export type Double_Sign_Evidence_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by max() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Max_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by min() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Min_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** Ordering options when selecting data from "double_sign_evidence". */ +export type Double_Sign_Evidence_Order_By = { + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** select columns of table "double_sign_evidence" */ +export enum Double_Sign_Evidence_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + VoteAId = 'vote_a_id', + /** column name */ + VoteBId = 'vote_b_id' +} + +/** order by stddev() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Stddev_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Stddev_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Stddev_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by sum() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Sum_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Var_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Var_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by variance() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Variance_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** columns and relationships of "double_sign_vote" */ +export type Double_Sign_Vote = { + __typename?: 'double_sign_vote'; + block_id: Scalars['String']; + /** An array relationship */ + doubleSignEvidencesByVoteBId: Array; + /** An array relationship */ + double_sign_evidences: Array; + height: Scalars['bigint']; + round: Scalars['Int']; + signature: Scalars['String']; + type: Scalars['smallint']; + /** An object relationship */ + validator: Validator; + validator_address: Scalars['String']; + validator_index: Scalars['Int']; +}; + + +/** columns and relationships of "double_sign_vote" */ +export type Double_Sign_VoteDoubleSignEvidencesByVoteBIdArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "double_sign_vote" */ +export type Double_Sign_VoteDouble_Sign_EvidencesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "double_sign_vote" */ +export type Double_Sign_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Avg_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "double_sign_vote". All fields are combined with a logical 'AND'. */ +export type Double_Sign_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId?: InputMaybe; + double_sign_evidences?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by max() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Max_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by min() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Min_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** Ordering options when selecting data from "double_sign_vote". */ +export type Double_Sign_Vote_Order_By = { + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId_aggregate?: InputMaybe; + double_sign_evidences_aggregate?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** select columns of table "double_sign_vote" */ +export enum Double_Sign_Vote_Select_Column { + /** column name */ + BlockId = 'block_id', + /** column name */ + Height = 'height', + /** column name */ + Round = 'round', + /** column name */ + Signature = 'signature', + /** column name */ + Type = 'type', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + ValidatorIndex = 'validator_index' +} + +/** order by stddev() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Stddev_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by sum() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Sum_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by var_pop() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by var_samp() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by variance() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Variance_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** columns and relationships of "fee_grant_allowance" */ +export type Fee_Grant_Allowance = { + __typename?: 'fee_grant_allowance'; + allowance: Scalars['jsonb']; + /** An object relationship */ + grantee: Account; + grantee_address: Scalars['String']; + /** An object relationship */ + granter: Account; + granter_address: Scalars['String']; + height: Scalars['bigint']; +}; + + +/** columns and relationships of "fee_grant_allowance" */ +export type Fee_Grant_AllowanceAllowanceArgs = { + path?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "fee_grant_allowance". All fields are combined with a logical 'AND'. */ +export type Fee_Grant_Allowance_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + allowance?: InputMaybe; + grantee?: InputMaybe; + grantee_address?: InputMaybe; + granter?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "fee_grant_allowance". */ +export type Fee_Grant_Allowance_Order_By = { + allowance?: InputMaybe; + grantee?: InputMaybe; + grantee_address?: InputMaybe; + granter?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "fee_grant_allowance" */ +export enum Fee_Grant_Allowance_Select_Column { + /** column name */ + Allowance = 'allowance', + /** column name */ + GranteeAddress = 'grantee_address', + /** column name */ + GranterAddress = 'granter_address', + /** column name */ + Height = 'height' +} + +/** columns and relationships of "genesis" */ +export type Genesis = { + __typename?: 'genesis'; + chain_id: Scalars['String']; + initial_height: Scalars['bigint']; + time: Scalars['timestamp']; +}; + +/** Boolean expression to filter rows from the table "genesis". All fields are combined with a logical 'AND'. */ +export type Genesis_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +/** Ordering options when selecting data from "genesis". */ +export type Genesis_Order_By = { + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +/** select columns of table "genesis" */ +export enum Genesis_Select_Column { + /** column name */ + ChainId = 'chain_id', + /** column name */ + InitialHeight = 'initial_height', + /** column name */ + Time = 'time' +} + +/** columns and relationships of "gov_params" */ +export type Gov_Params = { + __typename?: 'gov_params'; + deposit_params: Scalars['jsonb']; + height: Scalars['bigint']; + tally_params: Scalars['jsonb']; + voting_params: Scalars['jsonb']; +}; + + +/** columns and relationships of "gov_params" */ +export type Gov_ParamsDeposit_ParamsArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "gov_params" */ +export type Gov_ParamsTally_ParamsArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "gov_params" */ +export type Gov_ParamsVoting_ParamsArgs = { + path?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "gov_params". All fields are combined with a logical 'AND'. */ +export type Gov_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + deposit_params?: InputMaybe; + height?: InputMaybe; + tally_params?: InputMaybe; + voting_params?: InputMaybe; +}; + +/** Ordering options when selecting data from "gov_params". */ +export type Gov_Params_Order_By = { + deposit_params?: InputMaybe; + height?: InputMaybe; + tally_params?: InputMaybe; + voting_params?: InputMaybe; +}; + +/** select columns of table "gov_params" */ +export enum Gov_Params_Select_Column { + /** column name */ + DepositParams = 'deposit_params', + /** column name */ + Height = 'height', + /** column name */ + TallyParams = 'tally_params', + /** column name */ + VotingParams = 'voting_params' +} + +/** columns and relationships of "inflation" */ +export type Inflation = { + __typename?: 'inflation'; + height: Scalars['bigint']; + value: Scalars['numeric']; +}; + +/** Boolean expression to filter rows from the table "inflation". All fields are combined with a logical 'AND'. */ +export type Inflation_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + value?: InputMaybe; +}; + +/** Ordering options when selecting data from "inflation". */ +export type Inflation_Order_By = { + height?: InputMaybe; + value?: InputMaybe; +}; + +/** select columns of table "inflation" */ +export enum Inflation_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Value = 'value' +} + +/** Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. */ +export type Jsonb_Comparison_Exp = { + /** is the column contained in the given json value */ + _contained_in?: InputMaybe; + /** does the column contain the given json value at the top level */ + _contains?: InputMaybe; + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + /** does the string exist as a top-level key in the column */ + _has_key?: InputMaybe; + /** do all of these strings exist as top-level keys in the column */ + _has_keys_all?: InputMaybe>; + /** do any of these strings exist as top-level keys in the column */ + _has_keys_any?: InputMaybe>; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "message" */ +export type Message = { + __typename?: 'message'; + height: Scalars['bigint']; + index: Scalars['bigint']; + involved_accounts_addresses: Scalars['_text']; + /** An object relationship */ + transaction?: Maybe; + transaction_hash: Scalars['String']; + type: Scalars['String']; + value: Scalars['jsonb']; +}; + + +/** columns and relationships of "message" */ +export type MessageValueArgs = { + path?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "message". All fields are combined with a logical 'AND'. */ +export type Message_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe<_Text_Comparison_Exp>; + transaction?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +/** Ordering options when selecting data from "message". */ +export type Message_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe; + transaction?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +/** select columns of table "message" */ +export enum Message_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Index = 'index', + /** column name */ + InvolvedAccountsAddresses = 'involved_accounts_addresses', + /** column name */ + TransactionHash = 'transaction_hash', + /** column name */ + Type = 'type', + /** column name */ + Value = 'value' +} + +export type Messages_By_Address_Args = { + addresses?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; + types?: InputMaybe; +}; + +/** columns and relationships of "mint_params" */ +export type Mint_Params = { + __typename?: 'mint_params'; + height: Scalars['bigint']; + params: Scalars['jsonb']; +}; + + +/** columns and relationships of "mint_params" */ +export type Mint_ParamsParamsArgs = { + path?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "mint_params". All fields are combined with a logical 'AND'. */ +export type Mint_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + params?: InputMaybe; +}; + +/** Ordering options when selecting data from "mint_params". */ +export type Mint_Params_Order_By = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** select columns of table "mint_params" */ +export enum Mint_Params_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Params = 'params' +} + +/** columns and relationships of "modules" */ +export type Modules = { + __typename?: 'modules'; + module_name: Scalars['String']; +}; + +/** Boolean expression to filter rows from the table "modules". All fields are combined with a logical 'AND'. */ +export type Modules_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + module_name?: InputMaybe; +}; + +/** Ordering options when selecting data from "modules". */ +export type Modules_Order_By = { + module_name?: InputMaybe; +}; + +/** select columns of table "modules" */ +export enum Modules_Select_Column { + /** column name */ + ModuleName = 'module_name' +} + +/** Boolean expression to compare columns of type "numeric". All fields are combined with logical 'AND'. */ +export type Numeric_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** column ordering options */ +export enum Order_By { + /** in ascending order, nulls last */ + Asc = 'asc', + /** in ascending order, nulls first */ + AscNullsFirst = 'asc_nulls_first', + /** in ascending order, nulls last */ + AscNullsLast = 'asc_nulls_last', + /** in descending order, nulls first */ + Desc = 'desc', + /** in descending order, nulls first */ + DescNullsFirst = 'desc_nulls_first', + /** in descending order, nulls last */ + DescNullsLast = 'desc_nulls_last' +} + +/** columns and relationships of "pre_commit" */ +export type Pre_Commit = { + __typename?: 'pre_commit'; + height: Scalars['bigint']; + proposer_priority: Scalars['bigint']; + timestamp: Scalars['timestamp']; + /** An object relationship */ + validator: Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** aggregated selection of "pre_commit" */ +export type Pre_Commit_Aggregate = { + __typename?: 'pre_commit_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "pre_commit" */ +export type Pre_Commit_Aggregate_Fields = { + __typename?: 'pre_commit_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 "pre_commit" */ +export type Pre_Commit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "pre_commit" */ +export type Pre_Commit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Pre_Commit_Avg_Fields = { + __typename?: 'pre_commit_avg_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by avg() on columns of table "pre_commit" */ +export type Pre_Commit_Avg_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "pre_commit". All fields are combined with a logical 'AND'. */ +export type Pre_Commit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Pre_Commit_Max_Fields = { + __typename?: 'pre_commit_max_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by max() on columns of table "pre_commit" */ +export type Pre_Commit_Max_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Pre_Commit_Min_Fields = { + __typename?: 'pre_commit_min_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by min() on columns of table "pre_commit" */ +export type Pre_Commit_Min_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "pre_commit". */ +export type Pre_Commit_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "pre_commit" */ +export enum Pre_Commit_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + ProposerPriority = 'proposer_priority', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** aggregate stddev on columns */ +export type Pre_Commit_Stddev_Fields = { + __typename?: 'pre_commit_stddev_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev() on columns of table "pre_commit" */ +export type Pre_Commit_Stddev_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Pre_Commit_Stddev_Pop_Fields = { + __typename?: 'pre_commit_stddev_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_pop() on columns of table "pre_commit" */ +export type Pre_Commit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Pre_Commit_Stddev_Samp_Fields = { + __typename?: 'pre_commit_stddev_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_samp() on columns of table "pre_commit" */ +export type Pre_Commit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Pre_Commit_Sum_Fields = { + __typename?: 'pre_commit_sum_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by sum() on columns of table "pre_commit" */ +export type Pre_Commit_Sum_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Pre_Commit_Var_Pop_Fields = { + __typename?: 'pre_commit_var_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_pop() on columns of table "pre_commit" */ +export type Pre_Commit_Var_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Pre_Commit_Var_Samp_Fields = { + __typename?: 'pre_commit_var_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_samp() on columns of table "pre_commit" */ +export type Pre_Commit_Var_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Pre_Commit_Variance_Fields = { + __typename?: 'pre_commit_variance_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by variance() on columns of table "pre_commit" */ +export type Pre_Commit_Variance_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** columns and relationships of "proposal" */ +export type Proposal = { + __typename?: 'proposal'; + content: Scalars['jsonb']; + deposit_end_time?: Maybe; + description: Scalars['String']; + id: Scalars['Int']; + /** An array relationship */ + proposal_deposits: Array; + proposal_route: Scalars['String']; + /** An object relationship */ + proposal_tally_result?: Maybe; + /** An array relationship */ + proposal_tally_results: Array; + proposal_type: Scalars['String']; + /** An array relationship */ + proposal_votes: Array; + /** An object relationship */ + proposer: Account; + proposer_address: Scalars['String']; + /** An object relationship */ + staking_pool_snapshot?: Maybe; + status?: Maybe; + submit_time: Scalars['timestamp']; + title: Scalars['String']; + /** An array relationship */ + validator_status_snapshots: Array; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + + +/** columns and relationships of "proposal" */ +export type ProposalContentArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type ProposalProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type ProposalProposal_Tally_ResultsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type ProposalProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type ProposalValidator_Status_SnapshotsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** aggregated selection of "proposal" */ +export type Proposal_Aggregate = { + __typename?: 'proposal_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "proposal" */ +export type Proposal_Aggregate_Fields = { + __typename?: 'proposal_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 "proposal" */ +export type Proposal_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "proposal" */ +export type Proposal_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Proposal_Avg_Fields = { + __typename?: 'proposal_avg_fields'; + id?: Maybe; +}; + +/** order by avg() on columns of table "proposal" */ +export type Proposal_Avg_Order_By = { + id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal". All fields are combined with a logical 'AND'. */ +export type Proposal_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** columns and relationships of "proposal_deposit" */ +export type Proposal_Deposit = { + __typename?: 'proposal_deposit'; + amount?: Maybe; + /** An object relationship */ + block?: Maybe; + /** An object relationship */ + depositor?: Maybe; + depositor_address?: Maybe; + height: Scalars['bigint']; + /** An object relationship */ + proposal: Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; +}; + +/** order by aggregate values of table "proposal_deposit" */ +export type Proposal_Deposit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_deposit". All fields are combined with a logical 'AND'. */ +export type Proposal_Deposit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe<_Coin_Comparison_Exp>; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Max_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Min_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_deposit". */ +export type Proposal_Deposit_Order_By = { + amount?: InputMaybe; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** select columns of table "proposal_deposit" */ +export enum Proposal_Deposit_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + DepositorAddress = 'depositor_address', + /** column name */ + Height = 'height', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Timestamp = 'timestamp' +} + +/** order by stddev() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Proposal_Max_Fields = { + __typename?: 'proposal_max_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +/** order by max() on columns of table "proposal" */ +export type Proposal_Max_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Proposal_Min_Fields = { + __typename?: 'proposal_min_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +/** order by min() on columns of table "proposal" */ +export type Proposal_Min_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal". */ +export type Proposal_Order_By = { + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results_aggregate?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots_aggregate?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** select columns of table "proposal" */ +export enum Proposal_Select_Column { + /** column name */ + Content = 'content', + /** column name */ + DepositEndTime = 'deposit_end_time', + /** column name */ + Description = 'description', + /** column name */ + Id = 'id', + /** column name */ + ProposalRoute = 'proposal_route', + /** column name */ + ProposalType = 'proposal_type', + /** column name */ + ProposerAddress = 'proposer_address', + /** column name */ + Status = 'status', + /** column name */ + SubmitTime = 'submit_time', + /** column name */ + Title = 'title', + /** column name */ + VotingEndTime = 'voting_end_time', + /** column name */ + VotingStartTime = 'voting_start_time' +} + +/** columns and relationships of "proposal_staking_pool_snapshot" */ +export type Proposal_Staking_Pool_Snapshot = { + __typename?: 'proposal_staking_pool_snapshot'; + bonded_tokens: Scalars['String']; + height: Scalars['bigint']; + not_bonded_tokens: Scalars['String']; + /** An object relationship */ + proposal: Proposal; + proposal_id: Scalars['Int']; +}; + +/** Boolean expression to filter rows from the table "proposal_staking_pool_snapshot". All fields are combined with a logical 'AND'. */ +export type Proposal_Staking_Pool_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_staking_pool_snapshot". */ +export type Proposal_Staking_Pool_Snapshot_Order_By = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** select columns of table "proposal_staking_pool_snapshot" */ +export enum Proposal_Staking_Pool_Snapshot_Select_Column { + /** column name */ + BondedTokens = 'bonded_tokens', + /** column name */ + Height = 'height', + /** column name */ + NotBondedTokens = 'not_bonded_tokens', + /** column name */ + ProposalId = 'proposal_id' +} + +/** aggregate stddev on columns */ +export type Proposal_Stddev_Fields = { + __typename?: 'proposal_stddev_fields'; + id?: Maybe; +}; + +/** order by stddev() on columns of table "proposal" */ +export type Proposal_Stddev_Order_By = { + id?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Proposal_Stddev_Pop_Fields = { + __typename?: 'proposal_stddev_pop_fields'; + id?: Maybe; +}; + +/** order by stddev_pop() on columns of table "proposal" */ +export type Proposal_Stddev_Pop_Order_By = { + id?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Proposal_Stddev_Samp_Fields = { + __typename?: 'proposal_stddev_samp_fields'; + id?: Maybe; +}; + +/** order by stddev_samp() on columns of table "proposal" */ +export type Proposal_Stddev_Samp_Order_By = { + id?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Proposal_Sum_Fields = { + __typename?: 'proposal_sum_fields'; + id?: Maybe; +}; + +/** order by sum() on columns of table "proposal" */ +export type Proposal_Sum_Order_By = { + id?: InputMaybe; +}; + +/** columns and relationships of "proposal_tally_result" */ +export type Proposal_Tally_Result = { + __typename?: 'proposal_tally_result'; + abstain: Scalars['String']; + height: Scalars['bigint']; + no: Scalars['String']; + no_with_veto: Scalars['String']; + /** An object relationship */ + proposal: Proposal; + proposal_id: Scalars['Int']; + yes: Scalars['String']; +}; + +/** order by aggregate values of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_tally_result". All fields are combined with a logical 'AND'. */ +export type Proposal_Tally_Result_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Max_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Min_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_tally_result". */ +export type Proposal_Tally_Result_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** select columns of table "proposal_tally_result" */ +export enum Proposal_Tally_Result_Select_Column { + /** column name */ + Abstain = 'abstain', + /** column name */ + Height = 'height', + /** column name */ + No = 'no', + /** column name */ + NoWithVeto = 'no_with_veto', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Yes = 'yes' +} + +/** order by stddev() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** columns and relationships of "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot = { + __typename?: 'proposal_validator_status_snapshot'; + height: Scalars['bigint']; + jailed: Scalars['Boolean']; + /** An object relationship */ + proposal?: Maybe; + proposal_id?: Maybe; + status: Scalars['Int']; + /** An object relationship */ + validator: Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** order by aggregate values of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_validator_status_snapshot". All fields are combined with a logical 'AND'. */ +export type Proposal_Validator_Status_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Max_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Min_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_validator_status_snapshot". */ +export type Proposal_Validator_Status_Snapshot_Order_By = { + height?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "proposal_validator_status_snapshot" */ +export enum Proposal_Validator_Status_Snapshot_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Jailed = 'jailed', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Status = 'status', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** order by stddev() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Proposal_Var_Pop_Fields = { + __typename?: 'proposal_var_pop_fields'; + id?: Maybe; +}; + +/** order by var_pop() on columns of table "proposal" */ +export type Proposal_Var_Pop_Order_By = { + id?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Proposal_Var_Samp_Fields = { + __typename?: 'proposal_var_samp_fields'; + id?: Maybe; +}; + +/** order by var_samp() on columns of table "proposal" */ +export type Proposal_Var_Samp_Order_By = { + id?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Proposal_Variance_Fields = { + __typename?: 'proposal_variance_fields'; + id?: Maybe; +}; + +/** order by variance() on columns of table "proposal" */ +export type Proposal_Variance_Order_By = { + id?: InputMaybe; +}; + +/** columns and relationships of "proposal_vote" */ +export type Proposal_Vote = { + __typename?: 'proposal_vote'; + /** An object relationship */ + account: Account; + /** An object relationship */ + block?: Maybe; + height: Scalars['bigint']; + option: Scalars['String']; + /** An object relationship */ + proposal: Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; + voter_address: Scalars['String']; +}; + +/** order by aggregate values of table "proposal_vote" */ +export type Proposal_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_vote" */ +export type Proposal_Vote_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_vote". All fields are combined with a logical 'AND'. */ +export type Proposal_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_vote" */ +export type Proposal_Vote_Max_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_vote" */ +export type Proposal_Vote_Min_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_vote". */ +export type Proposal_Vote_Order_By = { + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** select columns of table "proposal_vote" */ +export enum Proposal_Vote_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Option = 'option', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + VoterAddress = 'voter_address' +} + +/** order by stddev() on columns of table "proposal_vote" */ +export type Proposal_Vote_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_vote" */ +export type Proposal_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_vote" */ +export type Proposal_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_vote" */ +export type Proposal_Vote_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_vote" */ +export type Proposal_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_vote" */ +export type Proposal_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_vote" */ +export type Proposal_Vote_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Query_Root = { + __typename?: 'query_root'; + /** fetch data from the table: "account" */ + account: Array; + /** fetch data from the table: "account" using primary key columns */ + account_by_pk?: Maybe; + action_account_balance?: Maybe; + action_delegation?: Maybe; + action_delegation_reward?: Maybe>>; + action_delegation_total?: Maybe; + action_delegator_withdraw_address: ActionAddress; + action_redelegation?: Maybe; + action_unbonding_delegation?: Maybe; + action_unbonding_delegation_total?: Maybe; + action_validator_commission_amount?: Maybe; + action_validator_delegations?: Maybe; + action_validator_redelegations_from?: Maybe; + action_validator_unbonding_delegations?: Maybe; + /** fetch data from the table: "average_block_time_from_genesis" */ + average_block_time_from_genesis: Array; + /** fetch data from the table: "average_block_time_per_day" */ + average_block_time_per_day: Array; + /** fetch data from the table: "average_block_time_per_hour" */ + average_block_time_per_hour: Array; + /** fetch data from the table: "average_block_time_per_minute" */ + average_block_time_per_minute: Array; + /** fetch data from the table: "block" */ + block: Array; + /** fetch data from the table: "block" using primary key columns */ + block_by_pk?: Maybe; + /** fetch data from the table: "community_pool" */ + community_pool: Array; + /** fetch data from the table: "distribution_params" */ + distribution_params: Array; + /** fetch data from the table: "double_sign_evidence" */ + double_sign_evidence: Array; + /** fetch data from the table: "double_sign_vote" */ + double_sign_vote: Array; + /** fetch data from the table: "fee_grant_allowance" */ + fee_grant_allowance: Array; + /** fetch data from the table: "genesis" */ + genesis: Array; + /** fetch data from the table: "gov_params" */ + gov_params: Array; + /** fetch data from the table: "inflation" */ + inflation: Array; + /** fetch data from the table: "message" */ + message: Array; + /** execute function "messages_by_address" which returns "message" */ + messages_by_address: Array; + /** fetch data from the table: "mint_params" */ + mint_params: Array; + /** fetch data from the table: "modules" */ + modules: Array; + /** fetch data from the table: "modules" using primary key columns */ + modules_by_pk?: Maybe; + /** fetch data from the table: "pre_commit" */ + pre_commit: Array; + /** fetch aggregated fields from the table: "pre_commit" */ + pre_commit_aggregate: Pre_Commit_Aggregate; + /** fetch data from the table: "proposal" */ + proposal: Array; + /** fetch aggregated fields from the table: "proposal" */ + proposal_aggregate: Proposal_Aggregate; + /** fetch data from the table: "proposal" using primary key columns */ + proposal_by_pk?: Maybe; + /** fetch data from the table: "proposal_deposit" */ + proposal_deposit: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" */ + proposal_staking_pool_snapshot: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" using primary key columns */ + proposal_staking_pool_snapshot_by_pk?: Maybe; + /** fetch data from the table: "proposal_tally_result" */ + proposal_tally_result: Array; + /** fetch data from the table: "proposal_tally_result" using primary key columns */ + proposal_tally_result_by_pk?: Maybe; + /** fetch data from the table: "proposal_validator_status_snapshot" */ + proposal_validator_status_snapshot: Array; + /** fetch data from the table: "proposal_vote" */ + proposal_vote: Array; + /** fetch data from the table: "slashing_params" */ + slashing_params: Array; + /** fetch data from the table: "software_upgrade_plan" */ + software_upgrade_plan: Array; + /** fetch aggregated fields from the table: "software_upgrade_plan" */ + software_upgrade_plan_aggregate: Software_Upgrade_Plan_Aggregate; + /** fetch data from the table: "staking_params" */ + staking_params: Array; + /** fetch data from the table: "staking_pool" */ + staking_pool: Array; + /** fetch data from the table: "supply" */ + supply: Array; + /** fetch data from the table: "token" */ + token: Array; + /** fetch data from the table: "token_price" */ + token_price: Array; + /** fetch data from the table: "token_price_history" */ + token_price_history: Array; + /** fetch data from the table: "token_unit" */ + token_unit: Array; + /** fetch data from the table: "transaction" */ + transaction: Array; + /** fetch data from the table: "validator" */ + validator: Array; + /** fetch data from the table: "validator" using primary key columns */ + validator_by_pk?: Maybe; + /** fetch data from the table: "validator_commission" */ + validator_commission: Array; + /** fetch data from the table: "validator_commission" using primary key columns */ + validator_commission_by_pk?: Maybe; + /** fetch data from the table: "validator_description" */ + validator_description: Array; + /** fetch data from the table: "validator_description" using primary key columns */ + validator_description_by_pk?: Maybe; + /** fetch data from the table: "validator_info" */ + validator_info: Array; + /** fetch data from the table: "validator_info" using primary key columns */ + validator_info_by_pk?: Maybe; + /** fetch data from the table: "validator_signing_info" */ + validator_signing_info: Array; + /** fetch data from the table: "validator_signing_info" using primary key columns */ + validator_signing_info_by_pk?: Maybe; + /** fetch data from the table: "validator_status" */ + validator_status: Array; + /** fetch aggregated fields from the table: "validator_status" */ + validator_status_aggregate: Validator_Status_Aggregate; + /** fetch data from the table: "validator_status" using primary key columns */ + validator_status_by_pk?: Maybe; + /** fetch data from the table: "validator_voting_power" */ + validator_voting_power: Array; + /** fetch aggregated fields from the table: "validator_voting_power" */ + validator_voting_power_aggregate: Validator_Voting_Power_Aggregate; + /** fetch data from the table: "validator_voting_power" using primary key columns */ + validator_voting_power_by_pk?: Maybe; + /** fetch data from the table: "vesting_account" */ + vesting_account: Array; + /** fetch data from the table: "vesting_period" */ + vesting_period: Array; + /** fetch data from the table: "wasm_code" */ + wasm_code: Array; + /** fetch aggregated fields from the table: "wasm_code" */ + wasm_code_aggregate: Wasm_Code_Aggregate; + /** fetch data from the table: "wasm_contract" */ + wasm_contract: Array; + /** fetch aggregated fields from the table: "wasm_contract" */ + wasm_contract_aggregate: Wasm_Contract_Aggregate; + /** fetch data from the table: "wasm_execute_contract" */ + wasm_execute_contract: Array; + /** fetch aggregated fields from the table: "wasm_execute_contract" */ + wasm_execute_contract_aggregate: Wasm_Execute_Contract_Aggregate; + /** fetch data from the table: "wasm_params" */ + wasm_params: Array; + /** fetch aggregated fields from the table: "wasm_params" */ + wasm_params_aggregate: Wasm_Params_Aggregate; + /** fetch data from the table: "wasm_params" using primary key columns */ + wasm_params_by_pk?: Maybe; +}; + + +export type Query_RootAccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootAccount_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Query_RootAction_Account_BalanceArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Query_RootAction_DelegationArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Query_RootAction_Delegation_RewardArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Query_RootAction_Delegation_TotalArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Query_RootAction_Delegator_Withdraw_AddressArgs = { + address: Scalars['String']; +}; + + +export type Query_RootAction_RedelegationArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Query_RootAction_Unbonding_DelegationArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Query_RootAction_Unbonding_Delegation_TotalArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Query_RootAction_Validator_Commission_AmountArgs = { + address: Scalars['String']; +}; + + +export type Query_RootAction_Validator_DelegationsArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Query_RootAction_Validator_Redelegations_FromArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Query_RootAction_Validator_Unbonding_DelegationsArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Query_RootAverage_Block_Time_From_GenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootAverage_Block_Time_Per_DayArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootAverage_Block_Time_Per_HourArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootAverage_Block_Time_Per_MinuteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootBlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootBlock_By_PkArgs = { + height: Scalars['bigint']; +}; + + +export type Query_RootCommunity_PoolArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootDistribution_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootDouble_Sign_EvidenceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootDouble_Sign_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootFee_Grant_AllowanceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootGenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootGov_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootInflationArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootMessageArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootMessages_By_AddressArgs = { + args: Messages_By_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootMint_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootModulesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootModules_By_PkArgs = { + module_name: Scalars['String']; +}; + + +export type Query_RootPre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootPre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootProposalArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootProposal_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootProposal_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Query_RootProposal_DepositArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootProposal_Staking_Pool_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootProposal_Staking_Pool_Snapshot_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Query_RootProposal_Tally_ResultArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootProposal_Tally_Result_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Query_RootProposal_Validator_Status_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootProposal_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootSlashing_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootSoftware_Upgrade_PlanArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootSoftware_Upgrade_Plan_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootStaking_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootStaking_PoolArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootSupplyArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootTokenArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootToken_PriceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootToken_Price_HistoryArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootToken_UnitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootTransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Query_RootValidator_CommissionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidator_Commission_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Query_RootValidator_DescriptionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidator_Description_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Query_RootValidator_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidator_Info_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Query_RootValidator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Query_RootValidator_StatusArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidator_Status_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidator_Status_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Query_RootValidator_Voting_PowerArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidator_Voting_Power_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidator_Voting_Power_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Query_RootVesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootVesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_CodeArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Code_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Execute_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Execute_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + +/** columns and relationships of "slashing_params" */ +export type Slashing_Params = { + __typename?: 'slashing_params'; + height: Scalars['bigint']; + params: Scalars['jsonb']; +}; + + +/** columns and relationships of "slashing_params" */ +export type Slashing_ParamsParamsArgs = { + path?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "slashing_params". All fields are combined with a logical 'AND'. */ +export type Slashing_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + params?: InputMaybe; +}; + +/** Ordering options when selecting data from "slashing_params". */ +export type Slashing_Params_Order_By = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** select columns of table "slashing_params" */ +export enum Slashing_Params_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Params = 'params' +} + +/** Boolean expression to compare columns of type "smallint". All fields are combined with logical 'AND'. */ +export type Smallint_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "software_upgrade_plan" */ +export type Software_Upgrade_Plan = { + __typename?: 'software_upgrade_plan'; + height: Scalars['bigint']; + info: Scalars['String']; + plan_name: Scalars['String']; + /** An object relationship */ + proposal?: Maybe; + proposal_id?: Maybe; + upgrade_height: Scalars['bigint']; +}; + +/** aggregated selection of "software_upgrade_plan" */ +export type Software_Upgrade_Plan_Aggregate = { + __typename?: 'software_upgrade_plan_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "software_upgrade_plan" */ +export type Software_Upgrade_Plan_Aggregate_Fields = { + __typename?: 'software_upgrade_plan_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 "software_upgrade_plan" */ +export type Software_Upgrade_Plan_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Software_Upgrade_Plan_Avg_Fields = { + __typename?: 'software_upgrade_plan_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +/** Boolean expression to filter rows from the table "software_upgrade_plan". All fields are combined with a logical 'AND'. */ +export type Software_Upgrade_Plan_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + info?: InputMaybe; + plan_name?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + upgrade_height?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Software_Upgrade_Plan_Max_Fields = { + __typename?: 'software_upgrade_plan_max_fields'; + height?: Maybe; + info?: Maybe; + plan_name?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +/** aggregate min on columns */ +export type Software_Upgrade_Plan_Min_Fields = { + __typename?: 'software_upgrade_plan_min_fields'; + height?: Maybe; + info?: Maybe; + plan_name?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +/** Ordering options when selecting data from "software_upgrade_plan". */ +export type Software_Upgrade_Plan_Order_By = { + height?: InputMaybe; + info?: InputMaybe; + plan_name?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + upgrade_height?: InputMaybe; +}; + +/** select columns of table "software_upgrade_plan" */ +export enum Software_Upgrade_Plan_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Info = 'info', + /** column name */ + PlanName = 'plan_name', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + UpgradeHeight = 'upgrade_height' +} + +/** aggregate stddev on columns */ +export type Software_Upgrade_Plan_Stddev_Fields = { + __typename?: 'software_upgrade_plan_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Software_Upgrade_Plan_Stddev_Pop_Fields = { + __typename?: 'software_upgrade_plan_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Software_Upgrade_Plan_Stddev_Samp_Fields = { + __typename?: 'software_upgrade_plan_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +/** aggregate sum on columns */ +export type Software_Upgrade_Plan_Sum_Fields = { + __typename?: 'software_upgrade_plan_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Software_Upgrade_Plan_Var_Pop_Fields = { + __typename?: 'software_upgrade_plan_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Software_Upgrade_Plan_Var_Samp_Fields = { + __typename?: 'software_upgrade_plan_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +/** aggregate variance on columns */ +export type Software_Upgrade_Plan_Variance_Fields = { + __typename?: 'software_upgrade_plan_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +/** columns and relationships of "staking_params" */ +export type Staking_Params = { + __typename?: 'staking_params'; + height: Scalars['bigint']; + params: Scalars['jsonb']; +}; + + +/** columns and relationships of "staking_params" */ +export type Staking_ParamsParamsArgs = { + path?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "staking_params". All fields are combined with a logical 'AND'. */ +export type Staking_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + params?: InputMaybe; +}; + +/** Ordering options when selecting data from "staking_params". */ +export type Staking_Params_Order_By = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** select columns of table "staking_params" */ +export enum Staking_Params_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Params = 'params' +} + +/** columns and relationships of "staking_pool" */ +export type Staking_Pool = { + __typename?: 'staking_pool'; + bonded_tokens: Scalars['String']; + height: Scalars['bigint']; + not_bonded_tokens: Scalars['String']; + staked_not_bonded_tokens: Scalars['String']; + unbonding_tokens: Scalars['String']; +}; + +/** Boolean expression to filter rows from the table "staking_pool". All fields are combined with a logical 'AND'. */ +export type Staking_Pool_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + staked_not_bonded_tokens?: InputMaybe; + unbonding_tokens?: InputMaybe; +}; + +/** Ordering options when selecting data from "staking_pool". */ +export type Staking_Pool_Order_By = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + staked_not_bonded_tokens?: InputMaybe; + unbonding_tokens?: InputMaybe; +}; + +/** select columns of table "staking_pool" */ +export enum Staking_Pool_Select_Column { + /** column name */ + BondedTokens = 'bonded_tokens', + /** column name */ + Height = 'height', + /** column name */ + NotBondedTokens = 'not_bonded_tokens', + /** column name */ + StakedNotBondedTokens = 'staked_not_bonded_tokens', + /** column name */ + UnbondingTokens = 'unbonding_tokens' +} + +export type Subscription_Root = { + __typename?: 'subscription_root'; + /** fetch data from the table: "account" */ + account: Array; + /** fetch data from the table: "account" using primary key columns */ + account_by_pk?: Maybe; + /** fetch data from the table: "average_block_time_from_genesis" */ + average_block_time_from_genesis: Array; + /** fetch data from the table: "average_block_time_per_day" */ + average_block_time_per_day: Array; + /** fetch data from the table: "average_block_time_per_hour" */ + average_block_time_per_hour: Array; + /** fetch data from the table: "average_block_time_per_minute" */ + average_block_time_per_minute: Array; + /** fetch data from the table: "block" */ + block: Array; + /** fetch data from the table: "block" using primary key columns */ + block_by_pk?: Maybe; + /** fetch data from the table: "community_pool" */ + community_pool: Array; + /** fetch data from the table: "distribution_params" */ + distribution_params: Array; + /** fetch data from the table: "double_sign_evidence" */ + double_sign_evidence: Array; + /** fetch data from the table: "double_sign_vote" */ + double_sign_vote: Array; + /** fetch data from the table: "fee_grant_allowance" */ + fee_grant_allowance: Array; + /** fetch data from the table: "genesis" */ + genesis: Array; + /** fetch data from the table: "gov_params" */ + gov_params: Array; + /** fetch data from the table: "inflation" */ + inflation: Array; + /** fetch data from the table: "message" */ + message: Array; + /** execute function "messages_by_address" which returns "message" */ + messages_by_address: Array; + /** fetch data from the table: "mint_params" */ + mint_params: Array; + /** fetch data from the table: "modules" */ + modules: Array; + /** fetch data from the table: "modules" using primary key columns */ + modules_by_pk?: Maybe; + /** fetch data from the table: "pre_commit" */ + pre_commit: Array; + /** fetch aggregated fields from the table: "pre_commit" */ + pre_commit_aggregate: Pre_Commit_Aggregate; + /** fetch data from the table: "proposal" */ + proposal: Array; + /** fetch aggregated fields from the table: "proposal" */ + proposal_aggregate: Proposal_Aggregate; + /** fetch data from the table: "proposal" using primary key columns */ + proposal_by_pk?: Maybe; + /** fetch data from the table: "proposal_deposit" */ + proposal_deposit: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" */ + proposal_staking_pool_snapshot: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" using primary key columns */ + proposal_staking_pool_snapshot_by_pk?: Maybe; + /** fetch data from the table: "proposal_tally_result" */ + proposal_tally_result: Array; + /** fetch data from the table: "proposal_tally_result" using primary key columns */ + proposal_tally_result_by_pk?: Maybe; + /** fetch data from the table: "proposal_validator_status_snapshot" */ + proposal_validator_status_snapshot: Array; + /** fetch data from the table: "proposal_vote" */ + proposal_vote: Array; + /** fetch data from the table: "slashing_params" */ + slashing_params: Array; + /** fetch data from the table: "software_upgrade_plan" */ + software_upgrade_plan: Array; + /** fetch aggregated fields from the table: "software_upgrade_plan" */ + software_upgrade_plan_aggregate: Software_Upgrade_Plan_Aggregate; + /** fetch data from the table: "staking_params" */ + staking_params: Array; + /** fetch data from the table: "staking_pool" */ + staking_pool: Array; + /** fetch data from the table: "supply" */ + supply: Array; + /** fetch data from the table: "token" */ + token: Array; + /** fetch data from the table: "token_price" */ + token_price: Array; + /** fetch data from the table: "token_price_history" */ + token_price_history: Array; + /** fetch data from the table: "token_unit" */ + token_unit: Array; + /** fetch data from the table: "transaction" */ + transaction: Array; + /** fetch data from the table: "validator" */ + validator: Array; + /** fetch data from the table: "validator" using primary key columns */ + validator_by_pk?: Maybe; + /** fetch data from the table: "validator_commission" */ + validator_commission: Array; + /** fetch data from the table: "validator_commission" using primary key columns */ + validator_commission_by_pk?: Maybe; + /** fetch data from the table: "validator_description" */ + validator_description: Array; + /** fetch data from the table: "validator_description" using primary key columns */ + validator_description_by_pk?: Maybe; + /** fetch data from the table: "validator_info" */ + validator_info: Array; + /** fetch data from the table: "validator_info" using primary key columns */ + validator_info_by_pk?: Maybe; + /** fetch data from the table: "validator_signing_info" */ + validator_signing_info: Array; + /** fetch data from the table: "validator_signing_info" using primary key columns */ + validator_signing_info_by_pk?: Maybe; + /** fetch data from the table: "validator_status" */ + validator_status: Array; + /** fetch aggregated fields from the table: "validator_status" */ + validator_status_aggregate: Validator_Status_Aggregate; + /** fetch data from the table: "validator_status" using primary key columns */ + validator_status_by_pk?: Maybe; + /** fetch data from the table: "validator_voting_power" */ + validator_voting_power: Array; + /** fetch aggregated fields from the table: "validator_voting_power" */ + validator_voting_power_aggregate: Validator_Voting_Power_Aggregate; + /** fetch data from the table: "validator_voting_power" using primary key columns */ + validator_voting_power_by_pk?: Maybe; + /** fetch data from the table: "vesting_account" */ + vesting_account: Array; + /** fetch data from the table: "vesting_period" */ + vesting_period: Array; + /** fetch data from the table: "wasm_code" */ + wasm_code: Array; + /** fetch aggregated fields from the table: "wasm_code" */ + wasm_code_aggregate: Wasm_Code_Aggregate; + /** fetch data from the table: "wasm_contract" */ + wasm_contract: Array; + /** fetch aggregated fields from the table: "wasm_contract" */ + wasm_contract_aggregate: Wasm_Contract_Aggregate; + /** fetch data from the table: "wasm_execute_contract" */ + wasm_execute_contract: Array; + /** fetch aggregated fields from the table: "wasm_execute_contract" */ + wasm_execute_contract_aggregate: Wasm_Execute_Contract_Aggregate; + /** fetch data from the table: "wasm_params" */ + wasm_params: Array; + /** fetch aggregated fields from the table: "wasm_params" */ + wasm_params_aggregate: Wasm_Params_Aggregate; + /** fetch data from the table: "wasm_params" using primary key columns */ + wasm_params_by_pk?: Maybe; +}; + + +export type Subscription_RootAccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootAccount_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Subscription_RootAverage_Block_Time_From_GenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_DayArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_HourArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_MinuteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootBlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootBlock_By_PkArgs = { + height: Scalars['bigint']; +}; + + +export type Subscription_RootCommunity_PoolArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootDistribution_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootDouble_Sign_EvidenceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootDouble_Sign_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootFee_Grant_AllowanceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootGenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootGov_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootInflationArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootMessageArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootMessages_By_AddressArgs = { + args: Messages_By_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootMint_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootModulesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootModules_By_PkArgs = { + module_name: Scalars['String']; +}; + + +export type Subscription_RootPre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootPre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootProposalArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootProposal_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootProposal_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Subscription_RootProposal_DepositArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootProposal_Staking_Pool_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootProposal_Staking_Pool_Snapshot_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Subscription_RootProposal_Tally_ResultArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootProposal_Tally_Result_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Subscription_RootProposal_Validator_Status_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootProposal_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootSlashing_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootSoftware_Upgrade_PlanArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootSoftware_Upgrade_Plan_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootStaking_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootStaking_PoolArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootSupplyArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootTokenArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_PriceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_Price_HistoryArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_UnitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootTransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Subscription_RootValidator_CommissionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_Commission_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Subscription_RootValidator_DescriptionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_Description_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Subscription_RootValidator_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_Info_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Subscription_RootValidator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Subscription_RootValidator_StatusArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_Status_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_Status_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Subscription_RootValidator_Voting_PowerArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_Voting_Power_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_Voting_Power_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Subscription_RootVesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootVesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_CodeArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Code_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Execute_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Execute_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + +/** columns and relationships of "supply" */ +export type Supply = { + __typename?: 'supply'; + coins: Scalars['_coin']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "supply". All fields are combined with a logical 'AND'. */ +export type Supply_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + coins?: InputMaybe<_Coin_Comparison_Exp>; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "supply". */ +export type Supply_Order_By = { + coins?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "supply" */ +export enum Supply_Select_Column { + /** column name */ + Coins = 'coins', + /** column name */ + Height = 'height' +} + +/** Boolean expression to compare columns of type "timestamp". All fields are combined with logical 'AND'. */ +export type Timestamp_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "token" */ +export type Token = { + __typename?: 'token'; + name: Scalars['String']; + /** An array relationship */ + token_units: Array; +}; + + +/** columns and relationships of "token" */ +export type TokenToken_UnitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "token". All fields are combined with a logical 'AND'. */ +export type Token_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + name?: InputMaybe; + token_units?: InputMaybe; +}; + +/** Ordering options when selecting data from "token". */ +export type Token_Order_By = { + name?: InputMaybe; + token_units_aggregate?: InputMaybe; +}; + +/** columns and relationships of "token_price" */ +export type Token_Price = { + __typename?: 'token_price'; + market_cap: Scalars['bigint']; + price: Scalars['numeric']; + timestamp: Scalars['timestamp']; + /** An object relationship */ + token_unit: Token_Unit; + unit_name: Scalars['String']; +}; + +/** order by aggregate values of table "token_price" */ +export type Token_Price_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "token_price" */ +export type Token_Price_Avg_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "token_price". All fields are combined with a logical 'AND'. */ +export type Token_Price_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** columns and relationships of "token_price_history" */ +export type Token_Price_History = { + __typename?: 'token_price_history'; + market_cap: Scalars['bigint']; + price: Scalars['numeric']; + timestamp: Scalars['timestamp']; + /** An object relationship */ + token_unit: Token_Unit; + unit_name: Scalars['String']; +}; + +/** order by aggregate values of table "token_price_history" */ +export type Token_Price_History_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "token_price_history" */ +export type Token_Price_History_Avg_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "token_price_history". All fields are combined with a logical 'AND'. */ +export type Token_Price_History_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** order by max() on columns of table "token_price_history" */ +export type Token_Price_History_Max_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** order by min() on columns of table "token_price_history" */ +export type Token_Price_History_Min_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** Ordering options when selecting data from "token_price_history". */ +export type Token_Price_History_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** select columns of table "token_price_history" */ +export enum Token_Price_History_Select_Column { + /** column name */ + MarketCap = 'market_cap', + /** column name */ + Price = 'price', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + UnitName = 'unit_name' +} + +/** order by stddev() on columns of table "token_price_history" */ +export type Token_Price_History_Stddev_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "token_price_history" */ +export type Token_Price_History_Stddev_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "token_price_history" */ +export type Token_Price_History_Stddev_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by sum() on columns of table "token_price_history" */ +export type Token_Price_History_Sum_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by var_pop() on columns of table "token_price_history" */ +export type Token_Price_History_Var_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by var_samp() on columns of table "token_price_history" */ +export type Token_Price_History_Var_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by variance() on columns of table "token_price_history" */ +export type Token_Price_History_Variance_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by max() on columns of table "token_price" */ +export type Token_Price_Max_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** order by min() on columns of table "token_price" */ +export type Token_Price_Min_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** Ordering options when selecting data from "token_price". */ +export type Token_Price_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** select columns of table "token_price" */ +export enum Token_Price_Select_Column { + /** column name */ + MarketCap = 'market_cap', + /** column name */ + Price = 'price', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + UnitName = 'unit_name' +} + +/** order by stddev() on columns of table "token_price" */ +export type Token_Price_Stddev_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "token_price" */ +export type Token_Price_Stddev_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "token_price" */ +export type Token_Price_Stddev_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by sum() on columns of table "token_price" */ +export type Token_Price_Sum_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by var_pop() on columns of table "token_price" */ +export type Token_Price_Var_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by var_samp() on columns of table "token_price" */ +export type Token_Price_Var_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by variance() on columns of table "token_price" */ +export type Token_Price_Variance_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** select columns of table "token" */ +export enum Token_Select_Column { + /** column name */ + Name = 'name' +} + +/** columns and relationships of "token_unit" */ +export type Token_Unit = { + __typename?: 'token_unit'; + aliases?: Maybe; + denom: Scalars['String']; + exponent: Scalars['Int']; + price_id?: Maybe; + /** An object relationship */ + token: Token; + token_name: Scalars['String']; + /** An object relationship */ + token_price?: Maybe; + /** An array relationship */ + token_price_histories: Array; + /** An array relationship */ + token_prices: Array; +}; + + +/** columns and relationships of "token_unit" */ +export type Token_UnitToken_Price_HistoriesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "token_unit" */ +export type Token_UnitToken_PricesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "token_unit" */ +export type Token_Unit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "token_unit" */ +export type Token_Unit_Avg_Order_By = { + exponent?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "token_unit". All fields are combined with a logical 'AND'. */ +export type Token_Unit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + aliases?: InputMaybe<_Text_Comparison_Exp>; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token?: InputMaybe; + token_name?: InputMaybe; + token_price?: InputMaybe; + token_price_histories?: InputMaybe; + token_prices?: InputMaybe; +}; + +/** order by max() on columns of table "token_unit" */ +export type Token_Unit_Max_Order_By = { + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; +}; + +/** order by min() on columns of table "token_unit" */ +export type Token_Unit_Min_Order_By = { + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; +}; + +/** Ordering options when selecting data from "token_unit". */ +export type Token_Unit_Order_By = { + aliases?: InputMaybe; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token?: InputMaybe; + token_name?: InputMaybe; + token_price?: InputMaybe; + token_price_histories_aggregate?: InputMaybe; + token_prices_aggregate?: InputMaybe; +}; + +/** select columns of table "token_unit" */ +export enum Token_Unit_Select_Column { + /** column name */ + Aliases = 'aliases', + /** column name */ + Denom = 'denom', + /** column name */ + Exponent = 'exponent', + /** column name */ + PriceId = 'price_id', + /** column name */ + TokenName = 'token_name' +} + +/** order by stddev() on columns of table "token_unit" */ +export type Token_Unit_Stddev_Order_By = { + exponent?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "token_unit" */ +export type Token_Unit_Stddev_Pop_Order_By = { + exponent?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "token_unit" */ +export type Token_Unit_Stddev_Samp_Order_By = { + exponent?: InputMaybe; +}; + +/** order by sum() on columns of table "token_unit" */ +export type Token_Unit_Sum_Order_By = { + exponent?: InputMaybe; +}; + +/** order by var_pop() on columns of table "token_unit" */ +export type Token_Unit_Var_Pop_Order_By = { + exponent?: InputMaybe; +}; + +/** order by var_samp() on columns of table "token_unit" */ +export type Token_Unit_Var_Samp_Order_By = { + exponent?: InputMaybe; +}; + +/** order by variance() on columns of table "token_unit" */ +export type Token_Unit_Variance_Order_By = { + exponent?: InputMaybe; +}; + +/** columns and relationships of "transaction" */ +export type Transaction = { + __typename?: 'transaction'; + /** An object relationship */ + block: Block; + fee: Scalars['jsonb']; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash: Scalars['String']; + height: Scalars['bigint']; + logs?: Maybe; + memo?: Maybe; + messages: Scalars['jsonb']; + raw_log?: Maybe; + signatures: Scalars['_text']; + signer_infos: Scalars['jsonb']; + success: Scalars['Boolean']; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionFeeArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionLogsArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionMessagesArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionSigner_InfosArgs = { + path?: InputMaybe; +}; + +/** order by aggregate values of table "transaction" */ +export type Transaction_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "transaction" */ +export type Transaction_Avg_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "transaction". All fields are combined with a logical 'AND'. */ +export type Transaction_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe<_Text_Comparison_Exp>; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** order by max() on columns of table "transaction" */ +export type Transaction_Max_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + raw_log?: InputMaybe; +}; + +/** order by min() on columns of table "transaction" */ +export type Transaction_Min_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + raw_log?: InputMaybe; +}; + +/** Ordering options when selecting data from "transaction". */ +export type Transaction_Order_By = { + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** select columns of table "transaction" */ +export enum Transaction_Select_Column { + /** column name */ + Fee = 'fee', + /** column name */ + GasUsed = 'gas_used', + /** column name */ + GasWanted = 'gas_wanted', + /** column name */ + Hash = 'hash', + /** column name */ + Height = 'height', + /** column name */ + Logs = 'logs', + /** column name */ + Memo = 'memo', + /** column name */ + Messages = 'messages', + /** column name */ + RawLog = 'raw_log', + /** column name */ + Signatures = 'signatures', + /** column name */ + SignerInfos = 'signer_infos', + /** column name */ + Success = 'success' +} + +/** order by stddev() on columns of table "transaction" */ +export type Transaction_Stddev_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "transaction" */ +export type Transaction_Stddev_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "transaction" */ +export type Transaction_Stddev_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by sum() on columns of table "transaction" */ +export type Transaction_Sum_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "transaction" */ +export type Transaction_Var_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "transaction" */ +export type Transaction_Var_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by variance() on columns of table "transaction" */ +export type Transaction_Variance_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "validator" */ +export type Validator = { + __typename?: 'validator'; + /** An array relationship */ + blocks: Array; + consensus_address: Scalars['String']; + consensus_pubkey: Scalars['String']; + /** An array relationship */ + double_sign_votes: Array; + /** An array relationship */ + pre_commits: Array; + /** An aggregate relationship */ + pre_commits_aggregate: Pre_Commit_Aggregate; + /** An object relationship */ + proposal_validator_status_snapshot?: Maybe; + /** An array relationship */ + proposal_validator_status_snapshots: Array; + /** An array relationship */ + validator_commissions: Array; + /** An array relationship */ + validator_descriptions: Array; + /** An object relationship */ + validator_info?: Maybe; + /** An array relationship */ + validator_infos: Array; + /** An array relationship */ + validator_signing_infos: Array; + /** An array relationship */ + validator_statuses: Array; + /** An aggregate relationship */ + validator_statuses_aggregate: Validator_Status_Aggregate; + /** An array relationship */ + validator_voting_powers: Array; + /** An aggregate relationship */ + validator_voting_powers_aggregate: Validator_Voting_Power_Aggregate; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorBlocksArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorDouble_Sign_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorProposal_Validator_Status_SnapshotsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorValidator_CommissionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorValidator_DescriptionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorValidator_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorValidator_Signing_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorValidator_StatusesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorValidator_Statuses_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator". All fields are combined with a logical 'AND'. */ +export type Validator_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + blocks?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes?: InputMaybe; + pre_commits?: InputMaybe; + proposal_validator_status_snapshot?: InputMaybe; + proposal_validator_status_snapshots?: InputMaybe; + validator_commissions?: InputMaybe; + validator_descriptions?: InputMaybe; + validator_info?: InputMaybe; + validator_infos?: InputMaybe; + validator_signing_infos?: InputMaybe; + validator_statuses?: InputMaybe; + validator_voting_powers?: InputMaybe; +}; + +/** columns and relationships of "validator_commission" */ +export type Validator_Commission = { + __typename?: 'validator_commission'; + commission: Scalars['numeric']; + height: Scalars['bigint']; + min_self_delegation: Scalars['bigint']; + /** An object relationship */ + validator: Validator; + validator_address: Scalars['String']; +}; + +/** order by aggregate values of table "validator_commission" */ +export type Validator_Commission_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "validator_commission" */ +export type Validator_Commission_Avg_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_commission". All fields are combined with a logical 'AND'. */ +export type Validator_Commission_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by max() on columns of table "validator_commission" */ +export type Validator_Commission_Max_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by min() on columns of table "validator_commission" */ +export type Validator_Commission_Min_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_commission". */ +export type Validator_Commission_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** select columns of table "validator_commission" */ +export enum Validator_Commission_Select_Column { + /** column name */ + Commission = 'commission', + /** column name */ + Height = 'height', + /** column name */ + MinSelfDelegation = 'min_self_delegation', + /** column name */ + ValidatorAddress = 'validator_address' +} + +/** order by stddev() on columns of table "validator_commission" */ +export type Validator_Commission_Stddev_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "validator_commission" */ +export type Validator_Commission_Stddev_Pop_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "validator_commission" */ +export type Validator_Commission_Stddev_Samp_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by sum() on columns of table "validator_commission" */ +export type Validator_Commission_Sum_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by var_pop() on columns of table "validator_commission" */ +export type Validator_Commission_Var_Pop_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by var_samp() on columns of table "validator_commission" */ +export type Validator_Commission_Var_Samp_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by variance() on columns of table "validator_commission" */ +export type Validator_Commission_Variance_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** columns and relationships of "validator_description" */ +export type Validator_Description = { + __typename?: 'validator_description'; + avatar_url?: Maybe; + details?: Maybe; + height: Scalars['bigint']; + identity?: Maybe; + moniker?: Maybe; + security_contact?: Maybe; + /** An object relationship */ + validator: Validator; + validator_address: Scalars['String']; + website?: Maybe; +}; + +/** order by aggregate values of table "validator_description" */ +export type Validator_Description_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "validator_description" */ +export type Validator_Description_Avg_Order_By = { + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_description". All fields are combined with a logical 'AND'. */ +export type Validator_Description_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** order by max() on columns of table "validator_description" */ +export type Validator_Description_Max_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** order by min() on columns of table "validator_description" */ +export type Validator_Description_Min_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_description". */ +export type Validator_Description_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** select columns of table "validator_description" */ +export enum Validator_Description_Select_Column { + /** column name */ + AvatarUrl = 'avatar_url', + /** column name */ + Details = 'details', + /** column name */ + Height = 'height', + /** column name */ + Identity = 'identity', + /** column name */ + Moniker = 'moniker', + /** column name */ + SecurityContact = 'security_contact', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + Website = 'website' +} + +/** order by stddev() on columns of table "validator_description" */ +export type Validator_Description_Stddev_Order_By = { + height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "validator_description" */ +export type Validator_Description_Stddev_Pop_Order_By = { + height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "validator_description" */ +export type Validator_Description_Stddev_Samp_Order_By = { + height?: InputMaybe; +}; + +/** order by sum() on columns of table "validator_description" */ +export type Validator_Description_Sum_Order_By = { + height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "validator_description" */ +export type Validator_Description_Var_Pop_Order_By = { + height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "validator_description" */ +export type Validator_Description_Var_Samp_Order_By = { + height?: InputMaybe; +}; + +/** order by variance() on columns of table "validator_description" */ +export type Validator_Description_Variance_Order_By = { + height?: InputMaybe; +}; + +/** columns and relationships of "validator_info" */ +export type Validator_Info = { + __typename?: 'validator_info'; + /** An object relationship */ + account?: Maybe; + consensus_address: Scalars['String']; + max_change_rate: Scalars['String']; + max_rate: Scalars['String']; + operator_address: Scalars['String']; + self_delegate_address?: Maybe; + /** An object relationship */ + validator: Validator; +}; + +/** order by aggregate values of table "validator_info" */ +export type Validator_Info_Aggregate_Order_By = { + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_info". All fields are combined with a logical 'AND'. */ +export type Validator_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; + validator?: InputMaybe; +}; + +/** order by max() on columns of table "validator_info" */ +export type Validator_Info_Max_Order_By = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +/** order by min() on columns of table "validator_info" */ +export type Validator_Info_Min_Order_By = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_info". */ +export type Validator_Info_Order_By = { + account?: InputMaybe; + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; + validator?: InputMaybe; +}; + +/** select columns of table "validator_info" */ +export enum Validator_Info_Select_Column { + /** column name */ + ConsensusAddress = 'consensus_address', + /** column name */ + MaxChangeRate = 'max_change_rate', + /** column name */ + MaxRate = 'max_rate', + /** column name */ + OperatorAddress = 'operator_address', + /** column name */ + SelfDelegateAddress = 'self_delegate_address' +} + +/** Ordering options when selecting data from "validator". */ +export type Validator_Order_By = { + blocks_aggregate?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes_aggregate?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_validator_status_snapshot?: InputMaybe; + proposal_validator_status_snapshots_aggregate?: InputMaybe; + validator_commissions_aggregate?: InputMaybe; + validator_descriptions_aggregate?: InputMaybe; + validator_info?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + validator_signing_infos_aggregate?: InputMaybe; + validator_statuses_aggregate?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** select columns of table "validator" */ +export enum Validator_Select_Column { + /** column name */ + ConsensusAddress = 'consensus_address', + /** column name */ + ConsensusPubkey = 'consensus_pubkey' +} + +/** columns and relationships of "validator_signing_info" */ +export type Validator_Signing_Info = { + __typename?: 'validator_signing_info'; + height: Scalars['bigint']; + index_offset: Scalars['bigint']; + jailed_until: Scalars['timestamp']; + missed_blocks_counter: Scalars['bigint']; + start_height: Scalars['bigint']; + tombstoned: Scalars['Boolean']; + validator_address: Scalars['String']; +}; + +/** order by aggregate values of table "validator_signing_info" */ +export type Validator_Signing_Info_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Avg_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_signing_info". All fields are combined with a logical 'AND'. */ +export type Validator_Signing_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by max() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Max_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by min() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Min_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_signing_info". */ +export type Validator_Signing_Info_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** select columns of table "validator_signing_info" */ +export enum Validator_Signing_Info_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + IndexOffset = 'index_offset', + /** column name */ + JailedUntil = 'jailed_until', + /** column name */ + MissedBlocksCounter = 'missed_blocks_counter', + /** column name */ + StartHeight = 'start_height', + /** column name */ + Tombstoned = 'tombstoned', + /** column name */ + ValidatorAddress = 'validator_address' +} + +/** order by stddev() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Stddev_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Stddev_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Stddev_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by sum() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Sum_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Var_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Var_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by variance() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Variance_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** columns and relationships of "validator_status" */ +export type Validator_Status = { + __typename?: 'validator_status'; + height: Scalars['bigint']; + jailed: Scalars['Boolean']; + status: Scalars['Int']; + /** An object relationship */ + validator: Validator; + validator_address: Scalars['String']; +}; + +/** aggregated selection of "validator_status" */ +export type Validator_Status_Aggregate = { + __typename?: 'validator_status_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "validator_status" */ +export type Validator_Status_Aggregate_Fields = { + __typename?: 'validator_status_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 "validator_status" */ +export type Validator_Status_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "validator_status" */ +export type Validator_Status_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Validator_Status_Avg_Fields = { + __typename?: 'validator_status_avg_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by avg() on columns of table "validator_status" */ +export type Validator_Status_Avg_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_status". All fields are combined with a logical 'AND'. */ +export type Validator_Status_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Validator_Status_Max_Fields = { + __typename?: 'validator_status_max_fields'; + height?: Maybe; + status?: Maybe; + validator_address?: Maybe; +}; + +/** order by max() on columns of table "validator_status" */ +export type Validator_Status_Max_Order_By = { + height?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Validator_Status_Min_Fields = { + __typename?: 'validator_status_min_fields'; + height?: Maybe; + status?: Maybe; + validator_address?: Maybe; +}; + +/** order by min() on columns of table "validator_status" */ +export type Validator_Status_Min_Order_By = { + height?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_status". */ +export type Validator_Status_Order_By = { + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** select columns of table "validator_status" */ +export enum Validator_Status_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Jailed = 'jailed', + /** column name */ + Status = 'status', + /** column name */ + ValidatorAddress = 'validator_address' +} + +/** aggregate stddev on columns */ +export type Validator_Status_Stddev_Fields = { + __typename?: 'validator_status_stddev_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by stddev() on columns of table "validator_status" */ +export type Validator_Status_Stddev_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Validator_Status_Stddev_Pop_Fields = { + __typename?: 'validator_status_stddev_pop_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by stddev_pop() on columns of table "validator_status" */ +export type Validator_Status_Stddev_Pop_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Validator_Status_Stddev_Samp_Fields = { + __typename?: 'validator_status_stddev_samp_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by stddev_samp() on columns of table "validator_status" */ +export type Validator_Status_Stddev_Samp_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Validator_Status_Sum_Fields = { + __typename?: 'validator_status_sum_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by sum() on columns of table "validator_status" */ +export type Validator_Status_Sum_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Validator_Status_Var_Pop_Fields = { + __typename?: 'validator_status_var_pop_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by var_pop() on columns of table "validator_status" */ +export type Validator_Status_Var_Pop_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Validator_Status_Var_Samp_Fields = { + __typename?: 'validator_status_var_samp_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by var_samp() on columns of table "validator_status" */ +export type Validator_Status_Var_Samp_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Validator_Status_Variance_Fields = { + __typename?: 'validator_status_variance_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by variance() on columns of table "validator_status" */ +export type Validator_Status_Variance_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** columns and relationships of "validator_voting_power" */ +export type Validator_Voting_Power = { + __typename?: 'validator_voting_power'; + /** An object relationship */ + block: Block; + height: Scalars['bigint']; + /** An object relationship */ + validator: Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** aggregated selection of "validator_voting_power" */ +export type Validator_Voting_Power_Aggregate = { + __typename?: 'validator_voting_power_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "validator_voting_power" */ +export type Validator_Voting_Power_Aggregate_Fields = { + __typename?: 'validator_voting_power_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 "validator_voting_power" */ +export type Validator_Voting_Power_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "validator_voting_power" */ +export type Validator_Voting_Power_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Validator_Voting_Power_Avg_Fields = { + __typename?: 'validator_voting_power_avg_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by avg() on columns of table "validator_voting_power" */ +export type Validator_Voting_Power_Avg_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_voting_power". All fields are combined with a logical 'AND'. */ +export type Validator_Voting_Power_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + height?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Validator_Voting_Power_Max_Fields = { + __typename?: 'validator_voting_power_max_fields'; + height?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by max() on columns of table "validator_voting_power" */ +export type Validator_Voting_Power_Max_Order_By = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Validator_Voting_Power_Min_Fields = { + __typename?: 'validator_voting_power_min_fields'; + height?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by min() on columns of table "validator_voting_power" */ +export type Validator_Voting_Power_Min_Order_By = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_voting_power". */ +export type Validator_Voting_Power_Order_By = { + block?: InputMaybe; + height?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "validator_voting_power" */ +export enum Validator_Voting_Power_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** aggregate stddev on columns */ +export type Validator_Voting_Power_Stddev_Fields = { + __typename?: 'validator_voting_power_stddev_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev() on columns of table "validator_voting_power" */ +export type Validator_Voting_Power_Stddev_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Validator_Voting_Power_Stddev_Pop_Fields = { + __typename?: 'validator_voting_power_stddev_pop_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_pop() on columns of table "validator_voting_power" */ +export type Validator_Voting_Power_Stddev_Pop_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Validator_Voting_Power_Stddev_Samp_Fields = { + __typename?: 'validator_voting_power_stddev_samp_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_samp() on columns of table "validator_voting_power" */ +export type Validator_Voting_Power_Stddev_Samp_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Validator_Voting_Power_Sum_Fields = { + __typename?: 'validator_voting_power_sum_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by sum() on columns of table "validator_voting_power" */ +export type Validator_Voting_Power_Sum_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Validator_Voting_Power_Var_Pop_Fields = { + __typename?: 'validator_voting_power_var_pop_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_pop() on columns of table "validator_voting_power" */ +export type Validator_Voting_Power_Var_Pop_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Validator_Voting_Power_Var_Samp_Fields = { + __typename?: 'validator_voting_power_var_samp_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_samp() on columns of table "validator_voting_power" */ +export type Validator_Voting_Power_Var_Samp_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Validator_Voting_Power_Variance_Fields = { + __typename?: 'validator_voting_power_variance_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by variance() on columns of table "validator_voting_power" */ +export type Validator_Voting_Power_Variance_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** columns and relationships of "vesting_account" */ +export type Vesting_Account = { + __typename?: 'vesting_account'; + /** An object relationship */ + account: Account; + address: Scalars['String']; + end_time: Scalars['timestamp']; + original_vesting: Scalars['_coin']; + start_time?: Maybe; + type: Scalars['String']; + /** An array relationship */ + vesting_periods: Array; +}; + + +/** columns and relationships of "vesting_account" */ +export type Vesting_AccountVesting_PeriodsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "vesting_account" */ +export type Vesting_Account_Aggregate_Order_By = { + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "vesting_account". All fields are combined with a logical 'AND'. */ +export type Vesting_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe<_Coin_Comparison_Exp>; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods?: InputMaybe; +}; + +/** order by max() on columns of table "vesting_account" */ +export type Vesting_Account_Max_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +/** order by min() on columns of table "vesting_account" */ +export type Vesting_Account_Min_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +/** Ordering options when selecting data from "vesting_account". */ +export type Vesting_Account_Order_By = { + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods_aggregate?: InputMaybe; +}; + +/** select columns of table "vesting_account" */ +export enum Vesting_Account_Select_Column { + /** column name */ + Address = 'address', + /** column name */ + EndTime = 'end_time', + /** column name */ + OriginalVesting = 'original_vesting', + /** column name */ + StartTime = 'start_time', + /** column name */ + Type = 'type' +} + +/** columns and relationships of "vesting_period" */ +export type Vesting_Period = { + __typename?: 'vesting_period'; + amount: Scalars['_coin']; + length: Scalars['bigint']; + period_order: Scalars['bigint']; + /** An object relationship */ + vesting_account: Vesting_Account; +}; + +/** order by aggregate values of table "vesting_period" */ +export type Vesting_Period_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "vesting_period" */ +export type Vesting_Period_Avg_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "vesting_period". All fields are combined with a logical 'AND'. */ +export type Vesting_Period_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe<_Coin_Comparison_Exp>; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; +}; + +/** order by max() on columns of table "vesting_period" */ +export type Vesting_Period_Max_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by min() on columns of table "vesting_period" */ +export type Vesting_Period_Min_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** Ordering options when selecting data from "vesting_period". */ +export type Vesting_Period_Order_By = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; +}; + +/** select columns of table "vesting_period" */ +export enum Vesting_Period_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + Length = 'length', + /** column name */ + PeriodOrder = 'period_order' +} + +/** order by stddev() on columns of table "vesting_period" */ +export type Vesting_Period_Stddev_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "vesting_period" */ +export type Vesting_Period_Stddev_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "vesting_period" */ +export type Vesting_Period_Stddev_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by sum() on columns of table "vesting_period" */ +export type Vesting_Period_Sum_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by var_pop() on columns of table "vesting_period" */ +export type Vesting_Period_Var_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by var_samp() on columns of table "vesting_period" */ +export type Vesting_Period_Var_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by variance() on columns of table "vesting_period" */ +export type Vesting_Period_Variance_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** columns and relationships of "wasm_code" */ +export type Wasm_Code = { + __typename?: 'wasm_code'; + byte_code: Scalars['bytea']; + code_id: Scalars['bigint']; + height: Scalars['bigint']; + instantiate_permission?: Maybe; + sender?: Maybe; + /** An array relationship */ + wasm_contracts: Array; + /** An aggregate relationship */ + wasm_contracts_aggregate: Wasm_Contract_Aggregate; +}; + + +/** columns and relationships of "wasm_code" */ +export type Wasm_CodeWasm_ContractsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "wasm_code" */ +export type Wasm_CodeWasm_Contracts_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** aggregated selection of "wasm_code" */ +export type Wasm_Code_Aggregate = { + __typename?: 'wasm_code_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "wasm_code" */ +export type Wasm_Code_Aggregate_Fields = { + __typename?: 'wasm_code_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 "wasm_code" */ +export type Wasm_Code_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Code_Avg_Fields = { + __typename?: 'wasm_code_avg_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** Boolean expression to filter rows from the table "wasm_code". All fields are combined with a logical 'AND'. */ +export type Wasm_Code_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + byte_code?: InputMaybe; + code_id?: InputMaybe; + height?: InputMaybe; + instantiate_permission?: InputMaybe; + sender?: InputMaybe; + wasm_contracts?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Code_Max_Fields = { + __typename?: 'wasm_code_max_fields'; + code_id?: Maybe; + height?: Maybe; + sender?: Maybe; +}; + +/** aggregate min on columns */ +export type Wasm_Code_Min_Fields = { + __typename?: 'wasm_code_min_fields'; + code_id?: Maybe; + height?: Maybe; + sender?: Maybe; +}; + +/** Ordering options when selecting data from "wasm_code". */ +export type Wasm_Code_Order_By = { + byte_code?: InputMaybe; + code_id?: InputMaybe; + height?: InputMaybe; + instantiate_permission?: InputMaybe; + sender?: InputMaybe; + wasm_contracts_aggregate?: InputMaybe; +}; + +/** select columns of table "wasm_code" */ +export enum Wasm_Code_Select_Column { + /** column name */ + ByteCode = 'byte_code', + /** column name */ + CodeId = 'code_id', + /** column name */ + Height = 'height', + /** column name */ + InstantiatePermission = 'instantiate_permission', + /** column name */ + Sender = 'sender' +} + +/** aggregate stddev on columns */ +export type Wasm_Code_Stddev_Fields = { + __typename?: 'wasm_code_stddev_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Wasm_Code_Stddev_Pop_Fields = { + __typename?: 'wasm_code_stddev_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Wasm_Code_Stddev_Samp_Fields = { + __typename?: 'wasm_code_stddev_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate sum on columns */ +export type Wasm_Code_Sum_Fields = { + __typename?: 'wasm_code_sum_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Wasm_Code_Var_Pop_Fields = { + __typename?: 'wasm_code_var_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Wasm_Code_Var_Samp_Fields = { + __typename?: 'wasm_code_var_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate variance on columns */ +export type Wasm_Code_Variance_Fields = { + __typename?: 'wasm_code_variance_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** columns and relationships of "wasm_contract" */ +export type Wasm_Contract = { + __typename?: 'wasm_contract'; + admin?: Maybe; + code_id: Scalars['bigint']; + contract_address: Scalars['String']; + contract_info_extension?: Maybe; + contract_states: Scalars['jsonb']; + creator: Scalars['String']; + data?: Maybe; + funds: Scalars['_coin']; + height: Scalars['bigint']; + instantiated_at: Scalars['timestamp']; + label?: Maybe; + raw_contract_message: Scalars['jsonb']; + sender?: Maybe; + /** An object relationship */ + wasm_code: Wasm_Code; + /** An array relationship */ + wasm_execute_contracts: Array; + /** An aggregate relationship */ + wasm_execute_contracts_aggregate: Wasm_Execute_Contract_Aggregate; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractContract_StatesArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractRaw_Contract_MessageArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractWasm_Execute_ContractsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractWasm_Execute_Contracts_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** aggregated selection of "wasm_contract" */ +export type Wasm_Contract_Aggregate = { + __typename?: 'wasm_contract_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "wasm_contract" */ +export type Wasm_Contract_Aggregate_Fields = { + __typename?: 'wasm_contract_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 "wasm_contract" */ +export type Wasm_Contract_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "wasm_contract" */ +export type Wasm_Contract_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Contract_Avg_Fields = { + __typename?: 'wasm_contract_avg_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by avg() on columns of table "wasm_contract" */ +export type Wasm_Contract_Avg_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "wasm_contract". All fields are combined with a logical 'AND'. */ +export type Wasm_Contract_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + contract_states?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + funds?: InputMaybe<_Coin_Comparison_Exp>; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_code?: InputMaybe; + wasm_execute_contracts?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Contract_Max_Fields = { + __typename?: 'wasm_contract_max_fields'; + admin?: Maybe; + code_id?: Maybe; + contract_address?: Maybe; + contract_info_extension?: Maybe; + creator?: Maybe; + data?: Maybe; + height?: Maybe; + instantiated_at?: Maybe; + label?: Maybe; + sender?: Maybe; +}; + +/** order by max() on columns of table "wasm_contract" */ +export type Wasm_Contract_Max_Order_By = { + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + sender?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Wasm_Contract_Min_Fields = { + __typename?: 'wasm_contract_min_fields'; + admin?: Maybe; + code_id?: Maybe; + contract_address?: Maybe; + contract_info_extension?: Maybe; + creator?: Maybe; + data?: Maybe; + height?: Maybe; + instantiated_at?: Maybe; + label?: Maybe; + sender?: Maybe; +}; + +/** order by min() on columns of table "wasm_contract" */ +export type Wasm_Contract_Min_Order_By = { + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + sender?: InputMaybe; +}; + +/** Ordering options when selecting data from "wasm_contract". */ +export type Wasm_Contract_Order_By = { + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + contract_states?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + funds?: InputMaybe; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_code?: InputMaybe; + wasm_execute_contracts_aggregate?: InputMaybe; +}; + +/** select columns of table "wasm_contract" */ +export enum Wasm_Contract_Select_Column { + /** column name */ + Admin = 'admin', + /** column name */ + CodeId = 'code_id', + /** column name */ + ContractAddress = 'contract_address', + /** column name */ + ContractInfoExtension = 'contract_info_extension', + /** column name */ + ContractStates = 'contract_states', + /** column name */ + Creator = 'creator', + /** column name */ + Data = 'data', + /** column name */ + Funds = 'funds', + /** column name */ + Height = 'height', + /** column name */ + InstantiatedAt = 'instantiated_at', + /** column name */ + Label = 'label', + /** column name */ + RawContractMessage = 'raw_contract_message', + /** column name */ + Sender = 'sender' +} + +/** aggregate stddev on columns */ +export type Wasm_Contract_Stddev_Fields = { + __typename?: 'wasm_contract_stddev_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by stddev() on columns of table "wasm_contract" */ +export type Wasm_Contract_Stddev_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Wasm_Contract_Stddev_Pop_Fields = { + __typename?: 'wasm_contract_stddev_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by stddev_pop() on columns of table "wasm_contract" */ +export type Wasm_Contract_Stddev_Pop_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Wasm_Contract_Stddev_Samp_Fields = { + __typename?: 'wasm_contract_stddev_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by stddev_samp() on columns of table "wasm_contract" */ +export type Wasm_Contract_Stddev_Samp_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Wasm_Contract_Sum_Fields = { + __typename?: 'wasm_contract_sum_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by sum() on columns of table "wasm_contract" */ +export type Wasm_Contract_Sum_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Wasm_Contract_Var_Pop_Fields = { + __typename?: 'wasm_contract_var_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by var_pop() on columns of table "wasm_contract" */ +export type Wasm_Contract_Var_Pop_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Wasm_Contract_Var_Samp_Fields = { + __typename?: 'wasm_contract_var_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by var_samp() on columns of table "wasm_contract" */ +export type Wasm_Contract_Var_Samp_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Wasm_Contract_Variance_Fields = { + __typename?: 'wasm_contract_variance_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by variance() on columns of table "wasm_contract" */ +export type Wasm_Contract_Variance_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "wasm_execute_contract" */ +export type Wasm_Execute_Contract = { + __typename?: 'wasm_execute_contract'; + contract_address: Scalars['String']; + data?: Maybe; + executed_at: Scalars['timestamp']; + funds: Scalars['_coin']; + height: Scalars['bigint']; + raw_contract_message: Scalars['jsonb']; + sender: Scalars['String']; + /** An object relationship */ + wasm_contract: Wasm_Contract; +}; + + +/** columns and relationships of "wasm_execute_contract" */ +export type Wasm_Execute_ContractRaw_Contract_MessageArgs = { + path?: InputMaybe; +}; + +/** aggregated selection of "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate = { + __typename?: 'wasm_execute_contract_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate_Fields = { + __typename?: 'wasm_execute_contract_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 "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Execute_Contract_Avg_Fields = { + __typename?: 'wasm_execute_contract_avg_fields'; + height?: Maybe; +}; + +/** order by avg() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Avg_Order_By = { + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "wasm_execute_contract". All fields are combined with a logical 'AND'. */ +export type Wasm_Execute_Contract_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + funds?: InputMaybe<_Coin_Comparison_Exp>; + height?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_contract?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Execute_Contract_Max_Fields = { + __typename?: 'wasm_execute_contract_max_fields'; + contract_address?: Maybe; + data?: Maybe; + executed_at?: Maybe; + height?: Maybe; + sender?: Maybe; +}; + +/** order by max() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Max_Order_By = { + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + height?: InputMaybe; + sender?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Wasm_Execute_Contract_Min_Fields = { + __typename?: 'wasm_execute_contract_min_fields'; + contract_address?: Maybe; + data?: Maybe; + executed_at?: Maybe; + height?: Maybe; + sender?: Maybe; +}; + +/** order by min() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Min_Order_By = { + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + height?: InputMaybe; + sender?: InputMaybe; +}; + +/** Ordering options when selecting data from "wasm_execute_contract". */ +export type Wasm_Execute_Contract_Order_By = { + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + funds?: InputMaybe; + height?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_contract?: InputMaybe; +}; + +/** select columns of table "wasm_execute_contract" */ +export enum Wasm_Execute_Contract_Select_Column { + /** column name */ + ContractAddress = 'contract_address', + /** column name */ + Data = 'data', + /** column name */ + ExecutedAt = 'executed_at', + /** column name */ + Funds = 'funds', + /** column name */ + Height = 'height', + /** column name */ + RawContractMessage = 'raw_contract_message', + /** column name */ + Sender = 'sender' +} + +/** aggregate stddev on columns */ +export type Wasm_Execute_Contract_Stddev_Fields = { + __typename?: 'wasm_execute_contract_stddev_fields'; + height?: Maybe; +}; + +/** order by stddev() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Stddev_Order_By = { + height?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Wasm_Execute_Contract_Stddev_Pop_Fields = { + __typename?: 'wasm_execute_contract_stddev_pop_fields'; + height?: Maybe; +}; + +/** order by stddev_pop() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Stddev_Pop_Order_By = { + height?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Wasm_Execute_Contract_Stddev_Samp_Fields = { + __typename?: 'wasm_execute_contract_stddev_samp_fields'; + height?: Maybe; +}; + +/** order by stddev_samp() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Stddev_Samp_Order_By = { + height?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Wasm_Execute_Contract_Sum_Fields = { + __typename?: 'wasm_execute_contract_sum_fields'; + height?: Maybe; +}; + +/** order by sum() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Sum_Order_By = { + height?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Wasm_Execute_Contract_Var_Pop_Fields = { + __typename?: 'wasm_execute_contract_var_pop_fields'; + height?: Maybe; +}; + +/** order by var_pop() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Var_Pop_Order_By = { + height?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Wasm_Execute_Contract_Var_Samp_Fields = { + __typename?: 'wasm_execute_contract_var_samp_fields'; + height?: Maybe; +}; + +/** order by var_samp() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Var_Samp_Order_By = { + height?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Wasm_Execute_Contract_Variance_Fields = { + __typename?: 'wasm_execute_contract_variance_fields'; + height?: Maybe; +}; + +/** order by variance() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Variance_Order_By = { + height?: InputMaybe; +}; + +/** columns and relationships of "wasm_params" */ +export type Wasm_Params = { + __typename?: 'wasm_params'; + code_upload_access: Scalars['access_config']; + height: Scalars['bigint']; + instantiate_default_permission: Scalars['Int']; + one_row_id: Scalars['Boolean']; +}; + +/** aggregated selection of "wasm_params" */ +export type Wasm_Params_Aggregate = { + __typename?: 'wasm_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "wasm_params" */ +export type Wasm_Params_Aggregate_Fields = { + __typename?: 'wasm_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 "wasm_params" */ +export type Wasm_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Params_Avg_Fields = { + __typename?: 'wasm_params_avg_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** Boolean expression to filter rows from the table "wasm_params". All fields are combined with a logical 'AND'. */ +export type Wasm_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + code_upload_access?: InputMaybe; + height?: InputMaybe; + instantiate_default_permission?: InputMaybe; + one_row_id?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Params_Max_Fields = { + __typename?: 'wasm_params_max_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate min on columns */ +export type Wasm_Params_Min_Fields = { + __typename?: 'wasm_params_min_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** Ordering options when selecting data from "wasm_params". */ +export type Wasm_Params_Order_By = { + code_upload_access?: InputMaybe; + height?: InputMaybe; + instantiate_default_permission?: InputMaybe; + one_row_id?: InputMaybe; +}; + +/** select columns of table "wasm_params" */ +export enum Wasm_Params_Select_Column { + /** column name */ + CodeUploadAccess = 'code_upload_access', + /** column name */ + Height = 'height', + /** column name */ + InstantiateDefaultPermission = 'instantiate_default_permission', + /** column name */ + OneRowId = 'one_row_id' +} + +/** aggregate stddev on columns */ +export type Wasm_Params_Stddev_Fields = { + __typename?: 'wasm_params_stddev_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Wasm_Params_Stddev_Pop_Fields = { + __typename?: 'wasm_params_stddev_pop_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Wasm_Params_Stddev_Samp_Fields = { + __typename?: 'wasm_params_stddev_samp_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate sum on columns */ +export type Wasm_Params_Sum_Fields = { + __typename?: 'wasm_params_sum_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Wasm_Params_Var_Pop_Fields = { + __typename?: 'wasm_params_var_pop_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Wasm_Params_Var_Samp_Fields = { + __typename?: 'wasm_params_var_samp_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate variance on columns */ +export type Wasm_Params_Variance_Fields = { + __typename?: 'wasm_params_variance_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +export type AccountCommissionQueryVariables = Exact<{ + validatorAddress: Scalars['String']; +}>; + + +export type AccountCommissionQuery = { commission?: { __typename?: 'ActionValidatorCommissionAmount', coins?: Array | null } | null }; + +export type AccountWithdrawalAddressQueryVariables = Exact<{ + address: Scalars['String']; +}>; + + +export type AccountWithdrawalAddressQuery = { withdrawalAddress: { __typename?: 'ActionAddress', address: string } }; + +export type AccountBalancesQueryVariables = Exact<{ + address: Scalars['String']; +}>; + + +export type AccountBalancesQuery = { accountBalances?: { __typename?: 'ActionBalance', coins?: Array | null } | null }; + +export type AccountDelegationBalanceQueryVariables = Exact<{ + address: Scalars['String']; +}>; + + +export type AccountDelegationBalanceQuery = { delegationBalance?: { __typename?: 'ActionBalance', coins?: Array | null } | null }; + +export type AccountUnbondingBalanceQueryVariables = Exact<{ + address: Scalars['String']; +}>; + + +export type AccountUnbondingBalanceQuery = { unbondingBalance?: { __typename?: 'ActionBalance', coins?: Array | null } | null }; + +export type AccountDelegationRewardsQueryVariables = Exact<{ + address: Scalars['String']; +}>; + + +export type AccountDelegationRewardsQuery = { delegationRewards?: Array<{ __typename?: 'ActionDelegationReward', coins?: Array | null, validatorAddress: string } | null> | null }; + +export type AccountDelegationsQueryVariables = Exact<{ + address: Scalars['String']; + offset?: InputMaybe; + limit?: InputMaybe; + pagination?: Scalars['Boolean']; +}>; + + +export type AccountDelegationsQuery = { delegations?: { __typename?: 'ActionDelegationResponse', delegations?: Array | null, pagination?: any | null } | null }; + +export type AccountRedelegationsQueryVariables = Exact<{ + address: Scalars['String']; + offset?: InputMaybe; + limit?: InputMaybe; + pagination?: Scalars['Boolean']; +}>; + + +export type AccountRedelegationsQuery = { redelegations?: { __typename?: 'ActionRedelegationResponse', redelegations?: Array | null, pagination?: any | null } | null }; + +export type AccountUndelegationsQueryVariables = Exact<{ + address: Scalars['String']; + offset?: InputMaybe; + limit?: InputMaybe; + pagination?: Scalars['Boolean']; +}>; + + +export type AccountUndelegationsQuery = { undelegations?: { __typename?: 'ActionUnbondingDelegationResponse', pagination?: any | null, undelegations?: Array | null } | null }; + +export type ActiveValidatorCountQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ActiveValidatorCountQuery = { activeTotal: { __typename?: 'validator_status_aggregate', aggregate?: { __typename?: 'validator_status_aggregate_fields', count: number } | null }, inactiveTotal: { __typename?: 'validator_status_aggregate', aggregate?: { __typename?: 'validator_status_aggregate_fields', count: number } | null }, total: { __typename?: 'validator_status_aggregate', aggregate?: { __typename?: 'validator_status_aggregate_fields', count: number } | null } }; + +export type BlockDetailsQueryVariables = Exact<{ + height?: InputMaybe; + signatureHeight?: InputMaybe; +}>; + + +export type BlockDetailsQuery = { transaction: Array<{ __typename?: 'transaction', height: any, hash: string, messages: any, success: boolean, logs?: any | null }>, block: Array<{ __typename?: 'block', height: any, hash: string, timestamp: any, txs?: number | null, validator?: { __typename?: 'validator', validatorInfo?: { __typename?: 'validator_info', operatorAddress: string } | null } | null }>, preCommitsAggregate: { __typename?: 'pre_commit_aggregate', aggregate?: { __typename?: 'pre_commit_aggregate_fields', sum?: { __typename?: 'pre_commit_sum_fields', votingPower?: any | null } | null } | null }, preCommits: Array<{ __typename?: 'pre_commit', validator: { __typename?: 'validator', validatorInfo?: { __typename?: 'validator_info', operatorAddress: string } | null } }> }; + +export type LatestBlockHeightListenerSubscriptionVariables = Exact<{ + offset?: InputMaybe; +}>; + + +export type LatestBlockHeightListenerSubscription = { height: Array<{ __typename?: 'block', height: any }> }; + +export type AverageBlockTimeQueryVariables = Exact<{ [key: string]: never; }>; + + +export type AverageBlockTimeQuery = { averageBlockTime: Array<{ __typename?: 'average_block_time_per_hour', averageTime: any }> }; + +export type LatestBlockTimestampQueryVariables = Exact<{ + offset?: InputMaybe; +}>; + + +export type LatestBlockTimestampQuery = { block: Array<{ __typename?: 'block', timestamp: any }> }; + +export type BlocksListenerSubscriptionVariables = Exact<{ + limit?: InputMaybe; + offset?: InputMaybe; +}>; + + +export type BlocksListenerSubscription = { blocks: Array<{ __typename?: 'block', height: any, hash: string, timestamp: any, txs?: number | null, validator?: { __typename?: 'validator', validatorInfo?: { __typename?: 'validator_info', operatorAddress: string } | null } | null }> }; + +export type BlocksQueryVariables = Exact<{ + limit?: InputMaybe; + offset?: InputMaybe; +}>; + + +export type BlocksQuery = { blocks: Array<{ __typename?: 'block', height: any, hash: string, timestamp: any, txs?: number | null, validator?: { __typename?: 'validator', validatorInfo?: { __typename?: 'validator_info', self_delegate_address?: string | null, operatorAddress: string } | null, validatorDescriptions: Array<{ __typename?: 'validator_description', moniker?: string | null, identity?: string | null }> } | null }> }; + +export type ChainIdQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ChainIdQuery = { genesis: Array<{ __typename?: 'genesis', time: any, chainId: string }> }; + +export type MarketDataQueryVariables = Exact<{ + denom?: InputMaybe; +}>; + + +export type MarketDataQuery = { communityPool: Array<{ __typename?: 'community_pool', coins: any }>, inflation: Array<{ __typename?: 'inflation', value: any }>, tokenPrice: Array<{ __typename?: 'token_price', price: any, marketCap: any }>, supply: Array<{ __typename?: 'supply', coins: any }>, bondedTokens: Array<{ __typename?: 'staking_pool', bonded_tokens: string }>, distributionParams: Array<{ __typename?: 'distribution_params', params: any }> }; + +export type GetMessagesByAddressQueryVariables = Exact<{ + address?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; + types?: InputMaybe; +}>; + + +export type GetMessagesByAddressQuery = { messagesByAddress: Array<{ __typename?: 'message', transaction?: { __typename?: 'transaction', height: any, hash: string, success: boolean, messages: any, logs?: any | null, block: { __typename?: 'block', height: any, timestamp: any } } | null }> }; + +export type OnlineVotingPowerQueryVariables = Exact<{ [key: string]: never; }>; + + +export type OnlineVotingPowerQuery = { activeTotal: { __typename?: 'validator_status_aggregate', aggregate?: { __typename?: 'validator_status_aggregate_fields', count: number } | null }, validatorVotingPowerAggregate: { __typename?: 'validator_voting_power_aggregate', aggregate?: { __typename?: 'validator_voting_power_aggregate_fields', sum?: { __typename?: 'validator_voting_power_sum_fields', votingPower?: any | null } | null } | null }, stakingPool: Array<{ __typename?: 'staking_pool', bonded: string }>, stakingParams: Array<{ __typename?: 'staking_params', params: any }> }; + +export type ParamsQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ParamsQuery = { stakingParams: Array<{ __typename?: 'staking_params', params: any }>, slashingParams: Array<{ __typename?: 'slashing_params', params: any }>, mintParams: Array<{ __typename?: 'mint_params', params: any }>, distributionParams: Array<{ __typename?: 'distribution_params', params: any }>, govParams: Array<{ __typename?: 'gov_params', depositParams: any, tallyParams: any, votingParams: any }> }; + +export type ProposalDetailsQueryVariables = Exact<{ + proposalId?: InputMaybe; +}>; + + +export type ProposalDetailsQuery = { proposal: Array<{ __typename?: 'proposal', title: string, description: string, status?: string | null, content: any, proposer: string, proposalId: number, submitTime: any, proposalType: string, depositEndTime?: any | null, votingStartTime?: any | null, votingEndTime?: any | null }> }; + +export type ProposalDetailsTallyQueryVariables = Exact<{ + proposalId?: InputMaybe; +}>; + + +export type ProposalDetailsTallyQuery = { proposalTallyResult: Array<{ __typename?: 'proposal_tally_result', yes: string, no: string, abstain: string, noWithVeto: string }>, stakingPool: Array<{ __typename?: 'proposal_staking_pool_snapshot', bondedTokens: string }>, quorum: Array<{ __typename?: 'gov_params', tallyParams: any }> }; + +export type ProposalDetailsDepositsQueryVariables = Exact<{ + proposalId?: InputMaybe; +}>; + + +export type ProposalDetailsDepositsQuery = { proposalDeposit: Array<{ __typename?: 'proposal_deposit', amount?: any | null, depositorAddress?: string | null, block?: { __typename?: 'block', timestamp: any } | null }> }; + +export type ProposalDetailsVotesQueryVariables = Exact<{ + proposalId?: InputMaybe; +}>; + + +export type ProposalDetailsVotesQuery = { proposalVote: Array<{ __typename?: 'proposal_vote', option: string, voterAddress: string }>, validatorStatuses: Array<{ __typename?: 'proposal_validator_status_snapshot', validator: { __typename?: 'validator', validatorInfo?: { __typename?: 'validator_info', selfDelegateAddress?: string | null } | null } }> }; + +export type ProposalsQueryVariables = Exact<{ + limit?: InputMaybe; + offset?: InputMaybe; +}>; + + +export type ProposalsQuery = { proposals: Array<{ __typename?: 'proposal', title: string, status?: string | null, description: string, proposalId: number }>, total: { __typename?: 'proposal_aggregate', aggregate?: { __typename?: 'proposal_aggregate_fields', count: number } | null } }; + +export type TokenPriceListenerSubscriptionVariables = Exact<{ + denom?: InputMaybe; +}>; + + +export type TokenPriceListenerSubscription = { tokenPrice: Array<{ __typename?: 'token_price', price: any, timestamp: any, marketCap: any, unitName: string }> }; + +export type TokenPriceHistoryQueryVariables = Exact<{ + denom?: InputMaybe; + limit?: InputMaybe; +}>; + + +export type TokenPriceHistoryQuery = { tokenPrice: Array<{ __typename?: 'token_price_history', price: any, timestamp: any }> }; + +export type TokenomicsQueryVariables = Exact<{ [key: string]: never; }>; + + +export type TokenomicsQuery = { stakingParams: Array<{ __typename?: 'staking_params', params: any }>, stakingPool: Array<{ __typename?: 'staking_pool', bonded: string, unbonded: string }>, supply: Array<{ __typename?: 'supply', coins: any }> }; + +export type TransactionDetailsQueryVariables = Exact<{ + hash?: InputMaybe; +}>; + + +export type TransactionDetailsQuery = { transaction: Array<{ __typename?: 'transaction', logs?: any | null, hash: string, height: any, fee: any, gasUsed?: any | null, gasWanted?: any | null, success: boolean, memo?: string | null, messages: any, rawLog?: string | null, block: { __typename?: 'block', timestamp: any } }> }; + +export type TransactionsListenerSubscriptionVariables = Exact<{ + limit?: InputMaybe; + offset?: InputMaybe; +}>; + + +export type TransactionsListenerSubscription = { transactions: Array<{ __typename?: 'transaction', height: any, hash: string, success: boolean, messages: any, logs?: any | null, block: { __typename?: 'block', timestamp: any } }> }; + +export type TransactionsQueryVariables = Exact<{ + limit?: InputMaybe; + offset?: InputMaybe; +}>; + + +export type TransactionsQuery = { transactions: Array<{ __typename?: 'transaction', height: any, hash: string, success: boolean, messages: any, logs?: any | null, block: { __typename?: 'block', timestamp: any } }> }; + +export type LastHundredBlocksSubscriptionVariables = Exact<{ + address?: InputMaybe; +}>; + + +export type LastHundredBlocksSubscription = { block: Array<{ __typename?: 'block', height: any, validator?: { __typename?: 'validator', validatorInfo?: { __typename?: 'validator_info', operatorAddress: string } | null } | null, transactions: Array<{ __typename?: 'transaction', hash: string }>, precommits: Array<{ __typename?: 'pre_commit', validatorAddress: string }> }> }; + +export type ValidatorLastSeenListenerSubscriptionVariables = Exact<{ + address?: InputMaybe; +}>; + + +export type ValidatorLastSeenListenerSubscription = { preCommit: Array<{ __typename?: 'pre_commit', height: any, timestamp: any }> }; + +export type ValidatorDetailsQueryVariables = Exact<{ + address?: InputMaybe; +}>; + + +export type ValidatorDetailsQuery = { stakingPool: Array<{ __typename?: 'staking_pool', height: any, bonded: string }>, validator: Array<{ __typename?: 'validator', validatorDescriptions: Array<{ __typename?: 'validator_description', details?: string | null, website?: string | null }>, validatorStatuses: Array<{ __typename?: 'validator_status', status: number, jailed: boolean, height: any }>, validatorSigningInfos: Array<{ __typename?: 'validator_signing_info', tombstoned: boolean, missedBlocksCounter: any }>, validatorInfo?: { __typename?: 'validator_info', operatorAddress: string, selfDelegateAddress?: string | null, maxRate: string } | null, validatorCommissions: Array<{ __typename?: 'validator_commission', commission: any }>, validatorVotingPowers: Array<{ __typename?: 'validator_voting_power', height: any, votingPower: any }> }>, slashingParams: Array<{ __typename?: 'slashing_params', params: any }> }; + +export type ValidatorDelegationsQueryVariables = Exact<{ + validatorAddress: Scalars['String']; + offset?: InputMaybe; + limit?: InputMaybe; + pagination?: Scalars['Boolean']; +}>; + + +export type ValidatorDelegationsQuery = { delegations?: { __typename?: 'ActionDelegationResponse', delegations?: Array | null, pagination?: any | null } | null }; + +export type ValidatorRedelegationsQueryVariables = Exact<{ + validatorAddress: Scalars['String']; + offset?: InputMaybe; + limit?: InputMaybe; + pagination?: Scalars['Boolean']; +}>; + + +export type ValidatorRedelegationsQuery = { redelegations?: { __typename?: 'ActionRedelegationResponse', redelegations?: Array | null, pagination?: any | null } | null }; + +export type ValidatorUndelegationsQueryVariables = Exact<{ + validatorAddress: Scalars['String']; + offset?: InputMaybe; + limit?: InputMaybe; + pagination?: Scalars['Boolean']; +}>; + + +export type ValidatorUndelegationsQuery = { undelegations?: { __typename?: 'ActionUnbondingDelegationResponse', pagination?: any | null, undelegations?: Array | null } | null }; + +export type ValidatorsQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ValidatorsQuery = { stakingPool: Array<{ __typename?: 'staking_pool', bondedTokens: string }>, validator: Array<{ __typename?: 'validator', validatorStatuses: Array<{ __typename?: 'validator_status', status: number, jailed: boolean, height: any }>, validatorSigningInfos: Array<{ __typename?: 'validator_signing_info', tombstoned: boolean, missedBlocksCounter: any }>, validatorInfo?: { __typename?: 'validator_info', operatorAddress: string, selfDelegateAddress?: string | null } | null, validatorVotingPowers: Array<{ __typename?: 'validator_voting_power', votingPower: any }>, validatorCommissions: Array<{ __typename?: 'validator_commission', commission: any }> }>, slashingParams: Array<{ __typename?: 'slashing_params', params: any }> }; + +export type ValidatorsAddressListQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ValidatorsAddressListQuery = { validator: Array<{ __typename?: 'validator', validatorInfo?: { __typename?: 'validator_info', operatorAddress: string, selfDelegateAddress?: string | null, consensusAddress: string } | null, validatorDescriptions: Array<{ __typename?: 'validator_description', moniker?: string | null, identity?: string | null, avatarUrl?: string | null }> }> }; + +export type ValidatorAddressesQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ValidatorAddressesQuery = { validator: Array<{ __typename?: 'validator', validatorInfo?: { __typename?: 'validator_info', operatorAddress: string, selfDelegateAddress?: string | null, consensusAddress: string } | null, validatorDescriptions: Array<{ __typename?: 'validator_description', moniker?: string | null, avatarUrl?: string | null }> }> }; + + +export const AccountCommissionDocument = gql` + query AccountCommission($validatorAddress: String!) { + commission: action_validator_commission_amount(address: $validatorAddress) { + coins + } +} + `; + +/** + * __useAccountCommissionQuery__ + * + * To run a query within a React component, call `useAccountCommissionQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountCommissionQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountCommissionQuery({ + * variables: { + * validatorAddress: // value for 'validatorAddress' + * }, + * }); + */ +export function useAccountCommissionQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountCommissionDocument, options); + } +export function useAccountCommissionLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountCommissionDocument, options); + } +export type AccountCommissionQueryHookResult = ReturnType; +export type AccountCommissionLazyQueryHookResult = ReturnType; +export type AccountCommissionQueryResult = Apollo.QueryResult; +export const AccountWithdrawalAddressDocument = gql` + query AccountWithdrawalAddress($address: String!) { + withdrawalAddress: action_delegator_withdraw_address(address: $address) { + address + } +} + `; + +/** + * __useAccountWithdrawalAddressQuery__ + * + * To run a query within a React component, call `useAccountWithdrawalAddressQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountWithdrawalAddressQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountWithdrawalAddressQuery({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useAccountWithdrawalAddressQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountWithdrawalAddressDocument, options); + } +export function useAccountWithdrawalAddressLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountWithdrawalAddressDocument, options); + } +export type AccountWithdrawalAddressQueryHookResult = ReturnType; +export type AccountWithdrawalAddressLazyQueryHookResult = ReturnType; +export type AccountWithdrawalAddressQueryResult = Apollo.QueryResult; +export const AccountBalancesDocument = gql` + query AccountBalances($address: String!) { + accountBalances: action_account_balance(address: $address) { + coins + } +} + `; + +/** + * __useAccountBalancesQuery__ + * + * To run a query within a React component, call `useAccountBalancesQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountBalancesQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountBalancesQuery({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useAccountBalancesQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountBalancesDocument, options); + } +export function useAccountBalancesLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountBalancesDocument, options); + } +export type AccountBalancesQueryHookResult = ReturnType; +export type AccountBalancesLazyQueryHookResult = ReturnType; +export type AccountBalancesQueryResult = Apollo.QueryResult; +export const AccountDelegationBalanceDocument = gql` + query AccountDelegationBalance($address: String!) { + delegationBalance: action_delegation_total(address: $address) { + coins + } +} + `; + +/** + * __useAccountDelegationBalanceQuery__ + * + * To run a query within a React component, call `useAccountDelegationBalanceQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountDelegationBalanceQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountDelegationBalanceQuery({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useAccountDelegationBalanceQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountDelegationBalanceDocument, options); + } +export function useAccountDelegationBalanceLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountDelegationBalanceDocument, options); + } +export type AccountDelegationBalanceQueryHookResult = ReturnType; +export type AccountDelegationBalanceLazyQueryHookResult = ReturnType; +export type AccountDelegationBalanceQueryResult = Apollo.QueryResult; +export const AccountUnbondingBalanceDocument = gql` + query AccountUnbondingBalance($address: String!) { + unbondingBalance: action_unbonding_delegation_total(address: $address) { + coins + } +} + `; + +/** + * __useAccountUnbondingBalanceQuery__ + * + * To run a query within a React component, call `useAccountUnbondingBalanceQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountUnbondingBalanceQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountUnbondingBalanceQuery({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useAccountUnbondingBalanceQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountUnbondingBalanceDocument, options); + } +export function useAccountUnbondingBalanceLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountUnbondingBalanceDocument, options); + } +export type AccountUnbondingBalanceQueryHookResult = ReturnType; +export type AccountUnbondingBalanceLazyQueryHookResult = ReturnType; +export type AccountUnbondingBalanceQueryResult = Apollo.QueryResult; +export const AccountDelegationRewardsDocument = gql` + query AccountDelegationRewards($address: String!) { + delegationRewards: action_delegation_reward(address: $address) { + validatorAddress: validator_address + coins + } +} + `; + +/** + * __useAccountDelegationRewardsQuery__ + * + * To run a query within a React component, call `useAccountDelegationRewardsQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountDelegationRewardsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountDelegationRewardsQuery({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useAccountDelegationRewardsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountDelegationRewardsDocument, options); + } +export function useAccountDelegationRewardsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountDelegationRewardsDocument, options); + } +export type AccountDelegationRewardsQueryHookResult = ReturnType; +export type AccountDelegationRewardsLazyQueryHookResult = ReturnType; +export type AccountDelegationRewardsQueryResult = Apollo.QueryResult; +export const AccountDelegationsDocument = gql` + query AccountDelegations($address: String!, $offset: Int = 0, $limit: Int = 10, $pagination: Boolean! = true) { + delegations: action_delegation( + address: $address + limit: $limit + offset: $offset + count_total: $pagination + ) { + delegations + pagination + } +} + `; + +/** + * __useAccountDelegationsQuery__ + * + * To run a query within a React component, call `useAccountDelegationsQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountDelegationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountDelegationsQuery({ + * variables: { + * address: // value for 'address' + * offset: // value for 'offset' + * limit: // value for 'limit' + * pagination: // value for 'pagination' + * }, + * }); + */ +export function useAccountDelegationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountDelegationsDocument, options); + } +export function useAccountDelegationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountDelegationsDocument, options); + } +export type AccountDelegationsQueryHookResult = ReturnType; +export type AccountDelegationsLazyQueryHookResult = ReturnType; +export type AccountDelegationsQueryResult = Apollo.QueryResult; +export const AccountRedelegationsDocument = gql` + query AccountRedelegations($address: String!, $offset: Int = 0, $limit: Int = 10, $pagination: Boolean! = true) { + redelegations: action_redelegation( + address: $address + limit: $limit + offset: $offset + count_total: $pagination + ) { + redelegations + pagination + } +} + `; + +/** + * __useAccountRedelegationsQuery__ + * + * To run a query within a React component, call `useAccountRedelegationsQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountRedelegationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountRedelegationsQuery({ + * variables: { + * address: // value for 'address' + * offset: // value for 'offset' + * limit: // value for 'limit' + * pagination: // value for 'pagination' + * }, + * }); + */ +export function useAccountRedelegationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountRedelegationsDocument, options); + } +export function useAccountRedelegationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountRedelegationsDocument, options); + } +export type AccountRedelegationsQueryHookResult = ReturnType; +export type AccountRedelegationsLazyQueryHookResult = ReturnType; +export type AccountRedelegationsQueryResult = Apollo.QueryResult; +export const AccountUndelegationsDocument = gql` + query AccountUndelegations($address: String!, $offset: Int = 0, $limit: Int = 10, $pagination: Boolean! = true) { + undelegations: action_unbonding_delegation( + address: $address + limit: $limit + offset: $offset + count_total: $pagination + ) { + undelegations: unbonding_delegations + pagination + } +} + `; + +/** + * __useAccountUndelegationsQuery__ + * + * To run a query within a React component, call `useAccountUndelegationsQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountUndelegationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountUndelegationsQuery({ + * variables: { + * address: // value for 'address' + * offset: // value for 'offset' + * limit: // value for 'limit' + * pagination: // value for 'pagination' + * }, + * }); + */ +export function useAccountUndelegationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountUndelegationsDocument, options); + } +export function useAccountUndelegationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountUndelegationsDocument, options); + } +export type AccountUndelegationsQueryHookResult = ReturnType; +export type AccountUndelegationsLazyQueryHookResult = ReturnType; +export type AccountUndelegationsQueryResult = Apollo.QueryResult; +export const ActiveValidatorCountDocument = gql` + query ActiveValidatorCount { + activeTotal: validator_status_aggregate(where: {status: {_eq: 3}}) { + aggregate { + count + } + } + inactiveTotal: validator_status_aggregate(where: {status: {_neq: 3}}) { + aggregate { + count + } + } + total: validator_status_aggregate { + aggregate { + count + } + } +} + `; + +/** + * __useActiveValidatorCountQuery__ + * + * To run a query within a React component, call `useActiveValidatorCountQuery` and pass it any options that fit your needs. + * When your component renders, `useActiveValidatorCountQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useActiveValidatorCountQuery({ + * variables: { + * }, + * }); + */ +export function useActiveValidatorCountQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ActiveValidatorCountDocument, options); + } +export function useActiveValidatorCountLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ActiveValidatorCountDocument, options); + } +export type ActiveValidatorCountQueryHookResult = ReturnType; +export type ActiveValidatorCountLazyQueryHookResult = ReturnType; +export type ActiveValidatorCountQueryResult = Apollo.QueryResult; +export const BlockDetailsDocument = gql` + query BlockDetails($height: bigint, $signatureHeight: bigint) { + transaction(where: {height: {_eq: $height}}) { + height + hash + messages + success + logs + } + block(limit: 1, where: {height: {_eq: $height}}) { + height + hash + timestamp + txs: num_txs + validator { + validatorInfo: validator_info { + operatorAddress: operator_address + } + } + } + preCommitsAggregate: pre_commit_aggregate( + where: {height: {_eq: $signatureHeight}} + ) { + aggregate { + sum { + votingPower: voting_power + } + } + } + preCommits: pre_commit(where: {height: {_eq: $signatureHeight}}) { + validator { + validatorInfo: validator_info { + operatorAddress: operator_address + } + } + } +} + `; + +/** + * __useBlockDetailsQuery__ + * + * To run a query within a React component, call `useBlockDetailsQuery` and pass it any options that fit your needs. + * When your component renders, `useBlockDetailsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useBlockDetailsQuery({ + * variables: { + * height: // value for 'height' + * signatureHeight: // value for 'signatureHeight' + * }, + * }); + */ +export function useBlockDetailsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(BlockDetailsDocument, options); + } +export function useBlockDetailsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(BlockDetailsDocument, options); + } +export type BlockDetailsQueryHookResult = ReturnType; +export type BlockDetailsLazyQueryHookResult = ReturnType; +export type BlockDetailsQueryResult = Apollo.QueryResult; +export const LatestBlockHeightListenerDocument = gql` + subscription LatestBlockHeightListener($offset: Int = 0) { + height: block(order_by: {height: desc}, limit: 1, offset: $offset) { + height + } +} + `; + +/** + * __useLatestBlockHeightListenerSubscription__ + * + * To run a query within a React component, call `useLatestBlockHeightListenerSubscription` and pass it any options that fit your needs. + * When your component renders, `useLatestBlockHeightListenerSubscription` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the subscription, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useLatestBlockHeightListenerSubscription({ + * variables: { + * offset: // value for 'offset' + * }, + * }); + */ +export function useLatestBlockHeightListenerSubscription(baseOptions?: Apollo.SubscriptionHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useSubscription(LatestBlockHeightListenerDocument, options); + } +export type LatestBlockHeightListenerSubscriptionHookResult = ReturnType; +export type LatestBlockHeightListenerSubscriptionResult = Apollo.SubscriptionResult; +export const AverageBlockTimeDocument = gql` + query AverageBlockTime { + averageBlockTime: average_block_time_per_hour( + limit: 1 + order_by: {height: desc} + ) { + averageTime: average_time + } +} + `; + +/** + * __useAverageBlockTimeQuery__ + * + * To run a query within a React component, call `useAverageBlockTimeQuery` and pass it any options that fit your needs. + * When your component renders, `useAverageBlockTimeQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAverageBlockTimeQuery({ + * variables: { + * }, + * }); + */ +export function useAverageBlockTimeQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AverageBlockTimeDocument, options); + } +export function useAverageBlockTimeLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AverageBlockTimeDocument, options); + } +export type AverageBlockTimeQueryHookResult = ReturnType; +export type AverageBlockTimeLazyQueryHookResult = ReturnType; +export type AverageBlockTimeQueryResult = Apollo.QueryResult; +export const LatestBlockTimestampDocument = gql` + query LatestBlockTimestamp($offset: Int = 0) { + block: block(order_by: {height: desc}, limit: 1, offset: $offset) { + timestamp + } +} + `; + +/** + * __useLatestBlockTimestampQuery__ + * + * To run a query within a React component, call `useLatestBlockTimestampQuery` and pass it any options that fit your needs. + * When your component renders, `useLatestBlockTimestampQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useLatestBlockTimestampQuery({ + * variables: { + * offset: // value for 'offset' + * }, + * }); + */ +export function useLatestBlockTimestampQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(LatestBlockTimestampDocument, options); + } +export function useLatestBlockTimestampLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(LatestBlockTimestampDocument, options); + } +export type LatestBlockTimestampQueryHookResult = ReturnType; +export type LatestBlockTimestampLazyQueryHookResult = ReturnType; +export type LatestBlockTimestampQueryResult = Apollo.QueryResult; +export const BlocksListenerDocument = gql` + subscription BlocksListener($limit: Int = 7, $offset: Int = 0) { + blocks: block(limit: $limit, offset: $offset, order_by: {height: desc}) { + height + txs: num_txs + hash + timestamp + validator { + validatorInfo: validator_info { + operatorAddress: operator_address + } + } + } +} + `; + +/** + * __useBlocksListenerSubscription__ + * + * To run a query within a React component, call `useBlocksListenerSubscription` and pass it any options that fit your needs. + * When your component renders, `useBlocksListenerSubscription` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the subscription, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useBlocksListenerSubscription({ + * variables: { + * limit: // value for 'limit' + * offset: // value for 'offset' + * }, + * }); + */ +export function useBlocksListenerSubscription(baseOptions?: Apollo.SubscriptionHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useSubscription(BlocksListenerDocument, options); + } +export type BlocksListenerSubscriptionHookResult = ReturnType; +export type BlocksListenerSubscriptionResult = Apollo.SubscriptionResult; +export const BlocksDocument = gql` + query Blocks($limit: Int = 7, $offset: Int = 0) { + blocks: block(limit: $limit, offset: $offset, order_by: {height: desc}) { + height + txs: num_txs + hash + timestamp + validator { + validatorInfo: validator_info { + operatorAddress: operator_address + self_delegate_address + } + validatorDescriptions: validator_descriptions( + limit: 1 + order_by: {height: desc} + ) { + moniker + identity + } + } + } +} + `; + +/** + * __useBlocksQuery__ + * + * To run a query within a React component, call `useBlocksQuery` and pass it any options that fit your needs. + * When your component renders, `useBlocksQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useBlocksQuery({ + * variables: { + * limit: // value for 'limit' + * offset: // value for 'offset' + * }, + * }); + */ +export function useBlocksQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(BlocksDocument, options); + } +export function useBlocksLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(BlocksDocument, options); + } +export type BlocksQueryHookResult = ReturnType; +export type BlocksLazyQueryHookResult = ReturnType; +export type BlocksQueryResult = Apollo.QueryResult; +export const ChainIdDocument = gql` + query ChainId { + genesis(limit: 1, order_by: {time: desc}) { + chainId: chain_id + time + } +} + `; + +/** + * __useChainIdQuery__ + * + * To run a query within a React component, call `useChainIdQuery` and pass it any options that fit your needs. + * When your component renders, `useChainIdQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useChainIdQuery({ + * variables: { + * }, + * }); + */ +export function useChainIdQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ChainIdDocument, options); + } +export function useChainIdLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ChainIdDocument, options); + } +export type ChainIdQueryHookResult = ReturnType; +export type ChainIdLazyQueryHookResult = ReturnType; +export type ChainIdQueryResult = Apollo.QueryResult; +export const MarketDataDocument = gql` + query MarketData($denom: String) { + communityPool: community_pool(order_by: {height: desc}, limit: 1) { + coins + } + inflation: inflation(order_by: {height: desc}, limit: 1) { + value + } + tokenPrice: token_price(where: {unit_name: {_eq: $denom}}) { + marketCap: market_cap + price + } + supply { + coins + } + bondedTokens: staking_pool(order_by: {height: desc}, limit: 1) { + bonded_tokens + } + distributionParams: distribution_params { + params + } +} + `; + +/** + * __useMarketDataQuery__ + * + * To run a query within a React component, call `useMarketDataQuery` and pass it any options that fit your needs. + * When your component renders, `useMarketDataQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useMarketDataQuery({ + * variables: { + * denom: // value for 'denom' + * }, + * }); + */ +export function useMarketDataQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(MarketDataDocument, options); + } +export function useMarketDataLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(MarketDataDocument, options); + } +export type MarketDataQueryHookResult = ReturnType; +export type MarketDataLazyQueryHookResult = ReturnType; +export type MarketDataQueryResult = Apollo.QueryResult; +export const GetMessagesByAddressDocument = gql` + query GetMessagesByAddress($address: _text, $limit: bigint = 50, $offset: bigint = 0, $types: _text = "{}") { + messagesByAddress: messages_by_address( + args: {addresses: $address, types: $types, limit: $limit, offset: $offset} + ) { + transaction { + height + hash + success + messages + logs + block { + height + timestamp + } + } + } +} + `; + +/** + * __useGetMessagesByAddressQuery__ + * + * To run a query within a React component, call `useGetMessagesByAddressQuery` and pass it any options that fit your needs. + * When your component renders, `useGetMessagesByAddressQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetMessagesByAddressQuery({ + * variables: { + * address: // value for 'address' + * limit: // value for 'limit' + * offset: // value for 'offset' + * types: // value for 'types' + * }, + * }); + */ +export function useGetMessagesByAddressQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetMessagesByAddressDocument, options); + } +export function useGetMessagesByAddressLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetMessagesByAddressDocument, options); + } +export type GetMessagesByAddressQueryHookResult = ReturnType; +export type GetMessagesByAddressLazyQueryHookResult = ReturnType; +export type GetMessagesByAddressQueryResult = Apollo.QueryResult; +export const OnlineVotingPowerDocument = gql` + query OnlineVotingPower { + activeTotal: validator_status_aggregate(where: {status: {_eq: 3}}) { + aggregate { + count + } + } + validatorVotingPowerAggregate: validator_voting_power_aggregate( + where: {validator: {validator_statuses: {status: {_eq: 3}}}} + ) { + aggregate { + sum { + votingPower: voting_power + } + } + } + stakingPool: staking_pool(order_by: {height: desc}, limit: 1) { + bonded: bonded_tokens + } + stakingParams: staking_params(limit: 1) { + params + } +} + `; + +/** + * __useOnlineVotingPowerQuery__ + * + * To run a query within a React component, call `useOnlineVotingPowerQuery` and pass it any options that fit your needs. + * When your component renders, `useOnlineVotingPowerQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useOnlineVotingPowerQuery({ + * variables: { + * }, + * }); + */ +export function useOnlineVotingPowerQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(OnlineVotingPowerDocument, options); + } +export function useOnlineVotingPowerLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(OnlineVotingPowerDocument, options); + } +export type OnlineVotingPowerQueryHookResult = ReturnType; +export type OnlineVotingPowerLazyQueryHookResult = ReturnType; +export type OnlineVotingPowerQueryResult = Apollo.QueryResult; +export const ParamsDocument = gql` + query Params { + stakingParams: staking_params(limit: 1, order_by: {height: desc}) { + params + } + slashingParams: slashing_params(limit: 1, order_by: {height: desc}) { + params + } + mintParams: mint_params(limit: 1, order_by: {height: desc}) { + params + } + distributionParams: distribution_params(limit: 1, order_by: {height: desc}) { + params + } + govParams: gov_params(limit: 1, order_by: {height: desc}) { + depositParams: deposit_params + tallyParams: tally_params + votingParams: voting_params + } +} + `; + +/** + * __useParamsQuery__ + * + * To run a query within a React component, call `useParamsQuery` and pass it any options that fit your needs. + * When your component renders, `useParamsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useParamsQuery({ + * variables: { + * }, + * }); + */ +export function useParamsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ParamsDocument, options); + } +export function useParamsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ParamsDocument, options); + } +export type ParamsQueryHookResult = ReturnType; +export type ParamsLazyQueryHookResult = ReturnType; +export type ParamsQueryResult = Apollo.QueryResult; +export const ProposalDetailsDocument = gql` + query ProposalDetails($proposalId: Int) { + proposal(where: {id: {_eq: $proposalId}}) { + proposer: proposer_address + title + description + status + content + proposalId: id + submitTime: submit_time + proposalType: proposal_type + depositEndTime: deposit_end_time + votingStartTime: voting_start_time + votingEndTime: voting_end_time + } +} + `; + +/** + * __useProposalDetailsQuery__ + * + * To run a query within a React component, call `useProposalDetailsQuery` and pass it any options that fit your needs. + * When your component renders, `useProposalDetailsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useProposalDetailsQuery({ + * variables: { + * proposalId: // value for 'proposalId' + * }, + * }); + */ +export function useProposalDetailsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ProposalDetailsDocument, options); + } +export function useProposalDetailsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ProposalDetailsDocument, options); + } +export type ProposalDetailsQueryHookResult = ReturnType; +export type ProposalDetailsLazyQueryHookResult = ReturnType; +export type ProposalDetailsQueryResult = Apollo.QueryResult; +export const ProposalDetailsTallyDocument = gql` + query ProposalDetailsTally($proposalId: Int) { + proposalTallyResult: proposal_tally_result( + where: {proposal_id: {_eq: $proposalId}} + ) { + yes + no + noWithVeto: no_with_veto + abstain + } + stakingPool: proposal_staking_pool_snapshot( + where: {proposal_id: {_eq: $proposalId}} + ) { + bondedTokens: bonded_tokens + } + quorum: gov_params(limit: 1, order_by: {height: desc}) { + tallyParams: tally_params + } +} + `; + +/** + * __useProposalDetailsTallyQuery__ + * + * To run a query within a React component, call `useProposalDetailsTallyQuery` and pass it any options that fit your needs. + * When your component renders, `useProposalDetailsTallyQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useProposalDetailsTallyQuery({ + * variables: { + * proposalId: // value for 'proposalId' + * }, + * }); + */ +export function useProposalDetailsTallyQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ProposalDetailsTallyDocument, options); + } +export function useProposalDetailsTallyLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ProposalDetailsTallyDocument, options); + } +export type ProposalDetailsTallyQueryHookResult = ReturnType; +export type ProposalDetailsTallyLazyQueryHookResult = ReturnType; +export type ProposalDetailsTallyQueryResult = Apollo.QueryResult; +export const ProposalDetailsDepositsDocument = gql` + query ProposalDetailsDeposits($proposalId: Int) { + proposalDeposit: proposal_deposit( + where: {proposal_id: {_eq: $proposalId}} + order_by: {height: desc} + ) { + amount + depositorAddress: depositor_address + block { + timestamp + } + } +} + `; + +/** + * __useProposalDetailsDepositsQuery__ + * + * To run a query within a React component, call `useProposalDetailsDepositsQuery` and pass it any options that fit your needs. + * When your component renders, `useProposalDetailsDepositsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useProposalDetailsDepositsQuery({ + * variables: { + * proposalId: // value for 'proposalId' + * }, + * }); + */ +export function useProposalDetailsDepositsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ProposalDetailsDepositsDocument, options); + } +export function useProposalDetailsDepositsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ProposalDetailsDepositsDocument, options); + } +export type ProposalDetailsDepositsQueryHookResult = ReturnType; +export type ProposalDetailsDepositsLazyQueryHookResult = ReturnType; +export type ProposalDetailsDepositsQueryResult = Apollo.QueryResult; +export const ProposalDetailsVotesDocument = gql` + query ProposalDetailsVotes($proposalId: Int) { + proposalVote: proposal_vote( + where: {proposal_id: {_eq: $proposalId}} + order_by: {height: desc} + ) { + option + voterAddress: voter_address + } + validatorStatuses: proposal_validator_status_snapshot( + where: {proposal_id: {_eq: $proposalId}, status: {_eq: 3}} + ) { + validator { + validatorInfo: validator_info { + selfDelegateAddress: self_delegate_address + } + } + } +} + `; + +/** + * __useProposalDetailsVotesQuery__ + * + * To run a query within a React component, call `useProposalDetailsVotesQuery` and pass it any options that fit your needs. + * When your component renders, `useProposalDetailsVotesQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useProposalDetailsVotesQuery({ + * variables: { + * proposalId: // value for 'proposalId' + * }, + * }); + */ +export function useProposalDetailsVotesQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ProposalDetailsVotesDocument, options); + } +export function useProposalDetailsVotesLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ProposalDetailsVotesDocument, options); + } +export type ProposalDetailsVotesQueryHookResult = ReturnType; +export type ProposalDetailsVotesLazyQueryHookResult = ReturnType; +export type ProposalDetailsVotesQueryResult = Apollo.QueryResult; +export const ProposalsDocument = gql` + query Proposals($limit: Int = 7, $offset: Int = 0) { + proposals: proposal(limit: $limit, offset: $offset, order_by: {id: desc}) { + title + proposalId: id + status + description + } + total: proposal_aggregate { + aggregate { + count + } + } +} + `; + +/** + * __useProposalsQuery__ + * + * To run a query within a React component, call `useProposalsQuery` and pass it any options that fit your needs. + * When your component renders, `useProposalsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useProposalsQuery({ + * variables: { + * limit: // value for 'limit' + * offset: // value for 'offset' + * }, + * }); + */ +export function useProposalsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ProposalsDocument, options); + } +export function useProposalsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ProposalsDocument, options); + } +export type ProposalsQueryHookResult = ReturnType; +export type ProposalsLazyQueryHookResult = ReturnType; +export type ProposalsQueryResult = Apollo.QueryResult; +export const TokenPriceListenerDocument = gql` + subscription TokenPriceListener($denom: String) { + tokenPrice: token_price(where: {unit_name: {_eq: $denom}}) { + price + timestamp + marketCap: market_cap + unitName: unit_name + } +} + `; + +/** + * __useTokenPriceListenerSubscription__ + * + * To run a query within a React component, call `useTokenPriceListenerSubscription` and pass it any options that fit your needs. + * When your component renders, `useTokenPriceListenerSubscription` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the subscription, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTokenPriceListenerSubscription({ + * variables: { + * denom: // value for 'denom' + * }, + * }); + */ +export function useTokenPriceListenerSubscription(baseOptions?: Apollo.SubscriptionHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useSubscription(TokenPriceListenerDocument, options); + } +export type TokenPriceListenerSubscriptionHookResult = ReturnType; +export type TokenPriceListenerSubscriptionResult = Apollo.SubscriptionResult; +export const TokenPriceHistoryDocument = gql` + query TokenPriceHistory($denom: String, $limit: Int = 10) { + tokenPrice: token_price_history( + where: {unit_name: {_eq: $denom}} + limit: $limit + order_by: {timestamp: desc} + ) { + price + timestamp + } +} + `; + +/** + * __useTokenPriceHistoryQuery__ + * + * To run a query within a React component, call `useTokenPriceHistoryQuery` and pass it any options that fit your needs. + * When your component renders, `useTokenPriceHistoryQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTokenPriceHistoryQuery({ + * variables: { + * denom: // value for 'denom' + * limit: // value for 'limit' + * }, + * }); + */ +export function useTokenPriceHistoryQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(TokenPriceHistoryDocument, options); + } +export function useTokenPriceHistoryLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(TokenPriceHistoryDocument, options); + } +export type TokenPriceHistoryQueryHookResult = ReturnType; +export type TokenPriceHistoryLazyQueryHookResult = ReturnType; +export type TokenPriceHistoryQueryResult = Apollo.QueryResult; +export const TokenomicsDocument = gql` + query Tokenomics { + stakingParams: staking_params(limit: 1) { + params + } + stakingPool: staking_pool(order_by: {height: desc}, limit: 1) { + bonded: bonded_tokens + unbonded: not_bonded_tokens + } + supply: supply(order_by: {height: desc}, limit: 1) { + coins + } +} + `; + +/** + * __useTokenomicsQuery__ + * + * To run a query within a React component, call `useTokenomicsQuery` and pass it any options that fit your needs. + * When your component renders, `useTokenomicsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTokenomicsQuery({ + * variables: { + * }, + * }); + */ +export function useTokenomicsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(TokenomicsDocument, options); + } +export function useTokenomicsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(TokenomicsDocument, options); + } +export type TokenomicsQueryHookResult = ReturnType; +export type TokenomicsLazyQueryHookResult = ReturnType; +export type TokenomicsQueryResult = Apollo.QueryResult; +export const TransactionDetailsDocument = gql` + query TransactionDetails($hash: String) { + transaction(where: {hash: {_eq: $hash}}, limit: 1) { + hash: hash + height: height + block: block { + timestamp: timestamp + } + fee: fee + gasUsed: gas_used + gasWanted: gas_wanted + success: success + memo: memo + messages: messages + logs + rawLog: raw_log + } +} + `; + +/** + * __useTransactionDetailsQuery__ + * + * To run a query within a React component, call `useTransactionDetailsQuery` and pass it any options that fit your needs. + * When your component renders, `useTransactionDetailsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTransactionDetailsQuery({ + * variables: { + * hash: // value for 'hash' + * }, + * }); + */ +export function useTransactionDetailsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(TransactionDetailsDocument, options); + } +export function useTransactionDetailsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(TransactionDetailsDocument, options); + } +export type TransactionDetailsQueryHookResult = ReturnType; +export type TransactionDetailsLazyQueryHookResult = ReturnType; +export type TransactionDetailsQueryResult = Apollo.QueryResult; +export const TransactionsListenerDocument = gql` + subscription TransactionsListener($limit: Int = 7, $offset: Int = 0) { + transactions: transaction( + limit: $limit + offset: $offset + order_by: {height: desc} + ) { + height + hash + success + block { + timestamp + } + messages + logs + } +} + `; + +/** + * __useTransactionsListenerSubscription__ + * + * To run a query within a React component, call `useTransactionsListenerSubscription` and pass it any options that fit your needs. + * When your component renders, `useTransactionsListenerSubscription` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the subscription, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTransactionsListenerSubscription({ + * variables: { + * limit: // value for 'limit' + * offset: // value for 'offset' + * }, + * }); + */ +export function useTransactionsListenerSubscription(baseOptions?: Apollo.SubscriptionHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useSubscription(TransactionsListenerDocument, options); + } +export type TransactionsListenerSubscriptionHookResult = ReturnType; +export type TransactionsListenerSubscriptionResult = Apollo.SubscriptionResult; +export const TransactionsDocument = gql` + query Transactions($limit: Int = 7, $offset: Int = 0) { + transactions: transaction( + limit: $limit + offset: $offset + order_by: {height: desc} + ) { + height + hash + success + block { + timestamp + } + messages + logs + } +} + `; + +/** + * __useTransactionsQuery__ + * + * To run a query within a React component, call `useTransactionsQuery` and pass it any options that fit your needs. + * When your component renders, `useTransactionsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTransactionsQuery({ + * variables: { + * limit: // value for 'limit' + * offset: // value for 'offset' + * }, + * }); + */ +export function useTransactionsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(TransactionsDocument, options); + } +export function useTransactionsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(TransactionsDocument, options); + } +export type TransactionsQueryHookResult = ReturnType; +export type TransactionsLazyQueryHookResult = ReturnType; +export type TransactionsQueryResult = Apollo.QueryResult; +export const LastHundredBlocksDocument = gql` + subscription LastHundredBlocks($address: String) { + block(offset: 1, order_by: {height: desc}, limit: 100) { + height + validator { + validatorInfo: validator_info { + operatorAddress: operator_address + } + } + transactions { + hash + } + precommits: pre_commits( + where: {validator: {validator_info: {operator_address: {_eq: $address}}}} + ) { + validatorAddress: validator_address + } + } +} + `; + +/** + * __useLastHundredBlocksSubscription__ + * + * To run a query within a React component, call `useLastHundredBlocksSubscription` and pass it any options that fit your needs. + * When your component renders, `useLastHundredBlocksSubscription` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the subscription, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useLastHundredBlocksSubscription({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useLastHundredBlocksSubscription(baseOptions?: Apollo.SubscriptionHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useSubscription(LastHundredBlocksDocument, options); + } +export type LastHundredBlocksSubscriptionHookResult = ReturnType; +export type LastHundredBlocksSubscriptionResult = Apollo.SubscriptionResult; +export const ValidatorLastSeenListenerDocument = gql` + subscription ValidatorLastSeenListener($address: String) { + preCommit: pre_commit( + limit: 1 + where: {validator: {validator_info: {operator_address: {_eq: $address}}}} + order_by: {height: desc} + ) { + height + timestamp + } +} + `; + +/** + * __useValidatorLastSeenListenerSubscription__ + * + * To run a query within a React component, call `useValidatorLastSeenListenerSubscription` and pass it any options that fit your needs. + * When your component renders, `useValidatorLastSeenListenerSubscription` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the subscription, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorLastSeenListenerSubscription({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useValidatorLastSeenListenerSubscription(baseOptions?: Apollo.SubscriptionHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useSubscription(ValidatorLastSeenListenerDocument, options); + } +export type ValidatorLastSeenListenerSubscriptionHookResult = ReturnType; +export type ValidatorLastSeenListenerSubscriptionResult = Apollo.SubscriptionResult; +export const ValidatorDetailsDocument = gql` + query ValidatorDetails($address: String) { + stakingPool: staking_pool(order_by: {height: desc}, limit: 1, offset: 0) { + height + bonded: bonded_tokens + } + validator(where: {validator_info: {operator_address: {_eq: $address}}}) { + validatorDescriptions: validator_descriptions( + order_by: {height: desc} + limit: 1 + ) { + details + website + } + validatorStatuses: validator_statuses(order_by: {height: desc}, limit: 1) { + status + jailed + height + } + validatorSigningInfos: validator_signing_infos( + order_by: {height: desc} + limit: 1 + ) { + missedBlocksCounter: missed_blocks_counter + tombstoned + } + validatorInfo: validator_info { + operatorAddress: operator_address + selfDelegateAddress: self_delegate_address + maxRate: max_rate + } + validatorCommissions: validator_commissions(order_by: {height: desc}, limit: 1) { + commission + } + validatorVotingPowers: validator_voting_powers( + offset: 0 + limit: 1 + order_by: {height: desc} + ) { + height + votingPower: voting_power + } + } + slashingParams: slashing_params(order_by: {height: desc}, limit: 1) { + params + } +} + `; + +/** + * __useValidatorDetailsQuery__ + * + * To run a query within a React component, call `useValidatorDetailsQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorDetailsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorDetailsQuery({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useValidatorDetailsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorDetailsDocument, options); + } +export function useValidatorDetailsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorDetailsDocument, options); + } +export type ValidatorDetailsQueryHookResult = ReturnType; +export type ValidatorDetailsLazyQueryHookResult = ReturnType; +export type ValidatorDetailsQueryResult = Apollo.QueryResult; +export const ValidatorDelegationsDocument = gql` + query ValidatorDelegations($validatorAddress: String!, $offset: Int = 0, $limit: Int = 10, $pagination: Boolean! = true) { + delegations: action_validator_delegations( + address: $validatorAddress + limit: $limit + offset: $offset + count_total: $pagination + ) { + delegations + pagination + } +} + `; + +/** + * __useValidatorDelegationsQuery__ + * + * To run a query within a React component, call `useValidatorDelegationsQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorDelegationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorDelegationsQuery({ + * variables: { + * validatorAddress: // value for 'validatorAddress' + * offset: // value for 'offset' + * limit: // value for 'limit' + * pagination: // value for 'pagination' + * }, + * }); + */ +export function useValidatorDelegationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorDelegationsDocument, options); + } +export function useValidatorDelegationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorDelegationsDocument, options); + } +export type ValidatorDelegationsQueryHookResult = ReturnType; +export type ValidatorDelegationsLazyQueryHookResult = ReturnType; +export type ValidatorDelegationsQueryResult = Apollo.QueryResult; +export const ValidatorRedelegationsDocument = gql` + query ValidatorRedelegations($validatorAddress: String!, $offset: Int = 0, $limit: Int = 10, $pagination: Boolean! = true) { + redelegations: action_validator_redelegations_from( + address: $validatorAddress + limit: $limit + offset: $offset + count_total: $pagination + ) { + redelegations + pagination + } +} + `; + +/** + * __useValidatorRedelegationsQuery__ + * + * To run a query within a React component, call `useValidatorRedelegationsQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorRedelegationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorRedelegationsQuery({ + * variables: { + * validatorAddress: // value for 'validatorAddress' + * offset: // value for 'offset' + * limit: // value for 'limit' + * pagination: // value for 'pagination' + * }, + * }); + */ +export function useValidatorRedelegationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorRedelegationsDocument, options); + } +export function useValidatorRedelegationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorRedelegationsDocument, options); + } +export type ValidatorRedelegationsQueryHookResult = ReturnType; +export type ValidatorRedelegationsLazyQueryHookResult = ReturnType; +export type ValidatorRedelegationsQueryResult = Apollo.QueryResult; +export const ValidatorUndelegationsDocument = gql` + query ValidatorUndelegations($validatorAddress: String!, $offset: Int = 0, $limit: Int = 10, $pagination: Boolean! = true) { + undelegations: action_validator_unbonding_delegations( + address: $validatorAddress + limit: $limit + offset: $offset + count_total: $pagination + ) { + undelegations: unbonding_delegations + pagination + } +} + `; + +/** + * __useValidatorUndelegationsQuery__ + * + * To run a query within a React component, call `useValidatorUndelegationsQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorUndelegationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorUndelegationsQuery({ + * variables: { + * validatorAddress: // value for 'validatorAddress' + * offset: // value for 'offset' + * limit: // value for 'limit' + * pagination: // value for 'pagination' + * }, + * }); + */ +export function useValidatorUndelegationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorUndelegationsDocument, options); + } +export function useValidatorUndelegationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorUndelegationsDocument, options); + } +export type ValidatorUndelegationsQueryHookResult = ReturnType; +export type ValidatorUndelegationsLazyQueryHookResult = ReturnType; +export type ValidatorUndelegationsQueryResult = Apollo.QueryResult; +export const ValidatorsDocument = gql` + query Validators { + stakingPool: staking_pool(limit: 1, order_by: {height: desc}) { + bondedTokens: bonded_tokens + } + validator { + validatorStatuses: validator_statuses(order_by: {height: desc}, limit: 1) { + status + jailed + height + } + validatorSigningInfos: validator_signing_infos( + order_by: {height: desc} + limit: 1 + ) { + missedBlocksCounter: missed_blocks_counter + tombstoned + } + validatorInfo: validator_info { + operatorAddress: operator_address + selfDelegateAddress: self_delegate_address + } + validatorVotingPowers: validator_voting_powers( + offset: 0 + limit: 1 + order_by: {height: desc} + ) { + votingPower: voting_power + } + validatorCommissions: validator_commissions(order_by: {height: desc}, limit: 1) { + commission + } + validatorSigningInfos: validator_signing_infos( + order_by: {height: desc} + limit: 1 + ) { + missedBlocksCounter: missed_blocks_counter + } + } + slashingParams: slashing_params(order_by: {height: desc}, limit: 1) { + params + } +} + `; + +/** + * __useValidatorsQuery__ + * + * To run a query within a React component, call `useValidatorsQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorsQuery({ + * variables: { + * }, + * }); + */ +export function useValidatorsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorsDocument, options); + } +export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorsDocument, options); + } +export type ValidatorsQueryHookResult = ReturnType; +export type ValidatorsLazyQueryHookResult = ReturnType; +export type ValidatorsQueryResult = Apollo.QueryResult; +export const ValidatorsAddressListDocument = gql` + query ValidatorsAddressList { + validator { + validatorInfo: validator_info { + operatorAddress: operator_address + selfDelegateAddress: self_delegate_address + consensusAddress: consensus_address + } + validatorDescriptions: validator_descriptions( + limit: 1 + order_by: {height: desc} + ) { + moniker + identity + avatarUrl: avatar_url + } + } +} + `; + +/** + * __useValidatorsAddressListQuery__ + * + * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorsAddressListQuery({ + * variables: { + * }, + * }); + */ +export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorsAddressListDocument, options); + } +export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); + } +export type ValidatorsAddressListQueryHookResult = ReturnType; +export type ValidatorsAddressListLazyQueryHookResult = ReturnType; +export type ValidatorsAddressListQueryResult = Apollo.QueryResult; +export const ValidatorAddressesDocument = gql` + query ValidatorAddresses { + validator( + where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}} + ) { + validatorInfo: validator_info { + operatorAddress: operator_address + selfDelegateAddress: self_delegate_address + consensusAddress: consensus_address + } + validatorDescriptions: validator_descriptions( + limit: 1 + order_by: {height: desc} + ) { + moniker + avatarUrl: avatar_url + } + } +} + `; + +/** + * __useValidatorAddressesQuery__ + * + * To run a query within a React component, call `useValidatorAddressesQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorAddressesQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorAddressesQuery({ + * variables: { + * }, + * }); + */ +export function useValidatorAddressesQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorAddressesDocument, options); + } +export function useValidatorAddressesLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorAddressesDocument, options); + } +export type ValidatorAddressesQueryHookResult = ReturnType; +export type ValidatorAddressesLazyQueryHookResult = ReturnType; +export type ValidatorAddressesQueryResult = Apollo.QueryResult; \ No newline at end of file diff --git a/apps/web-archway/src/pages/404.tsx b/apps/web-archway/src/pages/404.tsx new file mode 100644 index 0000000000..76cf2cc94d --- /dev/null +++ b/apps/web-archway/src/pages/404.tsx @@ -0,0 +1,10 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import NotFound from '@/screens/404'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../next-i18next.config'; + +const Custom404: NextPage = () => ; + +export const getStaticProps = withGetStaticProps(nextI18NextConfig); + +export default Custom404; diff --git a/apps/web-archway/src/pages/[dtag].tsx b/apps/web-archway/src/pages/[dtag].tsx new file mode 100644 index 0000000000..cb8769bdd0 --- /dev/null +++ b/apps/web-archway/src/pages/[dtag].tsx @@ -0,0 +1,11 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import ProfileDetails from '@/screens/profile_details'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../next-i18next.config'; + +const ProfileDetailsPage: NextPage = () => ; + +export const getStaticPaths = () => ({ paths: [], fallback: 'blocking' }); +export const getStaticProps = withGetStaticProps(nextI18NextConfig, 'profiles', 'accounts'); + +export default ProfileDetailsPage; diff --git a/apps/web-archway/src/pages/_app.tsx b/apps/web-archway/src/pages/_app.tsx new file mode 100644 index 0000000000..254596e760 --- /dev/null +++ b/apps/web-archway/src/pages/_app.tsx @@ -0,0 +1,7 @@ +import MyApp from '@/screens/app'; +import { appWithTranslation } from 'next-i18next'; +import 'react-toastify/dist/ReactToastify.css'; +import 'shared-utils/assets/styles/global.css'; +import nextI18NextConfig from '../../next-i18next.config'; + +export default appWithTranslation(MyApp, nextI18NextConfig); diff --git a/apps/web-archway/src/pages/_document.tsx b/apps/web-archway/src/pages/_document.tsx new file mode 100644 index 0000000000..174b41f650 --- /dev/null +++ b/apps/web-archway/src/pages/_document.tsx @@ -0,0 +1,12 @@ +import Document from 'next/document'; +import DocumentComponent, { getInitialProps, DocumentComponentProps } from 'ui/pages/_document'; + +class MyDocument extends Document { + render() { + return ; + } +} + +MyDocument.getInitialProps = getInitialProps; + +export default MyDocument; diff --git a/apps/web-archway/src/pages/_error.tsx b/apps/web-archway/src/pages/_error.tsx new file mode 100644 index 0000000000..2cac4132ab --- /dev/null +++ b/apps/web-archway/src/pages/_error.tsx @@ -0,0 +1,8 @@ +import type { NextPage } from 'next'; +import ErrorPage, { getInitialProps } from 'ui/pages/_error'; + +const MyError: NextPage = () => ; + +MyError.getInitialProps = getInitialProps; + +export default MyError; diff --git a/apps/web-archway/src/pages/accounts/[address].tsx b/apps/web-archway/src/pages/accounts/[address].tsx new file mode 100644 index 0000000000..bf63138222 --- /dev/null +++ b/apps/web-archway/src/pages/accounts/[address].tsx @@ -0,0 +1,18 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import AccountDetails from '@/screens/account_details'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const AccountDetailsPage: NextPage = () => ; + +export const getStaticPaths = () => ({ paths: [], fallback: 'blocking' }); +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'accounts', + 'transactions', + 'validators', + 'message_labels', + 'message_contents' +); + +export default AccountDetailsPage; diff --git a/apps/web-archway/src/pages/blocks/[height].tsx b/apps/web-archway/src/pages/blocks/[height].tsx new file mode 100644 index 0000000000..3a090fc163 --- /dev/null +++ b/apps/web-archway/src/pages/blocks/[height].tsx @@ -0,0 +1,17 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import BlockDetails from '@/screens/block_details'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const BlockDetailsPage: NextPage = () => ; + +export const getStaticPaths = () => ({ paths: [], fallback: 'blocking' }); +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'blocks', + 'transactions', + 'message_labels', + 'message_contents' +); + +export default BlockDetailsPage; diff --git a/apps/web-archway/src/pages/blocks/index.tsx b/apps/web-archway/src/pages/blocks/index.tsx new file mode 100644 index 0000000000..a25a08f025 --- /dev/null +++ b/apps/web-archway/src/pages/blocks/index.tsx @@ -0,0 +1,16 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import Blocks from '@/screens/blocks'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const BlocksPage: NextPage = () => ; + +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'blocks', + 'transactions', + 'message_labels', + 'message_contents' +); + +export default BlocksPage; diff --git a/apps/web-archway/src/pages/index.tsx b/apps/web-archway/src/pages/index.tsx new file mode 100644 index 0000000000..0e20acaf4b --- /dev/null +++ b/apps/web-archway/src/pages/index.tsx @@ -0,0 +1,15 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import Home from '@/screens/home'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../next-i18next.config'; + +const HomePage: NextPage = () => ; + +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'home', + 'blocks', + 'transactions' +); + +export default HomePage; diff --git a/apps/web-archway/src/pages/params/index.tsx b/apps/web-archway/src/pages/params/index.tsx new file mode 100644 index 0000000000..36c5df67e5 --- /dev/null +++ b/apps/web-archway/src/pages/params/index.tsx @@ -0,0 +1,10 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import Params from '@/screens/params'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const ParamsPage: NextPage = () => ; + +export const getStaticProps = withGetStaticProps(nextI18NextConfig, 'params'); + +export default ParamsPage; diff --git a/apps/web-archway/src/pages/proposals/[id].tsx b/apps/web-archway/src/pages/proposals/[id].tsx new file mode 100644 index 0000000000..bd370d9b35 --- /dev/null +++ b/apps/web-archway/src/pages/proposals/[id].tsx @@ -0,0 +1,11 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import type { NextPage } from 'next'; +import ProposalDetails from '@/screens/proposal_details'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const TokenDetailsPage: NextPage = () => ; + +export const getStaticPaths = () => ({ paths: [], fallback: 'blocking' }); +export const getStaticProps = withGetStaticProps(nextI18NextConfig, 'proposals'); + +export default TokenDetailsPage; diff --git a/apps/web-archway/src/pages/proposals/index.tsx b/apps/web-archway/src/pages/proposals/index.tsx new file mode 100644 index 0000000000..983a1874fb --- /dev/null +++ b/apps/web-archway/src/pages/proposals/index.tsx @@ -0,0 +1,10 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import Tokens from '@/screens/proposals'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const TokensPage: NextPage = () => ; + +export const getStaticProps = withGetStaticProps(nextI18NextConfig, 'proposals'); + +export default TokensPage; diff --git a/apps/web-archway/src/pages/server-sitemap.xml/index.tsx b/apps/web-archway/src/pages/server-sitemap.xml/index.tsx new file mode 100644 index 0000000000..9d27abd6ad --- /dev/null +++ b/apps/web-archway/src/pages/server-sitemap.xml/index.tsx @@ -0,0 +1,8 @@ +import ServerSitemap, { getServerSideProps } from 'ui/pages/server-sitemap.xml'; + +// This function is called by Next.js before rendering the page. It returns +// a list of URLs that should be included in the sitemap. +export { getServerSideProps }; + +// Next.js calls this function to render the page. +export default ServerSitemap; diff --git a/apps/web-archway/src/pages/transactions/[tx].tsx b/apps/web-archway/src/pages/transactions/[tx].tsx new file mode 100644 index 0000000000..500faa8fa1 --- /dev/null +++ b/apps/web-archway/src/pages/transactions/[tx].tsx @@ -0,0 +1,16 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import type { NextPage } from 'next'; +import TransactionDetails from '@/screens/transaction_details'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const TransactionDetailsPage: NextPage = () => ; + +export const getStaticPaths = () => ({ paths: [], fallback: 'blocking' }); +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'transactions', + 'message_labels', + 'message_contents' +); + +export default TransactionDetailsPage; diff --git a/apps/web-archway/src/pages/transactions/index.tsx b/apps/web-archway/src/pages/transactions/index.tsx new file mode 100644 index 0000000000..a54a156581 --- /dev/null +++ b/apps/web-archway/src/pages/transactions/index.tsx @@ -0,0 +1,15 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import Transactions from '@/screens/transactions'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const TransactionsPage: NextPage = () => ; + +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'transactions', + 'message_labels', + 'message_contents' +); + +export default TransactionsPage; diff --git a/apps/web-archway/src/pages/validators/[address].tsx b/apps/web-archway/src/pages/validators/[address].tsx new file mode 100644 index 0000000000..657b818c10 --- /dev/null +++ b/apps/web-archway/src/pages/validators/[address].tsx @@ -0,0 +1,18 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import ValidatorDetails from '@/screens/validator_details'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const ValidatorDetailsPage: NextPage = () => ; + +export const getStaticPaths = () => ({ paths: [], fallback: 'blocking' }); +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'validators', + 'transactions', + 'accounts', + 'message_labels', + 'message_contents' +); + +export default ValidatorDetailsPage; diff --git a/apps/web-archway/src/pages/validators/index.tsx b/apps/web-archway/src/pages/validators/index.tsx new file mode 100644 index 0000000000..7ce3ee119a --- /dev/null +++ b/apps/web-archway/src/pages/validators/index.tsx @@ -0,0 +1,17 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import Validators from '@/screens/validators'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const ValidatorsPage: NextPage = () => ; + +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'validators', + 'transactions', + 'accounts', + 'message_labels', + 'message_contents' +); + +export default ValidatorsPage; diff --git a/apps/web-archway/tsconfig.json b/apps/web-archway/tsconfig.json new file mode 100644 index 0000000000..d02c130bbc --- /dev/null +++ b/apps/web-archway/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../packages/tsconfig/nextjs.json", + "compilerOptions": { + "rootDirs": ["../../packages/ui", "."], + "baseUrl": "./src/", + "paths": { + "@/*": ["./*", "../../../packages/ui/src/*"], + "@/public/*": ["../public/*"], + "ui/*": ["../../../packages/ui/src/*"] + } + }, + "include": ["*.d.ts", "src/**/*.ts", "src/**/*.tsx", "../../packages/ui/*.d.ts"] +} diff --git a/packages/shared-utils/assets/icons/archway-both.svg b/packages/shared-utils/assets/icons/archway-both.svg new file mode 100644 index 0000000000..51da389d37 --- /dev/null +++ b/packages/shared-utils/assets/icons/archway-both.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/shared-utils/assets/logos/archway-dark.svg b/packages/shared-utils/assets/logos/archway-dark.svg new file mode 100644 index 0000000000..86177137bd --- /dev/null +++ b/packages/shared-utils/assets/logos/archway-dark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/packages/shared-utils/assets/logos/archway-light.svg b/packages/shared-utils/assets/logos/archway-light.svg new file mode 100644 index 0000000000..15126580a5 --- /dev/null +++ b/packages/shared-utils/assets/logos/archway-light.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/packages/ui/src/components/ChainIcon/index.tsx b/packages/ui/src/components/ChainIcon/index.tsx index c8230e5fe7..5adf4272e9 100644 --- a/packages/ui/src/components/ChainIcon/index.tsx +++ b/packages/ui/src/components/ChainIcon/index.tsx @@ -42,6 +42,7 @@ import kyveIconBoth from 'shared-utils/assets/icons/kyve-both.svg?url'; import humansaiIconDark from 'shared-utils/assets/icons/humansai-both.svg?url'; import gitopiaIconDark from 'shared-utils/assets/icons/gitopia-both.svg?url'; import jackalIconBoth from 'shared-utils/assets/icons/jackal-both.svg?url'; +import archwayIconBoth from 'shared-utils/assets/icons/archway-both.svg?url'; import agoricLogoLight from 'shared-utils/assets/logos/agoric-light.png'; import akashLogoDark from 'shared-utils/assets/logos/akash-dark.svg?url'; import assetmantleLogoDark from 'shared-utils/assets/logos/assetmantle-dark.svg?url'; @@ -88,6 +89,8 @@ import gitopiaLogoDark from 'shared-utils/assets/logos/gitopia-dark.svg?url'; import gitopiaLogoLight from 'shared-utils/assets/logos/gitopia-light.svg?url'; import jackalLogoDark from 'shared-utils/assets/logos/jackal-dark.svg?url'; import jackalLogoLight from 'shared-utils/assets/logos/jackal-light.svg?url'; +import archwayLogoDark from 'shared-utils/assets/logos/archway-dark.svg?url'; +import archwayLogoLight from 'shared-utils/assets/logos/archway-light.svg?url'; interface IconProps extends Omit { type: 'icon' | 'logo'; @@ -282,6 +285,10 @@ const ChainIcon = ({ [iconDark, iconLight] = type === 'icon' ? [jackalIconBoth, jackalIconBoth] : [jackalLogoDark, jackalLogoLight]; break; + case 'archway': + [iconDark, iconLight] = + type === 'icon' ? [archwayIconBoth, archwayIconBoth] : [archwayLogoDark, archwayLogoLight]; + break; default: throw new Error(`chain ${chainName} not supported`); } diff --git a/yarn.lock b/yarn.lock index d67f7d9a0d..89c2972ac0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15775,6 +15775,131 @@ __metadata: languageName: unknown linkType: soft +"web-archway@workspace:apps/web-archway": + version: 0.0.0-use.local + resolution: "web-archway@workspace:apps/web-archway" + dependencies: + "@apollo/client": ^3.7.14 + "@cosmjs/encoding": ^0.30.1 + "@cosmjs/launchpad": ^0.27.1 + "@cosmjs/stargate": ^0.29.5 + "@emotion/cache": ^11.11.0 + "@emotion/jest": ^11.11.0 + "@emotion/react": ^11.11.0 + "@emotion/server": ^11.11.0 + "@emotion/styled": ^11.11.0 + "@graphql-codegen/cli": ^3.3.1 + "@graphql-codegen/client-preset": ^3.0.1 + "@graphql-codegen/fragment-matcher": ^4.0.1 + "@graphql-codegen/typescript": ^3.0.4 + "@graphql-codegen/typescript-operations": ^3.0.4 + "@graphql-codegen/typescript-react-apollo": ^3.3.7 + "@graphql-tools/mock": ^8.7.20 + "@graphql-tools/schema": ^9.0.19 + "@jest/globals": ^29.5.0 + "@keplr-wallet/types": ^0.11.59 + "@keplr-wallet/wc-client": ^0.11.59 + "@mui/icons-material": ^5.11.16 + "@mui/material": ^5.12.3 + "@next/eslint-plugin-next": ^13.4.1 + "@socialgouv/matomo-next": ^1.6.1 + "@svgr/webpack": ^7.0.0 + "@testing-library/jest-dom": ^5.16.5 + "@testing-library/react": ^14.0.0 + "@types/big.js": ^6.1.6 + "@types/color": ^3.0.3 + "@types/eslint": ^8.37.0 + "@types/esprima": ^4.0.3 + "@types/jest": ^29.5.1 + "@types/js-yaml": ^4.0.5 + "@types/node": ^18.16.5 + "@types/numeral": ^2.0.2 + "@types/qs": ^6.9.7 + "@types/ramda": ^0.29.1 + "@types/react": ^18.2.6 + "@types/react-dom": ^18.2.4 + "@types/react-test-renderer": ^18.0.0 + "@types/react-virtualized-auto-sizer": ^1.0.1 + "@types/react-window": ^1.8.5 + "@types/react-window-infinite-loader": ^1.0.6 + "@typescript-eslint/eslint-plugin": ^5.59.2 + "@typescript-eslint/parser": ^5.59.2 + "@walletconnect/client": ^1.8.0 + "@walletconnect/encoding": ^1.0.2 + "@yarnpkg/pnpify": ^4.0.0-rc.43 + apollo-link-rest: ^0.9.0 + bech32: ^2.0.0 + big.js: ^6.2.1 + color: ^4.2.3 + copy-to-clipboard: ^3.3.3 + csstype: ^3.1.2 + dayjs: ^1.11.7 + dotenv: ^16.0.3 + eslint: ^8.40.0 + eslint-config-airbnb: ^19.0.4 + eslint-config-custom: "workspace:*" + eslint-config-next: ^13.4.1 + eslint-config-prettier: ^8.8.0 + eslint-config-turbo: ^1.9.3 + eslint-import-resolver-typescript: ^3.5.5 + eslint-plugin-import: ^2.27.5 + eslint-plugin-jsx-a11y: ^6.7.1 + eslint-plugin-react: ^7.32.2 + eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-turbo: ^1.9.3 + esprima: ^4.0.1 + framer-motion: ^10.12.8 + graphql: ^16.6.0 + graphql-tag: ^2.12.6 + graphql-ws: ^5.12.1 + i18next: ^22.4.15 + jdenticon: ^3.2.0 + jest: ^29.5.0 + jest-cli: ^29.5.0 + jest-environment-jsdom: ^29.5.0 + jest-localstorage-mock: ^2.4.26 + jest-presets: "workspace:*" + jest-transform-stub: ^2.0.0 + jest-watch-typeahead: ^2.2.2 + js-yaml: ^4.1.0 + lightweight-charts: ^4.0.1 + markdown-to-jsx: ^7.2.0 + next: ^13.4.1 + next-i18next: ^13.2.2 + next-seo: ^6.0.0 + next-sitemap: ^4.1.3 + numeral: ^2.0.6 + qrcode.react: ^3.1.0 + qs: ^6.11.1 + ramda: ^0.29.0 + react: ^18.2.0 + react-dom: ^18.2.0 + react-i18next: ^12.2.2 + react-share: ^4.4.1 + react-test-renderer: ^18.2.0 + react-toastify: ^9.1.2 + react-virtualized-auto-sizer: ^1.0.15 + react-window: ^1.8.9 + react-window-infinite-loader: ^1.0.9 + recharts: ^2.5.0 + recoil: ^0.7.7 + shared-utils: "workspace:*" + subscriptions-transport-ws: ^0.11.0 + ts-jest: ^29.1.0 + ts-node: ^10.9.1 + tsconfig: "workspace:*" + tslib: ^2.5.0 + tss-react: ^4.8.3 + typanion: ^3.12.1 + typescript: ^5.0.4 + ui: "workspace:*" + usehooks-ts: ^2.9.1 + ws: ^8.13.0 + xss: ^1.0.14 + zod: ^3.21.4 + languageName: unknown + linkType: soft + "web-assetmantle@workspace:apps/web-assetmantle": version: 0.0.0-use.local resolution: "web-assetmantle@workspace:apps/web-assetmantle" From 13f98a9e4deb27ba050bac40ddd6592c4ffe61b2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 14:48:48 +0800 Subject: [PATCH 03/20] Version Packages (#1299) This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## web-archway@2.18.0 ### Minor Changes - [#1296](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1296) [`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003) Thanks [@rachelhox](https://github.com/rachelhox)! - feat: add Archway Big Dipper ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-desmos@2.20.0 ### Minor Changes - [#1298](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1298) [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca) Thanks [@MonikaCat](https://github.com/MonikaCat)! - Add x/post and x/tokenfactory modules msg types ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## shared-utils@2.23.0 ### Minor Changes - [#1296](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1296) [`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003) Thanks [@rachelhox](https://github.com/rachelhox)! - feat: add Archway Big Dipper ## ui@2.36.0 ### Minor Changes - [#1296](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1296) [`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003) Thanks [@rachelhox](https://github.com/rachelhox)! - feat: add Archway Big Dipper - [#1298](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1298) [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca) Thanks [@MonikaCat](https://github.com/MonikaCat)! - Add x/post and x/tokenfactory modules msg types ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003)]: - shared-utils@2.23.0 ## web@2.17.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-agoric@2.17.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-akash@2.19.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-assetmantle@2.17.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-band@2.17.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-bitsong@2.16.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-celestia@2.18.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-cheqd@2.22.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-comdex@2.19.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-coreum@2.19.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-cosmos@2.17.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-crescent@2.16.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-emoney@2.16.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-evmos@2.16.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-gitopia@2.18.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-humansai@2.19.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-jackal@2.18.1 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-kyve@2.18.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-likecoin@2.16.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-multiversx@2.16.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-nomic@2.18.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-nym@2.17.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-osmosis@2.17.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-persistence@2.19.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-provenance@2.17.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-quasar@2.18.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-quicksilver@2.20.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-regen@2.16.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-rizon@2.17.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-shentu@2.17.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-stride@2.17.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 ## web-wormhole@2.17.3 ### Patch Changes - Updated dependencies \[[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: - shared-utils@2.23.0 - ui@2.36.0 Co-authored-by: github-actions[bot] --- .changeset/afraid-poets-visit.md | 7 ------- .changeset/dry-rules-hear.md | 6 ------ apps/web-agoric/CHANGELOG.md | 8 ++++++++ apps/web-agoric/package.json | 2 +- apps/web-akash/CHANGELOG.md | 8 ++++++++ apps/web-akash/package.json | 2 +- apps/web-archway/CHANGELOG.md | 12 ++++++++++++ apps/web-archway/package.json | 2 +- apps/web-assetmantle/CHANGELOG.md | 8 ++++++++ apps/web-assetmantle/package.json | 2 +- apps/web-band/CHANGELOG.md | 8 ++++++++ apps/web-band/package.json | 2 +- apps/web-bitsong/CHANGELOG.md | 8 ++++++++ apps/web-bitsong/package.json | 2 +- apps/web-celestia/CHANGELOG.md | 8 ++++++++ apps/web-celestia/package.json | 2 +- apps/web-cheqd/CHANGELOG.md | 8 ++++++++ apps/web-cheqd/package.json | 2 +- apps/web-comdex/CHANGELOG.md | 8 ++++++++ apps/web-comdex/package.json | 2 +- apps/web-coreum/CHANGELOG.md | 8 ++++++++ apps/web-coreum/package.json | 2 +- apps/web-cosmos/CHANGELOG.md | 8 ++++++++ apps/web-cosmos/package.json | 2 +- apps/web-crescent/CHANGELOG.md | 8 ++++++++ apps/web-crescent/package.json | 2 +- apps/web-desmos/CHANGELOG.md | 12 ++++++++++++ apps/web-desmos/package.json | 2 +- apps/web-emoney/CHANGELOG.md | 8 ++++++++ apps/web-emoney/package.json | 2 +- apps/web-evmos/CHANGELOG.md | 8 ++++++++ apps/web-evmos/package.json | 2 +- apps/web-gitopia/CHANGELOG.md | 8 ++++++++ apps/web-gitopia/package.json | 2 +- apps/web-humansai/CHANGELOG.md | 8 ++++++++ apps/web-humansai/package.json | 2 +- apps/web-jackal/CHANGELOG.md | 8 ++++++++ apps/web-jackal/package.json | 2 +- apps/web-kyve/CHANGELOG.md | 8 ++++++++ apps/web-kyve/package.json | 2 +- apps/web-likecoin/CHANGELOG.md | 8 ++++++++ apps/web-likecoin/package.json | 2 +- apps/web-multiversx/CHANGELOG.md | 8 ++++++++ apps/web-multiversx/package.json | 2 +- apps/web-nomic/CHANGELOG.md | 8 ++++++++ apps/web-nomic/package.json | 2 +- apps/web-nym/CHANGELOG.md | 8 ++++++++ apps/web-nym/package.json | 2 +- apps/web-osmosis/CHANGELOG.md | 8 ++++++++ apps/web-osmosis/package.json | 2 +- apps/web-persistence/CHANGELOG.md | 8 ++++++++ apps/web-persistence/package.json | 2 +- apps/web-provenance/CHANGELOG.md | 8 ++++++++ apps/web-provenance/package.json | 2 +- apps/web-quasar/CHANGELOG.md | 8 ++++++++ apps/web-quasar/package.json | 2 +- apps/web-quicksilver/CHANGELOG.md | 8 ++++++++ apps/web-quicksilver/package.json | 2 +- apps/web-regen/CHANGELOG.md | 8 ++++++++ apps/web-regen/package.json | 2 +- apps/web-rizon/CHANGELOG.md | 8 ++++++++ apps/web-rizon/package.json | 2 +- apps/web-shentu/CHANGELOG.md | 8 ++++++++ apps/web-shentu/package.json | 2 +- apps/web-stride/CHANGELOG.md | 8 ++++++++ apps/web-stride/package.json | 2 +- apps/web-wormhole/CHANGELOG.md | 8 ++++++++ apps/web-wormhole/package.json | 2 +- apps/web/CHANGELOG.md | 8 ++++++++ apps/web/package.json | 2 +- packages/shared-utils/CHANGELOG.md | 6 ++++++ packages/shared-utils/package.json | 2 +- packages/ui/CHANGELOG.md | 13 +++++++++++++ packages/ui/package.json | 2 +- 74 files changed, 335 insertions(+), 49 deletions(-) delete mode 100644 .changeset/afraid-poets-visit.md delete mode 100644 .changeset/dry-rules-hear.md diff --git a/.changeset/afraid-poets-visit.md b/.changeset/afraid-poets-visit.md deleted file mode 100644 index 581b9f3816..0000000000 --- a/.changeset/afraid-poets-visit.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'shared-utils': minor -'web-archway': minor -'ui': minor ---- - -feat: add Archway Big Dipper diff --git a/.changeset/dry-rules-hear.md b/.changeset/dry-rules-hear.md deleted file mode 100644 index 85fcd5a386..0000000000 --- a/.changeset/dry-rules-hear.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'web-desmos': minor -'ui': minor ---- - -Add x/post and x/tokenfactory modules msg types diff --git a/apps/web-agoric/CHANGELOG.md b/apps/web-agoric/CHANGELOG.md index 0caafcdee5..3dbff48101 100644 --- a/apps/web-agoric/CHANGELOG.md +++ b/apps/web-agoric/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.17.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.17.2 ### Patch Changes diff --git a/apps/web-agoric/package.json b/apps/web-agoric/package.json index b1145d99b5..9e4869cb9a 100644 --- a/apps/web-agoric/package.json +++ b/apps/web-agoric/package.json @@ -1,6 +1,6 @@ { "name": "web-agoric", - "version": "2.17.2", + "version": "2.17.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-akash/CHANGELOG.md b/apps/web-akash/CHANGELOG.md index 669aab116a..9bbc3ba865 100644 --- a/apps/web-akash/CHANGELOG.md +++ b/apps/web-akash/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.19.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.19.2 ### Patch Changes diff --git a/apps/web-akash/package.json b/apps/web-akash/package.json index be974cb394..a7f73e6fc3 100644 --- a/apps/web-akash/package.json +++ b/apps/web-akash/package.json @@ -1,6 +1,6 @@ { "name": "web-akash", - "version": "2.19.2", + "version": "2.19.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-archway/CHANGELOG.md b/apps/web-archway/CHANGELOG.md index d2848929a6..db977752ee 100644 --- a/apps/web-archway/CHANGELOG.md +++ b/apps/web-archway/CHANGELOG.md @@ -1,5 +1,17 @@ # Unreleased +## 2.18.0 + +### Minor Changes + +- [#1296](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1296) [`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003) Thanks [@rachelhox](https://github.com/rachelhox)! - feat: add Archway Big Dipper + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.17.2 ### Patch Changes diff --git a/apps/web-archway/package.json b/apps/web-archway/package.json index 6372086abd..0abb909ef3 100644 --- a/apps/web-archway/package.json +++ b/apps/web-archway/package.json @@ -1,6 +1,6 @@ { "name": "web-archway", - "version": "2.17.2", + "version": "2.18.0", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-assetmantle/CHANGELOG.md b/apps/web-assetmantle/CHANGELOG.md index e3588edaef..7b0f564a96 100644 --- a/apps/web-assetmantle/CHANGELOG.md +++ b/apps/web-assetmantle/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.17.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.17.2 ### Patch Changes diff --git a/apps/web-assetmantle/package.json b/apps/web-assetmantle/package.json index 3e86ec65d8..8f32e1f8dc 100644 --- a/apps/web-assetmantle/package.json +++ b/apps/web-assetmantle/package.json @@ -1,6 +1,6 @@ { "name": "web-assetmantle", - "version": "2.17.2", + "version": "2.17.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-band/CHANGELOG.md b/apps/web-band/CHANGELOG.md index 26034696fc..7afc778066 100644 --- a/apps/web-band/CHANGELOG.md +++ b/apps/web-band/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.17.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.17.2 ### Patch Changes diff --git a/apps/web-band/package.json b/apps/web-band/package.json index 12549d85e0..87f934d065 100644 --- a/apps/web-band/package.json +++ b/apps/web-band/package.json @@ -1,6 +1,6 @@ { "name": "web-band", - "version": "2.17.2", + "version": "2.17.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-bitsong/CHANGELOG.md b/apps/web-bitsong/CHANGELOG.md index dba1419e78..d8e0facd32 100644 --- a/apps/web-bitsong/CHANGELOG.md +++ b/apps/web-bitsong/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.16.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.16.2 ### Patch Changes diff --git a/apps/web-bitsong/package.json b/apps/web-bitsong/package.json index 76e4e76b77..ce87033a59 100644 --- a/apps/web-bitsong/package.json +++ b/apps/web-bitsong/package.json @@ -1,6 +1,6 @@ { "name": "web-bitsong", - "version": "2.16.2", + "version": "2.16.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-celestia/CHANGELOG.md b/apps/web-celestia/CHANGELOG.md index ec93ad8e2b..07152b1fe6 100644 --- a/apps/web-celestia/CHANGELOG.md +++ b/apps/web-celestia/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.18.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.18.2 ### Patch Changes diff --git a/apps/web-celestia/package.json b/apps/web-celestia/package.json index 9debf305eb..8d2c883566 100644 --- a/apps/web-celestia/package.json +++ b/apps/web-celestia/package.json @@ -1,6 +1,6 @@ { "name": "web-celestia", - "version": "2.18.2", + "version": "2.18.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-cheqd/CHANGELOG.md b/apps/web-cheqd/CHANGELOG.md index 2e917a3b86..6fadeb2f8d 100644 --- a/apps/web-cheqd/CHANGELOG.md +++ b/apps/web-cheqd/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.22.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.22.2 ### Patch Changes diff --git a/apps/web-cheqd/package.json b/apps/web-cheqd/package.json index 418f947427..c8165f4359 100644 --- a/apps/web-cheqd/package.json +++ b/apps/web-cheqd/package.json @@ -1,6 +1,6 @@ { "name": "web-cheqd", - "version": "2.22.2", + "version": "2.22.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-comdex/CHANGELOG.md b/apps/web-comdex/CHANGELOG.md index 7c64780660..e9217a7330 100644 --- a/apps/web-comdex/CHANGELOG.md +++ b/apps/web-comdex/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.19.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.19.2 ### Patch Changes diff --git a/apps/web-comdex/package.json b/apps/web-comdex/package.json index 492d5a9aa7..0f400ff465 100644 --- a/apps/web-comdex/package.json +++ b/apps/web-comdex/package.json @@ -1,6 +1,6 @@ { "name": "web-comdex", - "version": "2.19.2", + "version": "2.19.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-coreum/CHANGELOG.md b/apps/web-coreum/CHANGELOG.md index 009b1611e4..1db3cff0b9 100644 --- a/apps/web-coreum/CHANGELOG.md +++ b/apps/web-coreum/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.19.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.19.2 ### Patch Changes diff --git a/apps/web-coreum/package.json b/apps/web-coreum/package.json index e74eb83ea1..955b8b5433 100644 --- a/apps/web-coreum/package.json +++ b/apps/web-coreum/package.json @@ -1,6 +1,6 @@ { "name": "web-coreum", - "version": "2.19.2", + "version": "2.19.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-cosmos/CHANGELOG.md b/apps/web-cosmos/CHANGELOG.md index a785084500..58c5984c54 100644 --- a/apps/web-cosmos/CHANGELOG.md +++ b/apps/web-cosmos/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.17.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.17.2 ### Patch Changes diff --git a/apps/web-cosmos/package.json b/apps/web-cosmos/package.json index 378f0d6d2f..0a8f790a7e 100644 --- a/apps/web-cosmos/package.json +++ b/apps/web-cosmos/package.json @@ -1,6 +1,6 @@ { "name": "web-cosmos", - "version": "2.17.2", + "version": "2.17.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-crescent/CHANGELOG.md b/apps/web-crescent/CHANGELOG.md index 2f1c9bab62..5eedf12945 100644 --- a/apps/web-crescent/CHANGELOG.md +++ b/apps/web-crescent/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.16.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.16.2 ### Patch Changes diff --git a/apps/web-crescent/package.json b/apps/web-crescent/package.json index 779ebdc2f4..aae84b784f 100644 --- a/apps/web-crescent/package.json +++ b/apps/web-crescent/package.json @@ -1,6 +1,6 @@ { "name": "web-crescent", - "version": "2.16.2", + "version": "2.16.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-desmos/CHANGELOG.md b/apps/web-desmos/CHANGELOG.md index b8f9dc5675..55ebbcb40c 100644 --- a/apps/web-desmos/CHANGELOG.md +++ b/apps/web-desmos/CHANGELOG.md @@ -1,5 +1,17 @@ # Unreleased +## 2.20.0 + +### Minor Changes + +- [#1298](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1298) [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca) Thanks [@MonikaCat](https://github.com/MonikaCat)! - Add x/post and x/tokenfactory modules msg types + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.19.2 ### Patch Changes diff --git a/apps/web-desmos/package.json b/apps/web-desmos/package.json index 14cb265a56..6dd11e005c 100644 --- a/apps/web-desmos/package.json +++ b/apps/web-desmos/package.json @@ -1,6 +1,6 @@ { "name": "web-desmos", - "version": "2.19.2", + "version": "2.20.0", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-emoney/CHANGELOG.md b/apps/web-emoney/CHANGELOG.md index 374eface23..c2ef4bc862 100644 --- a/apps/web-emoney/CHANGELOG.md +++ b/apps/web-emoney/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.16.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.16.2 ### Patch Changes diff --git a/apps/web-emoney/package.json b/apps/web-emoney/package.json index 5118189082..e41835376d 100644 --- a/apps/web-emoney/package.json +++ b/apps/web-emoney/package.json @@ -1,6 +1,6 @@ { "name": "web-emoney", - "version": "2.16.2", + "version": "2.16.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-evmos/CHANGELOG.md b/apps/web-evmos/CHANGELOG.md index 7db106585a..1b5c9f3284 100644 --- a/apps/web-evmos/CHANGELOG.md +++ b/apps/web-evmos/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.16.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.16.2 ### Patch Changes diff --git a/apps/web-evmos/package.json b/apps/web-evmos/package.json index a673b5522e..48f370cfad 100644 --- a/apps/web-evmos/package.json +++ b/apps/web-evmos/package.json @@ -1,6 +1,6 @@ { "name": "web-evmos", - "version": "2.16.2", + "version": "2.16.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-gitopia/CHANGELOG.md b/apps/web-gitopia/CHANGELOG.md index 35372d01c1..36698b0bee 100644 --- a/apps/web-gitopia/CHANGELOG.md +++ b/apps/web-gitopia/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.18.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.18.2 ### Patch Changes diff --git a/apps/web-gitopia/package.json b/apps/web-gitopia/package.json index 1f27548a4b..b17449c87b 100644 --- a/apps/web-gitopia/package.json +++ b/apps/web-gitopia/package.json @@ -1,6 +1,6 @@ { "name": "web-gitopia", - "version": "2.18.2", + "version": "2.18.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-humansai/CHANGELOG.md b/apps/web-humansai/CHANGELOG.md index 7e16dba2b2..f6062b006a 100644 --- a/apps/web-humansai/CHANGELOG.md +++ b/apps/web-humansai/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.19.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.19.2 ### Patch Changes diff --git a/apps/web-humansai/package.json b/apps/web-humansai/package.json index eba2212094..f232fd4b89 100644 --- a/apps/web-humansai/package.json +++ b/apps/web-humansai/package.json @@ -1,6 +1,6 @@ { "name": "web-humansai", - "version": "2.19.2", + "version": "2.19.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-jackal/CHANGELOG.md b/apps/web-jackal/CHANGELOG.md index 0e8d0de15c..41403521af 100644 --- a/apps/web-jackal/CHANGELOG.md +++ b/apps/web-jackal/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.18.1 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.18.0 ### Minor Changes diff --git a/apps/web-jackal/package.json b/apps/web-jackal/package.json index 2ecb2dd46b..a76ea109c1 100644 --- a/apps/web-jackal/package.json +++ b/apps/web-jackal/package.json @@ -1,6 +1,6 @@ { "name": "web-jackal", - "version": "2.18.0", + "version": "2.18.1", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-kyve/CHANGELOG.md b/apps/web-kyve/CHANGELOG.md index 91f93280ef..e36b5427cd 100644 --- a/apps/web-kyve/CHANGELOG.md +++ b/apps/web-kyve/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.18.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.18.2 ### Patch Changes diff --git a/apps/web-kyve/package.json b/apps/web-kyve/package.json index 76b51a7c57..4c973bb832 100644 --- a/apps/web-kyve/package.json +++ b/apps/web-kyve/package.json @@ -1,6 +1,6 @@ { "name": "web-kyve", - "version": "2.18.2", + "version": "2.18.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-likecoin/CHANGELOG.md b/apps/web-likecoin/CHANGELOG.md index ddb46a5b88..85439fdf02 100644 --- a/apps/web-likecoin/CHANGELOG.md +++ b/apps/web-likecoin/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.16.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.16.2 ### Patch Changes diff --git a/apps/web-likecoin/package.json b/apps/web-likecoin/package.json index 842535c69a..fadbef2a87 100644 --- a/apps/web-likecoin/package.json +++ b/apps/web-likecoin/package.json @@ -1,6 +1,6 @@ { "name": "web-likecoin", - "version": "2.16.2", + "version": "2.16.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-multiversx/CHANGELOG.md b/apps/web-multiversx/CHANGELOG.md index 0ef9868b61..1ac7aadc72 100644 --- a/apps/web-multiversx/CHANGELOG.md +++ b/apps/web-multiversx/CHANGELOG.md @@ -1,5 +1,13 @@ # v1.0.4 - 2022-06-20 +## 2.16.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.16.2 ### Patch Changes diff --git a/apps/web-multiversx/package.json b/apps/web-multiversx/package.json index ef00d20f5a..31469a6ff8 100644 --- a/apps/web-multiversx/package.json +++ b/apps/web-multiversx/package.json @@ -1,6 +1,6 @@ { "name": "web-multiversx", - "version": "2.16.2", + "version": "2.16.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-nomic/CHANGELOG.md b/apps/web-nomic/CHANGELOG.md index f1bfbae31e..79a0bf31e6 100644 --- a/apps/web-nomic/CHANGELOG.md +++ b/apps/web-nomic/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.18.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.18.2 ### Patch Changes diff --git a/apps/web-nomic/package.json b/apps/web-nomic/package.json index 05f8df8039..6f20216b82 100644 --- a/apps/web-nomic/package.json +++ b/apps/web-nomic/package.json @@ -1,6 +1,6 @@ { "name": "web-nomic", - "version": "2.18.2", + "version": "2.18.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-nym/CHANGELOG.md b/apps/web-nym/CHANGELOG.md index b707ac52b2..302488aadd 100644 --- a/apps/web-nym/CHANGELOG.md +++ b/apps/web-nym/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.17.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.17.2 ### Patch Changes diff --git a/apps/web-nym/package.json b/apps/web-nym/package.json index 9753ad6ae2..782f77a7cd 100644 --- a/apps/web-nym/package.json +++ b/apps/web-nym/package.json @@ -1,6 +1,6 @@ { "name": "web-nym", - "version": "2.17.2", + "version": "2.17.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-osmosis/CHANGELOG.md b/apps/web-osmosis/CHANGELOG.md index f1ee243fb5..66d8ae4e89 100644 --- a/apps/web-osmosis/CHANGELOG.md +++ b/apps/web-osmosis/CHANGELOG.md @@ -1,5 +1,13 @@ # unreleased +## 2.17.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.17.2 ### Patch Changes diff --git a/apps/web-osmosis/package.json b/apps/web-osmosis/package.json index c8353e4565..a309f45655 100644 --- a/apps/web-osmosis/package.json +++ b/apps/web-osmosis/package.json @@ -1,6 +1,6 @@ { "name": "web-osmosis", - "version": "2.17.2", + "version": "2.17.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-persistence/CHANGELOG.md b/apps/web-persistence/CHANGELOG.md index 7a9207db93..df7f095107 100644 --- a/apps/web-persistence/CHANGELOG.md +++ b/apps/web-persistence/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.19.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.19.2 ### Patch Changes diff --git a/apps/web-persistence/package.json b/apps/web-persistence/package.json index 5c619934d7..922487b3cf 100644 --- a/apps/web-persistence/package.json +++ b/apps/web-persistence/package.json @@ -1,6 +1,6 @@ { "name": "web-persistence", - "version": "2.19.2", + "version": "2.19.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-provenance/CHANGELOG.md b/apps/web-provenance/CHANGELOG.md index dbb8d12d11..6dd3950e4f 100644 --- a/apps/web-provenance/CHANGELOG.md +++ b/apps/web-provenance/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.17.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.17.2 ### Patch Changes diff --git a/apps/web-provenance/package.json b/apps/web-provenance/package.json index d4f153895d..cfbff0ca99 100644 --- a/apps/web-provenance/package.json +++ b/apps/web-provenance/package.json @@ -1,6 +1,6 @@ { "name": "web-provenance", - "version": "2.17.2", + "version": "2.17.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-quasar/CHANGELOG.md b/apps/web-quasar/CHANGELOG.md index ddca9c1473..4de00896b1 100644 --- a/apps/web-quasar/CHANGELOG.md +++ b/apps/web-quasar/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.18.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.18.2 ### Patch Changes diff --git a/apps/web-quasar/package.json b/apps/web-quasar/package.json index b20087122e..99fc2a2fad 100644 --- a/apps/web-quasar/package.json +++ b/apps/web-quasar/package.json @@ -1,6 +1,6 @@ { "name": "web-quasar", - "version": "2.18.2", + "version": "2.18.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-quicksilver/CHANGELOG.md b/apps/web-quicksilver/CHANGELOG.md index 2fcacb459a..b5be5d0a3f 100644 --- a/apps/web-quicksilver/CHANGELOG.md +++ b/apps/web-quicksilver/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.20.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.20.2 ### Patch Changes diff --git a/apps/web-quicksilver/package.json b/apps/web-quicksilver/package.json index 5c13d888f7..3a5342fb6a 100644 --- a/apps/web-quicksilver/package.json +++ b/apps/web-quicksilver/package.json @@ -1,6 +1,6 @@ { "name": "web-quicksilver", - "version": "2.20.2", + "version": "2.20.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-regen/CHANGELOG.md b/apps/web-regen/CHANGELOG.md index f7812e488f..9285e8ccd6 100644 --- a/apps/web-regen/CHANGELOG.md +++ b/apps/web-regen/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.16.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.16.2 ### Patch Changes diff --git a/apps/web-regen/package.json b/apps/web-regen/package.json index 0139811e5f..24d3e1ec66 100644 --- a/apps/web-regen/package.json +++ b/apps/web-regen/package.json @@ -1,6 +1,6 @@ { "name": "web-regen", - "version": "2.16.2", + "version": "2.16.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-rizon/CHANGELOG.md b/apps/web-rizon/CHANGELOG.md index 8f0eb21c6c..a5abc97b10 100644 --- a/apps/web-rizon/CHANGELOG.md +++ b/apps/web-rizon/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.17.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.17.2 ### Patch Changes diff --git a/apps/web-rizon/package.json b/apps/web-rizon/package.json index 253f6bcced..4bda2e70e3 100644 --- a/apps/web-rizon/package.json +++ b/apps/web-rizon/package.json @@ -1,6 +1,6 @@ { "name": "web-rizon", - "version": "2.17.2", + "version": "2.17.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-shentu/CHANGELOG.md b/apps/web-shentu/CHANGELOG.md index a6d65d8e16..58446b4601 100644 --- a/apps/web-shentu/CHANGELOG.md +++ b/apps/web-shentu/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.17.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.17.2 ### Patch Changes diff --git a/apps/web-shentu/package.json b/apps/web-shentu/package.json index f461a4c9d1..94f7563eca 100644 --- a/apps/web-shentu/package.json +++ b/apps/web-shentu/package.json @@ -1,6 +1,6 @@ { "name": "web-shentu", - "version": "2.17.2", + "version": "2.17.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-stride/CHANGELOG.md b/apps/web-stride/CHANGELOG.md index 82765f1a0b..17e7292e6b 100644 --- a/apps/web-stride/CHANGELOG.md +++ b/apps/web-stride/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.17.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.17.2 ### Patch Changes diff --git a/apps/web-stride/package.json b/apps/web-stride/package.json index 2da896d707..3ad001478c 100644 --- a/apps/web-stride/package.json +++ b/apps/web-stride/package.json @@ -1,6 +1,6 @@ { "name": "web-stride", - "version": "2.17.2", + "version": "2.17.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web-wormhole/CHANGELOG.md b/apps/web-wormhole/CHANGELOG.md index dde3f2cb28..02badf6b75 100644 --- a/apps/web-wormhole/CHANGELOG.md +++ b/apps/web-wormhole/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.17.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.17.2 ### Patch Changes diff --git a/apps/web-wormhole/package.json b/apps/web-wormhole/package.json index eb86bdd31c..4f0e06658e 100644 --- a/apps/web-wormhole/package.json +++ b/apps/web-wormhole/package.json @@ -1,6 +1,6 @@ { "name": "web-wormhole", - "version": "2.17.2", + "version": "2.17.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/apps/web/CHANGELOG.md b/apps/web/CHANGELOG.md index d2848929a6..75d0549aca 100644 --- a/apps/web/CHANGELOG.md +++ b/apps/web/CHANGELOG.md @@ -1,5 +1,13 @@ # Unreleased +## 2.17.3 + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003), [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca)]: + - shared-utils@2.23.0 + - ui@2.36.0 + ## 2.17.2 ### Patch Changes diff --git a/apps/web/package.json b/apps/web/package.json index 4792ec6f47..5df95dea48 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,6 +1,6 @@ { "name": "web", - "version": "2.17.2", + "version": "2.17.3", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/packages/shared-utils/CHANGELOG.md b/packages/shared-utils/CHANGELOG.md index 7715d89fb8..240e64eb70 100644 --- a/packages/shared-utils/CHANGELOG.md +++ b/packages/shared-utils/CHANGELOG.md @@ -1,5 +1,11 @@ # shared-utils +## 2.23.0 + +### Minor Changes + +- [#1296](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1296) [`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003) Thanks [@rachelhox](https://github.com/rachelhox)! - feat: add Archway Big Dipper + ## 2.22.0 ### Minor Changes diff --git a/packages/shared-utils/package.json b/packages/shared-utils/package.json index 8d10a909f1..169dd77e3e 100644 --- a/packages/shared-utils/package.json +++ b/packages/shared-utils/package.json @@ -1,6 +1,6 @@ { "name": "shared-utils", - "version": "2.22.0", + "version": "2.23.0", "license": "Apache-2.0", "private": true, "scripts": { diff --git a/packages/ui/CHANGELOG.md b/packages/ui/CHANGELOG.md index d7392f59d2..6d632507d9 100644 --- a/packages/ui/CHANGELOG.md +++ b/packages/ui/CHANGELOG.md @@ -1,5 +1,18 @@ # ui +## 2.36.0 + +### Minor Changes + +- [#1296](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1296) [`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003) Thanks [@rachelhox](https://github.com/rachelhox)! - feat: add Archway Big Dipper + +- [#1298](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1298) [`18991b16b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/18991b16bda5af4b993868ee85a280e8b39271ca) Thanks [@MonikaCat](https://github.com/MonikaCat)! - Add x/post and x/tokenfactory modules msg types + +### Patch Changes + +- Updated dependencies [[`584138bbb`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/584138bbb2443b74d437546ad04327fa2f0dd003)]: + - shared-utils@2.23.0 + ## 2.35.0 ### Minor Changes diff --git a/packages/ui/package.json b/packages/ui/package.json index 47f81bfbe0..65ea253b36 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "ui", - "version": "2.35.0", + "version": "2.36.0", "license": "Apache-2.0", "private": true, "scripts": { From 2aa110c9c7c7965bfa468c07797a820387094834 Mon Sep 17 00:00:00 2001 From: Rachel Ho Date: Wed, 6 Sep 2023 16:58:58 +0800 Subject: [PATCH 04/20] feat: accounts transaction loading fix [web-osmosis] (#1300) ## Description Closes: [BDU-1120](https://forbole.atlassian.net/browse/BDU-1120) --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [ ] ran linting via `yarn lint` - [ ] wrote tests where necessary - [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [ ] targeted the correct branch - [ ] provided a link to the relevant issue or specification - [ ] reviewed "Files changed" and left comments if necessary - [ ] confirmed all CI checks have passed - [ ] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) [BDU-1120]: https://forbole.atlassian.net/browse/BDU-1120?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --- .changeset/nervous-gorillas-ring.md | 5 +++++ .../account_details/components/transactions/index.tsx | 6 +++--- packages/ui/src/screens/account_details/hooks.ts | 3 ++- packages/ui/src/screens/account_details/index.tsx | 2 +- packages/ui/src/screens/account_details/types.ts | 1 + 5 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 .changeset/nervous-gorillas-ring.md diff --git a/.changeset/nervous-gorillas-ring.md b/.changeset/nervous-gorillas-ring.md new file mode 100644 index 0000000000..7521d69dd6 --- /dev/null +++ b/.changeset/nervous-gorillas-ring.md @@ -0,0 +1,5 @@ +--- +'ui': minor +--- + +fix: account page issue diff --git a/packages/ui/src/screens/account_details/components/transactions/index.tsx b/packages/ui/src/screens/account_details/components/transactions/index.tsx index 4779314a14..1ff3d56870 100644 --- a/packages/ui/src/screens/account_details/components/transactions/index.tsx +++ b/packages/ui/src/screens/account_details/components/transactions/index.tsx @@ -9,7 +9,7 @@ import { readTx } from '@/recoil/settings'; import { useTransactions } from '@/screens/account_details/components/transactions/hooks'; import useStyles from '@/screens/account_details/components/transactions/styles'; -const Transactions: FC = (props) => { +const Transactions: FC = (props) => { const txListFormat = useRecoilValue(readTx); const { classes, cx } = useStyles(); const { t } = useAppTranslation('validators'); @@ -32,7 +32,7 @@ const Transactions: FC = (props) => { isNextPageLoading={state.isNextPageLoading} loadNextPage={loadNextPage} loadMoreItems={loadMoreItems} - isItemLoaded={isItemLoaded} + isItemLoaded={isItemLoaded || !props.loading} /> ) : ( = (props) => { isNextPageLoading={state.isNextPageLoading} loadNextPage={loadNextPage} loadMoreItems={loadMoreItems} - isItemLoaded={isItemLoaded} + isItemLoaded={isItemLoaded || !props.loading} /> )}

diff --git a/packages/ui/src/screens/account_details/hooks.ts b/packages/ui/src/screens/account_details/hooks.ts index 0698be1c90..6a3592468b 100644 --- a/packages/ui/src/screens/account_details/hooks.ts +++ b/packages/ui/src/screens/account_details/hooks.ts @@ -31,6 +31,7 @@ const defaultTokenUnit: TokenUnit = { const initialState: AccountDetailState = { loading: true, + balanceLoading: true, exists: true, desmosProfile: null, overview: { @@ -196,7 +197,7 @@ const formatOtherTokens = (data: Data) => { // ========================== const formatAllBalance = (data: Data) => { const stateChange: Partial = { - loading: false, + balanceLoading: false, }; stateChange.rewards = formatRewards(data); diff --git a/packages/ui/src/screens/account_details/index.tsx b/packages/ui/src/screens/account_details/index.tsx index 5a68e826dd..6d28e31fd3 100644 --- a/packages/ui/src/screens/account_details/index.tsx +++ b/packages/ui/src/screens/account_details/index.tsx @@ -53,7 +53,7 @@ const AccountDetails = () => { /> - + diff --git a/packages/ui/src/screens/account_details/types.ts b/packages/ui/src/screens/account_details/types.ts index ab96035783..9c9bbdeb32 100644 --- a/packages/ui/src/screens/account_details/types.ts +++ b/packages/ui/src/screens/account_details/types.ts @@ -25,6 +25,7 @@ export interface RewardsType { export interface AccountDetailState { loading: boolean; + balanceLoading: boolean; exists: boolean; desmosProfile: DesmosProfile | null; overview: OverviewType; From dff3cd6ac9373b39a89a1d8f0edc5907178e996f Mon Sep 17 00:00:00 2001 From: Rachel Ho Date: Thu, 7 Sep 2023 11:31:06 +0800 Subject: [PATCH 05/20] feat: add stride [web-stride] (#1297) ## Description Closes: [BDU-1096](https://forbole.atlassian.net/browse/BDU-1096) --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [ ] ran linting via `yarn lint` - [ ] wrote tests where necessary - [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [ ] targeted the correct branch - [ ] provided a link to the relevant issue or specification - [ ] reviewed "Files changed" and left comments if necessary - [ ] confirmed all CI checks have passed - [ ] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) [BDU-1096]: https://forbole.atlassian.net/browse/BDU-1096?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --------- Co-authored-by: Magic Cat --- .../src/components/avatar_name/index.tsx | 44 + .../src/graphql/general/blocks.graphql | 25 +- .../src/graphql/general/token_price.graphql | 1 - .../src/graphql/general/validators.graphql | 41 + .../general/validators_address_list.graphql | 21 + .../src/graphql/types/general_types.ts | 22584 ++++++++++++---- .../hooks/useConsumerCustomValidator/index.ts | 62 + .../src/hooks/useCustomProfile/index.ts | 47 + .../hooks/useProviderCustomValidator/index.ts | 63 + .../components/staking/hooks.ts | 359 + .../src/screens/account_details/hooks.ts | 324 + .../blocks/components/desktop/index.tsx | 206 + .../blocks/components/mobile/index.tsx | 129 + apps/web-stride/src/screens/blocks/hooks.ts | 161 + apps/web-stride/src/screens/blocks/types.ts | 18 + .../blocks/components/desktop/index.tsx | 134 + .../blocks/components/mobile/index.tsx | 65 + .../screens/home/components/blocks/hooks.ts | 52 + .../screens/home/components/blocks/types.ts | 15 + .../src/screens/validator_details/hooks.ts | 161 + .../validators/components/list/hooks.ts | 212 + .../validators/components/list/index.tsx | 57 + .../validators/components/list/types.ts | 32 + 23 files changed, 19041 insertions(+), 5772 deletions(-) create mode 100644 apps/web-stride/src/components/avatar_name/index.tsx create mode 100644 apps/web-stride/src/hooks/useConsumerCustomValidator/index.ts create mode 100644 apps/web-stride/src/hooks/useCustomProfile/index.ts create mode 100644 apps/web-stride/src/hooks/useProviderCustomValidator/index.ts create mode 100644 apps/web-stride/src/screens/account_details/components/staking/hooks.ts create mode 100644 apps/web-stride/src/screens/account_details/hooks.ts create mode 100644 apps/web-stride/src/screens/blocks/components/desktop/index.tsx create mode 100644 apps/web-stride/src/screens/blocks/components/mobile/index.tsx create mode 100644 apps/web-stride/src/screens/blocks/hooks.ts create mode 100644 apps/web-stride/src/screens/blocks/types.ts create mode 100644 apps/web-stride/src/screens/home/components/blocks/components/desktop/index.tsx create mode 100644 apps/web-stride/src/screens/home/components/blocks/components/mobile/index.tsx create mode 100644 apps/web-stride/src/screens/home/components/blocks/hooks.ts create mode 100644 apps/web-stride/src/screens/home/components/blocks/types.ts create mode 100644 apps/web-stride/src/screens/validator_details/hooks.ts create mode 100644 apps/web-stride/src/screens/validators/components/list/hooks.ts create mode 100644 apps/web-stride/src/screens/validators/components/list/index.tsx create mode 100644 apps/web-stride/src/screens/validators/components/list/types.ts diff --git a/apps/web-stride/src/components/avatar_name/index.tsx b/apps/web-stride/src/components/avatar_name/index.tsx new file mode 100644 index 0000000000..4765bfb88b --- /dev/null +++ b/apps/web-stride/src/components/avatar_name/index.tsx @@ -0,0 +1,44 @@ +import Avatar from '@/components/avatar'; +import useStyles from '@/components/avatar_name/styles'; +import MiddleEllipsis from '@/components/MiddleEllipsis'; +import { ADDRESS_DETAILS } from '@/utils/go_to_page'; +import Tooltip from '@mui/material/Tooltip'; +import Zoom from '@mui/material/Zoom'; +import Link from 'next/link'; +import { FC } from 'react'; + +const AvatarName: FC = ({ + className, + address, + name, + imageUrl, + href = ADDRESS_DETAILS, + image, + target, + displayAddress, + ...props +}) => { + const { classes, cx } = useStyles(); + + const adx = displayAddress || address; + + return ( + {adx}} + placement="bottom" + arrow + PopperProps={{ className: classes.popper }} + slotProps={{ tooltip: { className: classes.tooltip } }} + > + + + + + + + + ); +}; + +export default AvatarName; diff --git a/apps/web-stride/src/graphql/general/blocks.graphql b/apps/web-stride/src/graphql/general/blocks.graphql index 037f11e378..da09c84412 100644 --- a/apps/web-stride/src/graphql/general/blocks.graphql +++ b/apps/web-stride/src/graphql/general/blocks.graphql @@ -4,10 +4,9 @@ subscription BlocksListener($limit: Int = 7, $offset: Int = 0) { txs: num_txs hash timestamp - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - } + validator: ccv_validator { + consumerOperatorAddress: consumer_operator_address + providerOperatorAddress: provider_operator_address } } } @@ -19,14 +18,16 @@ query Blocks($limit: Int = 7, $offset: Int = 0) { txs: num_txs hash timestamp - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - self_delegate_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity + ccv_validator { + consumerOperatorAddress: consumer_operator_address + providerOperatorAddress: provider_operator_address + consumerSelfDelegateAddress: consumer_self_delegate_address + providerSelfDelegateAddress: provider_self_delegate_address + validator { + validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { + moniker + identity + } } } } diff --git a/apps/web-stride/src/graphql/general/token_price.graphql b/apps/web-stride/src/graphql/general/token_price.graphql index 8c11321b98..3ed50b2348 100644 --- a/apps/web-stride/src/graphql/general/token_price.graphql +++ b/apps/web-stride/src/graphql/general/token_price.graphql @@ -1,6 +1,5 @@ subscription TokenPriceListener($denom: String) { tokenPrice: token_price(where: {unit_name: {_eq: $denom}}) { - id price timestamp marketCap: market_cap diff --git a/apps/web-stride/src/graphql/general/validators.graphql b/apps/web-stride/src/graphql/general/validators.graphql index 20f3b19335..9ff0da224a 100644 --- a/apps/web-stride/src/graphql/general/validators.graphql +++ b/apps/web-stride/src/graphql/general/validators.graphql @@ -12,6 +12,16 @@ query Validators { missedBlocksCounter: missed_blocks_counter tombstoned } + ccv_validator { + providerOperatorAddress: provider_operator_address + } + validatorDescriptions: validator_descriptions { + moniker + avatar_url + validator_address + website + details + } validatorInfo: validator_info { operatorAddress: operator_address selfDelegateAddress: self_delegate_address @@ -30,3 +40,34 @@ query Validators { params } } + +query ConsumerCustomValidator($consumerAddress: String) { + validatorInfo: validator_info(where: {operator_address: {_eq: $consumerAddress}}) { + validator { + validatorDescriptions: validator_descriptions { + moniker + avatar_url + validator_address + website + details + } + } + } +} + +query ProviderCustomValidator($providerAddress: String) { + ccv_validator(where: {provider_operator_address: {_eq: $providerAddress}}) { + ccv_validator_info { + operator_address + validator { + validatorDescriptions: validator_descriptions { + moniker + avatar_url + validator_address + website + details + } + } + } + } +} \ No newline at end of file diff --git a/apps/web-stride/src/graphql/general/validators_address_list.graphql b/apps/web-stride/src/graphql/general/validators_address_list.graphql index d018f104bc..7a105bb9f1 100644 --- a/apps/web-stride/src/graphql/general/validators_address_list.graphql +++ b/apps/web-stride/src/graphql/general/validators_address_list.graphql @@ -26,3 +26,24 @@ query ValidatorAddresses { } } } + +query ValidatorConsumerProviderAddresses { + ccv_validator( + where: {consumer_consensus_address: {_is_null: false}, provider_consensus_address: {_is_null: false}} + ) { + consumerOperatorAddress: consumer_operator_address + providerOperatorAddress: provider_operator_address + providerSelfDelegateAddress: provider_self_delegate_address + validator { + validatorDescriptions: validator_descriptions( + limit: 1 + order_by: {height: desc} + ) { + moniker + avatarUrl: avatar_url + details + website + } + } + } +} diff --git a/apps/web-stride/src/graphql/types/general_types.ts b/apps/web-stride/src/graphql/types/general_types.ts index 3e26db5baa..5a87a922f9 100644 --- a/apps/web-stride/src/graphql/types/general_types.ts +++ b/apps/web-stride/src/graphql/types/general_types.ts @@ -21,11 +21,26 @@ export type Scalars = { _coin: any; _dec_coin: any; _text: any; + bdjuno_provider_ActionCoin: any; + bdjuno_provider_ActionDelegation: any; + bdjuno_provider_ActionPagination: any; + bdjuno_provider_ActionRedelegation: any; + bdjuno_provider_ActionUnbondingDelegation: any; + bdjuno_provider__coin: any; + bdjuno_provider__dec_coin: any; + bdjuno_provider__text: any; + bdjuno_provider_bigint: any; + bdjuno_provider_jsonb: any; + bdjuno_provider_numeric: any; + bdjuno_provider_smallint: any; + bdjuno_provider_timestamp: any; + bdjuno_provider_timestamptz: any; bigint: any; jsonb: any; numeric: any; smallint: any; timestamp: any; + timestamptz: any; }; export type ActionAddress = { @@ -170,62 +185,58 @@ export type Account = { __typename?: 'account'; address: Scalars['String']; /** An array relationship */ + feeGrantAllowancesByGranterAddress: Array; + /** An array relationship */ + fee_grant_allowances: Array; + /** An array relationship */ proposal_deposits: Array; - /** An aggregate relationship */ - proposal_deposits_aggregate: Proposal_Deposit_Aggregate; /** An array relationship */ proposal_votes: Array; - /** An aggregate relationship */ - proposal_votes_aggregate: Proposal_Vote_Aggregate; /** An array relationship */ proposals: Array; /** An aggregate relationship */ proposals_aggregate: Proposal_Aggregate; /** An array relationship */ validator_infos: Array; - /** An aggregate relationship */ - validator_infos_aggregate: Validator_Info_Aggregate; /** An object relationship */ vesting_account?: Maybe; /** An array relationship */ vesting_accounts: Array; - /** An aggregate relationship */ - vesting_accounts_aggregate: Vesting_Account_Aggregate; }; /** columns and relationships of "account" */ -export type AccountProposal_DepositsArgs = { - distinct_on?: InputMaybe>; +export type AccountFeeGrantAllowancesByGranterAddressArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; /** columns and relationships of "account" */ -export type AccountProposal_Deposits_AggregateArgs = { - distinct_on?: InputMaybe>; +export type AccountFee_Grant_AllowancesArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; /** columns and relationships of "account" */ -export type AccountProposal_VotesArgs = { - distinct_on?: InputMaybe>; +export type AccountProposal_DepositsArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; /** columns and relationships of "account" */ -export type AccountProposal_Votes_AggregateArgs = { +export type AccountProposal_VotesArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -264,16 +275,6 @@ export type AccountValidator_InfosArgs = { }; -/** columns and relationships of "account" */ -export type AccountValidator_Infos_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - /** columns and relationships of "account" */ export type AccountVesting_AccountsArgs = { distinct_on?: InputMaybe>; @@ -283,67 +284,28 @@ export type AccountVesting_AccountsArgs = { where?: InputMaybe; }; - -/** columns and relationships of "account" */ -export type AccountVesting_Accounts_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - -/** aggregated selection of "account" */ -export type Account_Aggregate = { - __typename?: 'account_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "account" */ -export type Account_Aggregate_Fields = { - __typename?: 'account_aggregate_fields'; - count: Scalars['Int']; - max?: Maybe; - min?: Maybe; -}; - - -/** aggregate fields of "account" */ -export type Account_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - /** Boolean expression to filter rows from the table "account". All fields are combined with a logical 'AND'. */ export type Account_Bool_Exp = { _and?: InputMaybe>; _not?: InputMaybe; _or?: InputMaybe>; address?: InputMaybe; + feeGrantAllowancesByGranterAddress?: InputMaybe; + fee_grant_allowances?: InputMaybe; proposal_deposits?: InputMaybe; proposal_votes?: InputMaybe; proposals?: InputMaybe; + proposals_aggregate?: InputMaybe; validator_infos?: InputMaybe; vesting_account?: InputMaybe; vesting_accounts?: InputMaybe; }; -/** aggregate max on columns */ -export type Account_Max_Fields = { - __typename?: 'account_max_fields'; - address?: Maybe; -}; - -/** aggregate min on columns */ -export type Account_Min_Fields = { - __typename?: 'account_min_fields'; - address?: Maybe; -}; - /** Ordering options when selecting data from "account". */ export type Account_Order_By = { address?: InputMaybe; + feeGrantAllowancesByGranterAddress_aggregate?: InputMaybe; + fee_grant_allowances_aggregate?: InputMaybe; proposal_deposits_aggregate?: InputMaybe; proposal_votes_aggregate?: InputMaybe; proposals_aggregate?: InputMaybe; @@ -358,6 +320,19 @@ export enum Account_Select_Column { Address = 'address' } +/** Streaming cursor of the table "account" */ +export type Account_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Account_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Account_Stream_Cursor_Value_Input = { + address?: InputMaybe; +}; + /** columns and relationships of "average_block_time_from_genesis" */ export type Average_Block_Time_From_Genesis = { __typename?: 'average_block_time_from_genesis'; @@ -365,43 +340,6 @@ export type Average_Block_Time_From_Genesis = { height: Scalars['bigint']; }; -/** aggregated selection of "average_block_time_from_genesis" */ -export type Average_Block_Time_From_Genesis_Aggregate = { - __typename?: 'average_block_time_from_genesis_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "average_block_time_from_genesis" */ -export type Average_Block_Time_From_Genesis_Aggregate_Fields = { - __typename?: 'average_block_time_from_genesis_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 "average_block_time_from_genesis" */ -export type Average_Block_Time_From_Genesis_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - -/** aggregate avg on columns */ -export type Average_Block_Time_From_Genesis_Avg_Fields = { - __typename?: 'average_block_time_from_genesis_avg_fields'; - average_time?: Maybe; - height?: Maybe; -}; - /** Boolean expression to filter rows from the table "average_block_time_from_genesis". All fields are combined with a logical 'AND'. */ export type Average_Block_Time_From_Genesis_Bool_Exp = { _and?: InputMaybe>; @@ -411,20 +349,6 @@ export type Average_Block_Time_From_Genesis_Bool_Exp = { height?: InputMaybe; }; -/** aggregate max on columns */ -export type Average_Block_Time_From_Genesis_Max_Fields = { - __typename?: 'average_block_time_from_genesis_max_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate min on columns */ -export type Average_Block_Time_From_Genesis_Min_Fields = { - __typename?: 'average_block_time_from_genesis_min_fields'; - average_time?: Maybe; - height?: Maybe; -}; - /** Ordering options when selecting data from "average_block_time_from_genesis". */ export type Average_Block_Time_From_Genesis_Order_By = { average_time?: InputMaybe; @@ -439,53 +363,18 @@ export enum Average_Block_Time_From_Genesis_Select_Column { Height = 'height' } -/** aggregate stddev on columns */ -export type Average_Block_Time_From_Genesis_Stddev_Fields = { - __typename?: 'average_block_time_from_genesis_stddev_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate stddev_pop on columns */ -export type Average_Block_Time_From_Genesis_Stddev_Pop_Fields = { - __typename?: 'average_block_time_from_genesis_stddev_pop_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate stddev_samp on columns */ -export type Average_Block_Time_From_Genesis_Stddev_Samp_Fields = { - __typename?: 'average_block_time_from_genesis_stddev_samp_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate sum on columns */ -export type Average_Block_Time_From_Genesis_Sum_Fields = { - __typename?: 'average_block_time_from_genesis_sum_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate var_pop on columns */ -export type Average_Block_Time_From_Genesis_Var_Pop_Fields = { - __typename?: 'average_block_time_from_genesis_var_pop_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate var_samp on columns */ -export type Average_Block_Time_From_Genesis_Var_Samp_Fields = { - __typename?: 'average_block_time_from_genesis_var_samp_fields'; - average_time?: Maybe; - height?: Maybe; +/** Streaming cursor of the table "average_block_time_from_genesis" */ +export type Average_Block_Time_From_Genesis_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Average_Block_Time_From_Genesis_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; }; -/** aggregate variance on columns */ -export type Average_Block_Time_From_Genesis_Variance_Fields = { - __typename?: 'average_block_time_from_genesis_variance_fields'; - average_time?: Maybe; - height?: Maybe; +/** Initial value of the column from where the streaming should start */ +export type Average_Block_Time_From_Genesis_Stream_Cursor_Value_Input = { + average_time?: InputMaybe; + height?: InputMaybe; }; /** columns and relationships of "average_block_time_per_day" */ @@ -495,43 +384,6 @@ export type Average_Block_Time_Per_Day = { height: Scalars['bigint']; }; -/** aggregated selection of "average_block_time_per_day" */ -export type Average_Block_Time_Per_Day_Aggregate = { - __typename?: 'average_block_time_per_day_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "average_block_time_per_day" */ -export type Average_Block_Time_Per_Day_Aggregate_Fields = { - __typename?: 'average_block_time_per_day_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 "average_block_time_per_day" */ -export type Average_Block_Time_Per_Day_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - -/** aggregate avg on columns */ -export type Average_Block_Time_Per_Day_Avg_Fields = { - __typename?: 'average_block_time_per_day_avg_fields'; - average_time?: Maybe; - height?: Maybe; -}; - /** Boolean expression to filter rows from the table "average_block_time_per_day". All fields are combined with a logical 'AND'. */ export type Average_Block_Time_Per_Day_Bool_Exp = { _and?: InputMaybe>; @@ -541,20 +393,6 @@ export type Average_Block_Time_Per_Day_Bool_Exp = { height?: InputMaybe; }; -/** aggregate max on columns */ -export type Average_Block_Time_Per_Day_Max_Fields = { - __typename?: 'average_block_time_per_day_max_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate min on columns */ -export type Average_Block_Time_Per_Day_Min_Fields = { - __typename?: 'average_block_time_per_day_min_fields'; - average_time?: Maybe; - height?: Maybe; -}; - /** Ordering options when selecting data from "average_block_time_per_day". */ export type Average_Block_Time_Per_Day_Order_By = { average_time?: InputMaybe; @@ -569,53 +407,18 @@ export enum Average_Block_Time_Per_Day_Select_Column { Height = 'height' } -/** aggregate stddev on columns */ -export type Average_Block_Time_Per_Day_Stddev_Fields = { - __typename?: 'average_block_time_per_day_stddev_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate stddev_pop on columns */ -export type Average_Block_Time_Per_Day_Stddev_Pop_Fields = { - __typename?: 'average_block_time_per_day_stddev_pop_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate stddev_samp on columns */ -export type Average_Block_Time_Per_Day_Stddev_Samp_Fields = { - __typename?: 'average_block_time_per_day_stddev_samp_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate sum on columns */ -export type Average_Block_Time_Per_Day_Sum_Fields = { - __typename?: 'average_block_time_per_day_sum_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate var_pop on columns */ -export type Average_Block_Time_Per_Day_Var_Pop_Fields = { - __typename?: 'average_block_time_per_day_var_pop_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate var_samp on columns */ -export type Average_Block_Time_Per_Day_Var_Samp_Fields = { - __typename?: 'average_block_time_per_day_var_samp_fields'; - average_time?: Maybe; - height?: Maybe; +/** Streaming cursor of the table "average_block_time_per_day" */ +export type Average_Block_Time_Per_Day_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Average_Block_Time_Per_Day_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; }; -/** aggregate variance on columns */ -export type Average_Block_Time_Per_Day_Variance_Fields = { - __typename?: 'average_block_time_per_day_variance_fields'; - average_time?: Maybe; - height?: Maybe; +/** Initial value of the column from where the streaming should start */ +export type Average_Block_Time_Per_Day_Stream_Cursor_Value_Input = { + average_time?: InputMaybe; + height?: InputMaybe; }; /** columns and relationships of "average_block_time_per_hour" */ @@ -625,43 +428,6 @@ export type Average_Block_Time_Per_Hour = { height: Scalars['bigint']; }; -/** aggregated selection of "average_block_time_per_hour" */ -export type Average_Block_Time_Per_Hour_Aggregate = { - __typename?: 'average_block_time_per_hour_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "average_block_time_per_hour" */ -export type Average_Block_Time_Per_Hour_Aggregate_Fields = { - __typename?: 'average_block_time_per_hour_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 "average_block_time_per_hour" */ -export type Average_Block_Time_Per_Hour_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - -/** aggregate avg on columns */ -export type Average_Block_Time_Per_Hour_Avg_Fields = { - __typename?: 'average_block_time_per_hour_avg_fields'; - average_time?: Maybe; - height?: Maybe; -}; - /** Boolean expression to filter rows from the table "average_block_time_per_hour". All fields are combined with a logical 'AND'. */ export type Average_Block_Time_Per_Hour_Bool_Exp = { _and?: InputMaybe>; @@ -671,20 +437,6 @@ export type Average_Block_Time_Per_Hour_Bool_Exp = { height?: InputMaybe; }; -/** aggregate max on columns */ -export type Average_Block_Time_Per_Hour_Max_Fields = { - __typename?: 'average_block_time_per_hour_max_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate min on columns */ -export type Average_Block_Time_Per_Hour_Min_Fields = { - __typename?: 'average_block_time_per_hour_min_fields'; - average_time?: Maybe; - height?: Maybe; -}; - /** Ordering options when selecting data from "average_block_time_per_hour". */ export type Average_Block_Time_Per_Hour_Order_By = { average_time?: InputMaybe; @@ -699,53 +451,18 @@ export enum Average_Block_Time_Per_Hour_Select_Column { Height = 'height' } -/** aggregate stddev on columns */ -export type Average_Block_Time_Per_Hour_Stddev_Fields = { - __typename?: 'average_block_time_per_hour_stddev_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate stddev_pop on columns */ -export type Average_Block_Time_Per_Hour_Stddev_Pop_Fields = { - __typename?: 'average_block_time_per_hour_stddev_pop_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate stddev_samp on columns */ -export type Average_Block_Time_Per_Hour_Stddev_Samp_Fields = { - __typename?: 'average_block_time_per_hour_stddev_samp_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate sum on columns */ -export type Average_Block_Time_Per_Hour_Sum_Fields = { - __typename?: 'average_block_time_per_hour_sum_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate var_pop on columns */ -export type Average_Block_Time_Per_Hour_Var_Pop_Fields = { - __typename?: 'average_block_time_per_hour_var_pop_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate var_samp on columns */ -export type Average_Block_Time_Per_Hour_Var_Samp_Fields = { - __typename?: 'average_block_time_per_hour_var_samp_fields'; - average_time?: Maybe; - height?: Maybe; +/** Streaming cursor of the table "average_block_time_per_hour" */ +export type Average_Block_Time_Per_Hour_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Average_Block_Time_Per_Hour_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; }; -/** aggregate variance on columns */ -export type Average_Block_Time_Per_Hour_Variance_Fields = { - __typename?: 'average_block_time_per_hour_variance_fields'; - average_time?: Maybe; - height?: Maybe; +/** Initial value of the column from where the streaming should start */ +export type Average_Block_Time_Per_Hour_Stream_Cursor_Value_Input = { + average_time?: InputMaybe; + height?: InputMaybe; }; /** columns and relationships of "average_block_time_per_minute" */ @@ -755,43 +472,6 @@ export type Average_Block_Time_Per_Minute = { height: Scalars['bigint']; }; -/** aggregated selection of "average_block_time_per_minute" */ -export type Average_Block_Time_Per_Minute_Aggregate = { - __typename?: 'average_block_time_per_minute_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "average_block_time_per_minute" */ -export type Average_Block_Time_Per_Minute_Aggregate_Fields = { - __typename?: 'average_block_time_per_minute_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 "average_block_time_per_minute" */ -export type Average_Block_Time_Per_Minute_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - -/** aggregate avg on columns */ -export type Average_Block_Time_Per_Minute_Avg_Fields = { - __typename?: 'average_block_time_per_minute_avg_fields'; - average_time?: Maybe; - height?: Maybe; -}; - /** Boolean expression to filter rows from the table "average_block_time_per_minute". All fields are combined with a logical 'AND'. */ export type Average_Block_Time_Per_Minute_Bool_Exp = { _and?: InputMaybe>; @@ -801,20 +481,6 @@ export type Average_Block_Time_Per_Minute_Bool_Exp = { height?: InputMaybe; }; -/** aggregate max on columns */ -export type Average_Block_Time_Per_Minute_Max_Fields = { - __typename?: 'average_block_time_per_minute_max_fields'; - average_time?: Maybe; - height?: Maybe; -}; - -/** aggregate min on columns */ -export type Average_Block_Time_Per_Minute_Min_Fields = { - __typename?: 'average_block_time_per_minute_min_fields'; - average_time?: Maybe; - height?: Maybe; -}; - /** Ordering options when selecting data from "average_block_time_per_minute". */ export type Average_Block_Time_Per_Minute_Order_By = { average_time?: InputMaybe; @@ -829,4000 +495,16776 @@ export enum Average_Block_Time_Per_Minute_Select_Column { Height = 'height' } -/** aggregate stddev on columns */ -export type Average_Block_Time_Per_Minute_Stddev_Fields = { - __typename?: 'average_block_time_per_minute_stddev_fields'; - average_time?: Maybe; - height?: Maybe; +/** Streaming cursor of the table "average_block_time_per_minute" */ +export type Average_Block_Time_Per_Minute_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Average_Block_Time_Per_Minute_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; }; -/** aggregate stddev_pop on columns */ -export type Average_Block_Time_Per_Minute_Stddev_Pop_Fields = { - __typename?: 'average_block_time_per_minute_stddev_pop_fields'; - average_time?: Maybe; - height?: Maybe; +/** Initial value of the column from where the streaming should start */ +export type Average_Block_Time_Per_Minute_Stream_Cursor_Value_Input = { + average_time?: InputMaybe; + height?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Average_Block_Time_Per_Minute_Stddev_Samp_Fields = { - __typename?: 'average_block_time_per_minute_stddev_samp_fields'; - average_time?: Maybe; - height?: Maybe; +export type Bdjuno_Provider_ActionAddress = { + __typename?: 'bdjuno_provider_ActionAddress'; + address: Scalars['String']; }; -/** aggregate sum on columns */ -export type Average_Block_Time_Per_Minute_Sum_Fields = { - __typename?: 'average_block_time_per_minute_sum_fields'; - average_time?: Maybe; - height?: Maybe; +export type Bdjuno_Provider_ActionBalance = { + __typename?: 'bdjuno_provider_ActionBalance'; + coins?: Maybe>>; }; -/** aggregate var_pop on columns */ -export type Average_Block_Time_Per_Minute_Var_Pop_Fields = { - __typename?: 'average_block_time_per_minute_var_pop_fields'; - average_time?: Maybe; - height?: Maybe; +export type Bdjuno_Provider_ActionDelegationResponse = { + __typename?: 'bdjuno_provider_ActionDelegationResponse'; + delegations?: Maybe>>; + pagination?: Maybe; }; -/** aggregate var_samp on columns */ -export type Average_Block_Time_Per_Minute_Var_Samp_Fields = { - __typename?: 'average_block_time_per_minute_var_samp_fields'; - average_time?: Maybe; - height?: Maybe; +export type Bdjuno_Provider_ActionDelegationReward = { + __typename?: 'bdjuno_provider_ActionDelegationReward'; + coins?: Maybe>>; + validator_address: Scalars['String']; }; -/** aggregate variance on columns */ -export type Average_Block_Time_Per_Minute_Variance_Fields = { - __typename?: 'average_block_time_per_minute_variance_fields'; - average_time?: Maybe; - height?: Maybe; +export type Bdjuno_Provider_ActionRedelegationResponse = { + __typename?: 'bdjuno_provider_ActionRedelegationResponse'; + pagination?: Maybe; + redelegations?: Maybe>>; }; -/** Boolean expression to compare columns of type "bigint". All fields are combined with logical 'AND'. */ -export type Bigint_Comparison_Exp = { - _eq?: InputMaybe; - _gt?: InputMaybe; - _gte?: InputMaybe; - _in?: InputMaybe>; +export type Bdjuno_Provider_ActionUnbondingDelegationResponse = { + __typename?: 'bdjuno_provider_ActionUnbondingDelegationResponse'; + pagination?: Maybe; + unbonding_delegations?: Maybe>>; +}; + +export type Bdjuno_Provider_ActionValidatorCommissionAmount = { + __typename?: 'bdjuno_provider_ActionValidatorCommissionAmount'; + coins?: Maybe>>; +}; + +export type Bdjuno_Provider_Boolean_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; _is_null?: InputMaybe; - _lt?: InputMaybe; - _lte?: InputMaybe; - _neq?: InputMaybe; - _nin?: InputMaybe>; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; }; -/** columns and relationships of "block" */ -export type Block = { - __typename?: 'block'; - hash: Scalars['String']; - height: Scalars['bigint']; - num_txs?: Maybe; - /** An array relationship */ - pre_commits: Array; - /** An aggregate relationship */ - pre_commits_aggregate: Pre_Commit_Aggregate; - /** An array relationship */ - proposal_deposits: Array; - /** An aggregate relationship */ - proposal_deposits_aggregate: Proposal_Deposit_Aggregate; - /** An array relationship */ - proposal_votes: Array; - /** An aggregate relationship */ - proposal_votes_aggregate: Proposal_Vote_Aggregate; - proposer_address?: Maybe; - timestamp: Scalars['timestamp']; - total_gas?: Maybe; - /** An array relationship */ - transactions: Array; - /** An aggregate relationship */ - transactions_aggregate: Transaction_Aggregate; - /** An object relationship */ - validator?: Maybe; - /** An array relationship */ - validator_voting_powers: Array; - /** An aggregate relationship */ - validator_voting_powers_aggregate: Validator_Voting_Power_Aggregate; +export type Bdjuno_Provider_Int_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; }; +export type Bdjuno_Provider_String_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _ilike?: InputMaybe; + _in?: InputMaybe>; + _iregex?: InputMaybe; + _is_null?: InputMaybe; + _like?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nilike?: InputMaybe; + _nin?: InputMaybe>; + _niregex?: InputMaybe; + _nlike?: InputMaybe; + _nregex?: InputMaybe; + _nsimilar?: InputMaybe; + _regex?: InputMaybe; + _similar?: InputMaybe; +}; -/** columns and relationships of "block" */ -export type BlockPre_CommitsArgs = { - distinct_on?: InputMaybe>; +export type Bdjuno_Provider__Coin_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider__Dec_Coin_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider__Text_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Account = { + __typename?: 'bdjuno_provider_account'; + address: Scalars['String']; + feeGrantAllowancesByGranterAddress: Array; + feeGrantAllowancesByGranterAddress_aggregate: Bdjuno_Provider_Fee_Grant_Allowance_Aggregate; + fee_grant_allowances: Array; + fee_grant_allowances_aggregate: Bdjuno_Provider_Fee_Grant_Allowance_Aggregate; + proposal_deposits: Array; + proposal_deposits_aggregate: Bdjuno_Provider_Proposal_Deposit_Aggregate; + proposal_votes: Array; + proposal_votes_aggregate: Bdjuno_Provider_Proposal_Vote_Aggregate; + proposals: Array; + proposals_aggregate: Bdjuno_Provider_Proposal_Aggregate; + validator_infos: Array; + validator_infos_aggregate: Bdjuno_Provider_Validator_Info_Aggregate; + vesting_account?: Maybe; + vesting_accounts: Array; + vesting_accounts_aggregate: Bdjuno_Provider_Vesting_Account_Aggregate; +}; + + +export type Bdjuno_Provider_AccountFeeGrantAllowancesByGranterAddressArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "block" */ -export type BlockPre_Commits_AggregateArgs = { - distinct_on?: InputMaybe>; +export type Bdjuno_Provider_AccountFeeGrantAllowancesByGranterAddress_AggregateArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "block" */ -export type BlockProposal_DepositsArgs = { - distinct_on?: InputMaybe>; +export type Bdjuno_Provider_AccountFee_Grant_AllowancesArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "block" */ -export type BlockProposal_Deposits_AggregateArgs = { - distinct_on?: InputMaybe>; +export type Bdjuno_Provider_AccountFee_Grant_Allowances_AggregateArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "block" */ -export type BlockProposal_VotesArgs = { - distinct_on?: InputMaybe>; +export type Bdjuno_Provider_AccountProposal_DepositsArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "block" */ -export type BlockProposal_Votes_AggregateArgs = { - distinct_on?: InputMaybe>; +export type Bdjuno_Provider_AccountProposal_Deposits_AggregateArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "block" */ -export type BlockTransactionsArgs = { - distinct_on?: InputMaybe>; +export type Bdjuno_Provider_AccountProposal_VotesArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "block" */ -export type BlockTransactions_AggregateArgs = { - distinct_on?: InputMaybe>; +export type Bdjuno_Provider_AccountProposal_Votes_AggregateArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "block" */ -export type BlockValidator_Voting_PowersArgs = { - distinct_on?: InputMaybe>; +export type Bdjuno_Provider_AccountProposalsArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "block" */ -export type BlockValidator_Voting_Powers_AggregateArgs = { - distinct_on?: InputMaybe>; +export type Bdjuno_Provider_AccountProposals_AggregateArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** aggregated selection of "block" */ -export type Block_Aggregate = { - __typename?: 'block_aggregate'; - aggregate?: Maybe; - nodes: Array; + +export type Bdjuno_Provider_AccountValidator_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** aggregate fields of "block" */ -export type Block_Aggregate_Fields = { - __typename?: 'block_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; + +export type Bdjuno_Provider_AccountValidator_Infos_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** aggregate fields of "block" */ -export type Block_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; +export type Bdjuno_Provider_AccountVesting_AccountsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** order by aggregate values of table "block" */ -export type Block_Aggregate_Order_By = { - avg?: InputMaybe; - count?: InputMaybe; - max?: InputMaybe; - min?: InputMaybe; - stddev?: InputMaybe; - stddev_pop?: InputMaybe; - stddev_samp?: InputMaybe; - sum?: InputMaybe; - var_pop?: InputMaybe; - var_samp?: InputMaybe; - variance?: InputMaybe; + +export type Bdjuno_Provider_AccountVesting_Accounts_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** aggregate avg on columns */ -export type Block_Avg_Fields = { - __typename?: 'block_avg_fields'; - height?: Maybe; - num_txs?: Maybe; - total_gas?: Maybe; +export type Bdjuno_Provider_Account_Aggregate = { + __typename?: 'bdjuno_provider_account_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** order by avg() on columns of table "block" */ -export type Block_Avg_Order_By = { - height?: InputMaybe; - num_txs?: InputMaybe; - total_gas?: InputMaybe; +export type Bdjuno_Provider_Account_Aggregate_Fields = { + __typename?: 'bdjuno_provider_account_aggregate_fields'; + count: Scalars['Int']; + max?: Maybe; + min?: Maybe; }; -/** Boolean expression to filter rows from the table "block". All fields are combined with a logical 'AND'. */ -export type Block_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - hash?: InputMaybe; - height?: InputMaybe; - num_txs?: InputMaybe; - pre_commits?: InputMaybe; - proposal_deposits?: InputMaybe; - proposal_votes?: InputMaybe; - proposer_address?: InputMaybe; - timestamp?: InputMaybe; - total_gas?: InputMaybe; - transactions?: InputMaybe; - validator?: InputMaybe; - validator_voting_powers?: InputMaybe; + +export type Bdjuno_Provider_Account_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; }; -/** aggregate max on columns */ -export type Block_Max_Fields = { - __typename?: 'block_max_fields'; - hash?: Maybe; - height?: Maybe; - num_txs?: Maybe; - proposer_address?: Maybe; - timestamp?: Maybe; - total_gas?: Maybe; +export type Bdjuno_Provider_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + address?: InputMaybe; + feeGrantAllowancesByGranterAddress?: InputMaybe; + fee_grant_allowances?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposals?: InputMaybe; + validator_infos?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts?: InputMaybe; }; -/** order by max() on columns of table "block" */ -export type Block_Max_Order_By = { - hash?: InputMaybe; - height?: InputMaybe; - num_txs?: InputMaybe; - proposer_address?: InputMaybe; - timestamp?: InputMaybe; - total_gas?: InputMaybe; +export type Bdjuno_Provider_Account_Max_Fields = { + __typename?: 'bdjuno_provider_account_max_fields'; + address?: Maybe; }; -/** aggregate min on columns */ -export type Block_Min_Fields = { - __typename?: 'block_min_fields'; - hash?: Maybe; - height?: Maybe; - num_txs?: Maybe; - proposer_address?: Maybe; - timestamp?: Maybe; - total_gas?: Maybe; +export type Bdjuno_Provider_Account_Min_Fields = { + __typename?: 'bdjuno_provider_account_min_fields'; + address?: Maybe; }; -/** order by min() on columns of table "block" */ -export type Block_Min_Order_By = { - hash?: InputMaybe; - height?: InputMaybe; - num_txs?: InputMaybe; - proposer_address?: InputMaybe; - timestamp?: InputMaybe; - total_gas?: InputMaybe; +export type Bdjuno_Provider_Account_Order_By = { + address?: InputMaybe; + feeGrantAllowancesByGranterAddress_aggregate?: InputMaybe; + fee_grant_allowances_aggregate?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposals_aggregate?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts_aggregate?: InputMaybe; }; -/** Ordering options when selecting data from "block". */ -export type Block_Order_By = { - hash?: InputMaybe; - height?: InputMaybe; - num_txs?: InputMaybe; - pre_commits_aggregate?: InputMaybe; - proposal_deposits_aggregate?: InputMaybe; - proposal_votes_aggregate?: InputMaybe; - proposer_address?: InputMaybe; - timestamp?: InputMaybe; - total_gas?: InputMaybe; - transactions_aggregate?: InputMaybe; - validator?: InputMaybe; - validator_voting_powers_aggregate?: InputMaybe; +export enum Bdjuno_Provider_Account_Select_Column { + Address = 'address' +} + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis'; + average_time: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; }; -/** select columns of table "block" */ -export enum Block_Select_Column { - /** column name */ - Hash = 'hash', - /** column name */ - Height = 'height', - /** column name */ - NumTxs = 'num_txs', - /** column name */ - ProposerAddress = 'proposer_address', - /** column name */ - Timestamp = 'timestamp', - /** column name */ - TotalGas = 'total_gas' -} +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Aggregate = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; -/** aggregate stddev on columns */ -export type Block_Stddev_Fields = { - __typename?: 'block_stddev_fields'; - height?: Maybe; - num_txs?: Maybe; - total_gas?: Maybe; +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Aggregate_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_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; }; -/** order by stddev() on columns of table "block" */ -export type Block_Stddev_Order_By = { - height?: InputMaybe; - num_txs?: InputMaybe; - total_gas?: InputMaybe; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; }; -/** aggregate stddev_pop on columns */ -export type Block_Stddev_Pop_Fields = { - __typename?: 'block_stddev_pop_fields'; +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Avg_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_avg_fields'; + average_time?: Maybe; height?: Maybe; - num_txs?: Maybe; - total_gas?: Maybe; }; -/** order by stddev_pop() on columns of table "block" */ -export type Block_Stddev_Pop_Order_By = { - height?: InputMaybe; - num_txs?: InputMaybe; - total_gas?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Block_Stddev_Samp_Fields = { - __typename?: 'block_stddev_samp_fields'; - height?: Maybe; - num_txs?: Maybe; - total_gas?: Maybe; +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Max_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_max_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** order by stddev_samp() on columns of table "block" */ -export type Block_Stddev_Samp_Order_By = { - height?: InputMaybe; - num_txs?: InputMaybe; - total_gas?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Min_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_min_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** aggregate sum on columns */ -export type Block_Sum_Fields = { - __typename?: 'block_sum_fields'; - height?: Maybe; - num_txs?: Maybe; - total_gas?: Maybe; +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; }; -/** order by sum() on columns of table "block" */ -export type Block_Sum_Order_By = { - height?: InputMaybe; - num_txs?: InputMaybe; - total_gas?: InputMaybe; -}; +export enum Bdjuno_Provider_Average_Block_Time_From_Genesis_Select_Column { + AverageTime = 'average_time', + Height = 'height' +} -/** aggregate var_pop on columns */ -export type Block_Var_Pop_Fields = { - __typename?: 'block_var_pop_fields'; +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Stddev_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_stddev_fields'; + average_time?: Maybe; height?: Maybe; - num_txs?: Maybe; - total_gas?: Maybe; }; -/** order by var_pop() on columns of table "block" */ -export type Block_Var_Pop_Order_By = { - height?: InputMaybe; - num_txs?: InputMaybe; - total_gas?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_stddev_pop_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** aggregate var_samp on columns */ -export type Block_Var_Samp_Fields = { - __typename?: 'block_var_samp_fields'; +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_stddev_samp_fields'; + average_time?: Maybe; height?: Maybe; - num_txs?: Maybe; - total_gas?: Maybe; }; -/** order by var_samp() on columns of table "block" */ -export type Block_Var_Samp_Order_By = { - height?: InputMaybe; - num_txs?: InputMaybe; - total_gas?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Sum_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_sum_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** aggregate variance on columns */ -export type Block_Variance_Fields = { - __typename?: 'block_variance_fields'; +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_var_pop_fields'; + average_time?: Maybe; height?: Maybe; - num_txs?: Maybe; - total_gas?: Maybe; }; -/** order by variance() on columns of table "block" */ -export type Block_Variance_Order_By = { - height?: InputMaybe; - num_txs?: InputMaybe; - total_gas?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_var_samp_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** columns and relationships of "community_pool" */ -export type Community_Pool = { - __typename?: 'community_pool'; - coins: Scalars['_dec_coin']; - height: Scalars['bigint']; +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Variance_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_variance_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day = { + __typename?: 'bdjuno_provider_average_block_time_per_day'; + average_time: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; }; -/** aggregated selection of "community_pool" */ -export type Community_Pool_Aggregate = { - __typename?: 'community_pool_aggregate'; - aggregate?: Maybe; - nodes: Array; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Aggregate = { + __typename?: 'bdjuno_provider_average_block_time_per_day_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "community_pool" */ -export type Community_Pool_Aggregate_Fields = { - __typename?: 'community_pool_aggregate_fields'; - avg?: Maybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Aggregate_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_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 "community_pool" */ -export type Community_Pool_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** aggregate avg on columns */ -export type Community_Pool_Avg_Fields = { - __typename?: 'community_pool_avg_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Avg_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_avg_fields'; + average_time?: Maybe; height?: Maybe; }; -/** Boolean expression to filter rows from the table "community_pool". All fields are combined with a logical 'AND'. */ -export type Community_Pool_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - coins?: InputMaybe<_Dec_Coin_Comparison_Exp>; - height?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; }; -/** aggregate max on columns */ -export type Community_Pool_Max_Fields = { - __typename?: 'community_pool_max_fields'; - height?: Maybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Max_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_max_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** aggregate min on columns */ -export type Community_Pool_Min_Fields = { - __typename?: 'community_pool_min_fields'; - height?: Maybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Min_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_min_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** Ordering options when selecting data from "community_pool". */ -export type Community_Pool_Order_By = { - coins?: InputMaybe; - height?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; }; -/** select columns of table "community_pool" */ -export enum Community_Pool_Select_Column { - /** column name */ - Coins = 'coins', - /** column name */ +export enum Bdjuno_Provider_Average_Block_Time_Per_Day_Select_Column { + AverageTime = 'average_time', Height = 'height' } -/** aggregate stddev on columns */ -export type Community_Pool_Stddev_Fields = { - __typename?: 'community_pool_stddev_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Stddev_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_stddev_fields'; + average_time?: Maybe; height?: Maybe; }; -/** aggregate stddev_pop on columns */ -export type Community_Pool_Stddev_Pop_Fields = { - __typename?: 'community_pool_stddev_pop_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_stddev_pop_fields'; + average_time?: Maybe; height?: Maybe; }; -/** aggregate stddev_samp on columns */ -export type Community_Pool_Stddev_Samp_Fields = { - __typename?: 'community_pool_stddev_samp_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_stddev_samp_fields'; + average_time?: Maybe; height?: Maybe; }; -/** aggregate sum on columns */ -export type Community_Pool_Sum_Fields = { - __typename?: 'community_pool_sum_fields'; - height?: Maybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Sum_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_sum_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** aggregate var_pop on columns */ -export type Community_Pool_Var_Pop_Fields = { - __typename?: 'community_pool_var_pop_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_var_pop_fields'; + average_time?: Maybe; height?: Maybe; }; -/** aggregate var_samp on columns */ -export type Community_Pool_Var_Samp_Fields = { - __typename?: 'community_pool_var_samp_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_var_samp_fields'; + average_time?: Maybe; height?: Maybe; }; -/** aggregate variance on columns */ -export type Community_Pool_Variance_Fields = { - __typename?: 'community_pool_variance_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Variance_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_variance_fields'; + average_time?: Maybe; height?: 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?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour = { + __typename?: 'bdjuno_provider_average_block_time_per_hour'; + average_time: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; }; -/** aggregated selection of "distribution_params" */ -export type Distribution_Params_Aggregate = { - __typename?: 'distribution_params_aggregate'; - aggregate?: Maybe; - nodes: Array; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Aggregate = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "distribution_params" */ -export type Distribution_Params_Aggregate_Fields = { - __typename?: 'distribution_params_aggregate_fields'; - avg?: Maybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Aggregate_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_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?: InputMaybe>; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** aggregate avg on columns */ -export type Distribution_Params_Avg_Fields = { - __typename?: 'distribution_params_avg_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Avg_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_avg_fields'; + average_time?: Maybe; height?: 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?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - height?: InputMaybe; - one_row_id?: InputMaybe; - params?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; }; -/** aggregate max on columns */ -export type Distribution_Params_Max_Fields = { - __typename?: 'distribution_params_max_fields'; - height?: Maybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Max_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_max_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** aggregate min on columns */ -export type Distribution_Params_Min_Fields = { - __typename?: 'distribution_params_min_fields'; - height?: Maybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Min_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_min_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** Ordering options when selecting data from "distribution_params". */ -export type Distribution_Params_Order_By = { - height?: InputMaybe; - one_row_id?: InputMaybe; - params?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; }; -/** select columns of table "distribution_params" */ -export enum Distribution_Params_Select_Column { - /** column name */ - Height = 'height', - /** column name */ - OneRowId = 'one_row_id', - /** column name */ - Params = 'params' +export enum Bdjuno_Provider_Average_Block_Time_Per_Hour_Select_Column { + AverageTime = 'average_time', + Height = 'height' } -/** aggregate stddev on columns */ -export type Distribution_Params_Stddev_Fields = { - __typename?: 'distribution_params_stddev_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Stddev_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_stddev_fields'; + average_time?: Maybe; height?: Maybe; }; -/** aggregate stddev_pop on columns */ -export type Distribution_Params_Stddev_Pop_Fields = { - __typename?: 'distribution_params_stddev_pop_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_stddev_pop_fields'; + average_time?: Maybe; height?: Maybe; }; -/** aggregate stddev_samp on columns */ -export type Distribution_Params_Stddev_Samp_Fields = { - __typename?: 'distribution_params_stddev_samp_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_stddev_samp_fields'; + average_time?: Maybe; height?: Maybe; }; -/** aggregate sum on columns */ -export type Distribution_Params_Sum_Fields = { - __typename?: 'distribution_params_sum_fields'; - height?: Maybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Sum_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_sum_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** aggregate var_pop on columns */ -export type Distribution_Params_Var_Pop_Fields = { - __typename?: 'distribution_params_var_pop_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_var_pop_fields'; + average_time?: Maybe; height?: Maybe; }; -/** aggregate var_samp on columns */ -export type Distribution_Params_Var_Samp_Fields = { - __typename?: 'distribution_params_var_samp_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_var_samp_fields'; + average_time?: Maybe; height?: Maybe; }; -/** aggregate variance on columns */ -export type Distribution_Params_Variance_Fields = { - __typename?: 'distribution_params_variance_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Variance_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_variance_fields'; + average_time?: Maybe; height?: Maybe; }; -/** columns and relationships of "double_sign_evidence" */ -export type Double_Sign_Evidence = { - __typename?: 'double_sign_evidence'; - /** An object relationship */ - doubleSignVoteByVoteAId: Double_Sign_Vote; - /** An object relationship */ - double_sign_vote: Double_Sign_Vote; - height: Scalars['bigint']; - vote_a_id: Scalars['bigint']; - vote_b_id: Scalars['bigint']; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute = { + __typename?: 'bdjuno_provider_average_block_time_per_minute'; + average_time: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; }; -/** aggregated selection of "double_sign_evidence" */ -export type Double_Sign_Evidence_Aggregate = { - __typename?: 'double_sign_evidence_aggregate'; - aggregate?: Maybe; - nodes: Array; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Aggregate = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "double_sign_evidence" */ -export type Double_Sign_Evidence_Aggregate_Fields = { - __typename?: 'double_sign_evidence_aggregate_fields'; - avg?: Maybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Aggregate_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_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 "double_sign_evidence" */ -export type Double_Sign_Evidence_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** order by aggregate values of table "double_sign_evidence" */ -export type Double_Sign_Evidence_Aggregate_Order_By = { - avg?: InputMaybe; - count?: InputMaybe; - max?: InputMaybe; - min?: InputMaybe; - stddev?: InputMaybe; - stddev_pop?: InputMaybe; - stddev_samp?: InputMaybe; - sum?: InputMaybe; - var_pop?: InputMaybe; - var_samp?: InputMaybe; - variance?: InputMaybe; -}; - -/** aggregate avg on columns */ -export type Double_Sign_Evidence_Avg_Fields = { - __typename?: 'double_sign_evidence_avg_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Avg_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_avg_fields'; + average_time?: Maybe; height?: Maybe; - vote_a_id?: Maybe; - vote_b_id?: Maybe; }; -/** order by avg() on columns of table "double_sign_evidence" */ -export type Double_Sign_Evidence_Avg_Order_By = { - height?: InputMaybe; - vote_a_id?: InputMaybe; - vote_b_id?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; }; -/** Boolean expression to filter rows from the table "double_sign_evidence". All fields are combined with a logical 'AND'. */ -export type Double_Sign_Evidence_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - doubleSignVoteByVoteAId?: InputMaybe; - double_sign_vote?: InputMaybe; - height?: InputMaybe; - vote_a_id?: InputMaybe; - vote_b_id?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Max_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_max_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** aggregate max on columns */ -export type Double_Sign_Evidence_Max_Fields = { - __typename?: 'double_sign_evidence_max_fields'; - height?: Maybe; - vote_a_id?: Maybe; - vote_b_id?: Maybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Min_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_min_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** order by max() on columns of table "double_sign_evidence" */ -export type Double_Sign_Evidence_Max_Order_By = { - height?: InputMaybe; - vote_a_id?: InputMaybe; - vote_b_id?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; }; -/** aggregate min on columns */ -export type Double_Sign_Evidence_Min_Fields = { - __typename?: 'double_sign_evidence_min_fields'; - height?: Maybe; - vote_a_id?: Maybe; - vote_b_id?: Maybe; -}; +export enum Bdjuno_Provider_Average_Block_Time_Per_Minute_Select_Column { + AverageTime = 'average_time', + Height = 'height' +} -/** order by min() on columns of table "double_sign_evidence" */ -export type Double_Sign_Evidence_Min_Order_By = { - height?: InputMaybe; - vote_a_id?: InputMaybe; - vote_b_id?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Stddev_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_stddev_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** Ordering options when selecting data from "double_sign_evidence". */ -export type Double_Sign_Evidence_Order_By = { - doubleSignVoteByVoteAId?: InputMaybe; - double_sign_vote?: InputMaybe; - height?: InputMaybe; - vote_a_id?: InputMaybe; - vote_b_id?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_stddev_pop_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** select columns of table "double_sign_evidence" */ -export enum Double_Sign_Evidence_Select_Column { - /** column name */ - Height = 'height', - /** column name */ - VoteAId = 'vote_a_id', - /** column name */ - VoteBId = 'vote_b_id' -} - -/** aggregate stddev on columns */ -export type Double_Sign_Evidence_Stddev_Fields = { - __typename?: 'double_sign_evidence_stddev_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_stddev_samp_fields'; + average_time?: Maybe; height?: Maybe; - vote_a_id?: Maybe; - vote_b_id?: Maybe; }; -/** order by stddev() on columns of table "double_sign_evidence" */ -export type Double_Sign_Evidence_Stddev_Order_By = { - height?: InputMaybe; - vote_a_id?: InputMaybe; - vote_b_id?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Sum_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_sum_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** aggregate stddev_pop on columns */ -export type Double_Sign_Evidence_Stddev_Pop_Fields = { - __typename?: 'double_sign_evidence_stddev_pop_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_var_pop_fields'; + average_time?: Maybe; height?: Maybe; - vote_a_id?: Maybe; - vote_b_id?: Maybe; }; -/** order by stddev_pop() on columns of table "double_sign_evidence" */ -export type Double_Sign_Evidence_Stddev_Pop_Order_By = { - height?: InputMaybe; - vote_a_id?: InputMaybe; - vote_b_id?: InputMaybe; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_var_samp_fields'; + average_time?: Maybe; + height?: Maybe; }; -/** aggregate stddev_samp on columns */ -export type Double_Sign_Evidence_Stddev_Samp_Fields = { - __typename?: 'double_sign_evidence_stddev_samp_fields'; +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Variance_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_variance_fields'; + average_time?: Maybe; height?: Maybe; - vote_a_id?: Maybe; - vote_b_id?: Maybe; }; -/** order by stddev_samp() on columns of table "double_sign_evidence" */ -export type Double_Sign_Evidence_Stddev_Samp_Order_By = { - height?: InputMaybe; - vote_a_id?: InputMaybe; - vote_b_id?: InputMaybe; +export type Bdjuno_Provider_Bigint_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; }; -/** aggregate sum on columns */ -export type Double_Sign_Evidence_Sum_Fields = { - __typename?: 'double_sign_evidence_sum_fields'; - height?: Maybe; - vote_a_id?: Maybe; - vote_b_id?: Maybe; +export type Bdjuno_Provider_Block = { + __typename?: 'bdjuno_provider_block'; + hash: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + num_txs?: Maybe; + pre_commits: Array; + pre_commits_aggregate: Bdjuno_Provider_Pre_Commit_Aggregate; + proposal_deposits: Array; + proposal_deposits_aggregate: Bdjuno_Provider_Proposal_Deposit_Aggregate; + proposal_votes: Array; + proposal_votes_aggregate: Bdjuno_Provider_Proposal_Vote_Aggregate; + proposer_address?: Maybe; + timestamp: Scalars['bdjuno_provider_timestamp']; + total_gas?: Maybe; + transactions: Array; + transactions_aggregate: Bdjuno_Provider_Transaction_Aggregate; + validator?: Maybe; + validator_voting_powers: Array; + validator_voting_powers_aggregate: Bdjuno_Provider_Validator_Voting_Power_Aggregate; }; -/** order by sum() on columns of table "double_sign_evidence" */ -export type Double_Sign_Evidence_Sum_Order_By = { - height?: InputMaybe; - vote_a_id?: InputMaybe; - vote_b_id?: InputMaybe; -}; -/** aggregate var_pop on columns */ -export type Double_Sign_Evidence_Var_Pop_Fields = { - __typename?: 'double_sign_evidence_var_pop_fields'; - height?: Maybe; - vote_a_id?: Maybe; - vote_b_id?: Maybe; +export type Bdjuno_Provider_BlockPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** order by var_pop() on columns of table "double_sign_evidence" */ -export type Double_Sign_Evidence_Var_Pop_Order_By = { - height?: InputMaybe; - vote_a_id?: InputMaybe; - vote_b_id?: InputMaybe; -}; -/** aggregate var_samp on columns */ -export type Double_Sign_Evidence_Var_Samp_Fields = { - __typename?: 'double_sign_evidence_var_samp_fields'; - height?: Maybe; - vote_a_id?: Maybe; - vote_b_id?: Maybe; +export type Bdjuno_Provider_BlockPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** order by var_samp() on columns of table "double_sign_evidence" */ -export type Double_Sign_Evidence_Var_Samp_Order_By = { - height?: InputMaybe; - vote_a_id?: InputMaybe; - vote_b_id?: InputMaybe; + +export type Bdjuno_Provider_BlockProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** aggregate variance on columns */ -export type Double_Sign_Evidence_Variance_Fields = { - __typename?: 'double_sign_evidence_variance_fields'; - height?: Maybe; - vote_a_id?: Maybe; - vote_b_id?: Maybe; + +export type Bdjuno_Provider_BlockProposal_Deposits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** order by variance() on columns of table "double_sign_evidence" */ -export type Double_Sign_Evidence_Variance_Order_By = { - height?: InputMaybe; - vote_a_id?: InputMaybe; - vote_b_id?: InputMaybe; + +export type Bdjuno_Provider_BlockProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "double_sign_vote" */ -export type Double_Sign_Vote = { - __typename?: 'double_sign_vote'; - block_id: Scalars['String']; - /** An array relationship */ - doubleSignEvidencesByVoteBId: Array; - /** An aggregate relationship */ - doubleSignEvidencesByVoteBId_aggregate: Double_Sign_Evidence_Aggregate; - /** An array relationship */ - double_sign_evidences: Array; - /** An aggregate relationship */ - double_sign_evidences_aggregate: Double_Sign_Evidence_Aggregate; - height: Scalars['bigint']; - id: Scalars['Int']; - round: Scalars['Int']; - signature: Scalars['String']; - type: Scalars['smallint']; - /** An object relationship */ - validator: Validator; - validator_address: Scalars['String']; - validator_index: Scalars['Int']; + +export type Bdjuno_Provider_BlockProposal_Votes_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "double_sign_vote" */ -export type Double_Sign_VoteDoubleSignEvidencesByVoteBIdArgs = { - distinct_on?: InputMaybe>; +export type Bdjuno_Provider_BlockTransactionsArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "double_sign_vote" */ -export type Double_Sign_VoteDoubleSignEvidencesByVoteBId_AggregateArgs = { - distinct_on?: InputMaybe>; +export type Bdjuno_Provider_BlockTransactions_AggregateArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "double_sign_vote" */ -export type Double_Sign_VoteDouble_Sign_EvidencesArgs = { - distinct_on?: InputMaybe>; +export type Bdjuno_Provider_BlockValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "double_sign_vote" */ -export type Double_Sign_VoteDouble_Sign_Evidences_AggregateArgs = { - distinct_on?: InputMaybe>; +export type Bdjuno_Provider_BlockValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** aggregated selection of "double_sign_vote" */ -export type Double_Sign_Vote_Aggregate = { - __typename?: 'double_sign_vote_aggregate'; - aggregate?: Maybe; - nodes: Array; +export type Bdjuno_Provider_Block_Aggregate = { + __typename?: 'bdjuno_provider_block_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "double_sign_vote" */ -export type Double_Sign_Vote_Aggregate_Fields = { - __typename?: 'double_sign_vote_aggregate_fields'; - avg?: Maybe; +export type Bdjuno_Provider_Block_Aggregate_Fields = { + __typename?: 'bdjuno_provider_block_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 "double_sign_vote" */ -export type Double_Sign_Vote_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +export type Bdjuno_Provider_Block_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** order by aggregate values of table "double_sign_vote" */ -export type Double_Sign_Vote_Aggregate_Order_By = { - avg?: InputMaybe; - count?: InputMaybe; - max?: InputMaybe; - min?: InputMaybe; - stddev?: InputMaybe; - stddev_pop?: InputMaybe; - stddev_samp?: InputMaybe; - sum?: InputMaybe; - var_pop?: InputMaybe; - var_samp?: InputMaybe; - variance?: InputMaybe; +export type Bdjuno_Provider_Block_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; }; -/** aggregate avg on columns */ -export type Double_Sign_Vote_Avg_Fields = { - __typename?: 'double_sign_vote_avg_fields'; +export type Bdjuno_Provider_Block_Avg_Fields = { + __typename?: 'bdjuno_provider_block_avg_fields'; height?: Maybe; - id?: Maybe; - round?: Maybe; - type?: Maybe; - validator_index?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; }; -/** order by avg() on columns of table "double_sign_vote" */ -export type Double_Sign_Vote_Avg_Order_By = { - height?: InputMaybe; - id?: InputMaybe; - round?: InputMaybe; - type?: InputMaybe; - validator_index?: InputMaybe; +export type Bdjuno_Provider_Block_Avg_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Max_Fields = { + __typename?: 'bdjuno_provider_block_max_fields'; + hash?: Maybe; + height?: Maybe; + num_txs?: Maybe; + proposer_address?: Maybe; + timestamp?: Maybe; + total_gas?: Maybe; }; -/** Boolean expression to filter rows from the table "double_sign_vote". All fields are combined with a logical 'AND'. */ -export type Double_Sign_Vote_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - block_id?: InputMaybe; - doubleSignEvidencesByVoteBId?: InputMaybe; - double_sign_evidences?: InputMaybe; - height?: InputMaybe; - id?: InputMaybe; - round?: InputMaybe; - signature?: InputMaybe; - type?: InputMaybe; - validator?: InputMaybe; - validator_address?: InputMaybe; - validator_index?: InputMaybe; +export type Bdjuno_Provider_Block_Max_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; }; -/** aggregate max on columns */ -export type Double_Sign_Vote_Max_Fields = { - __typename?: 'double_sign_vote_max_fields'; - block_id?: Maybe; - height?: Maybe; - id?: Maybe; - round?: Maybe; - signature?: Maybe; - type?: Maybe; - validator_address?: Maybe; - validator_index?: Maybe; +export type Bdjuno_Provider_Block_Min_Fields = { + __typename?: 'bdjuno_provider_block_min_fields'; + hash?: Maybe; + height?: Maybe; + num_txs?: Maybe; + proposer_address?: Maybe; + timestamp?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Min_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions_aggregate?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +export enum Bdjuno_Provider_Block_Select_Column { + Hash = 'hash', + Height = 'height', + NumTxs = 'num_txs', + ProposerAddress = 'proposer_address', + Timestamp = 'timestamp', + TotalGas = 'total_gas' +} + +export type Bdjuno_Provider_Block_Stddev_Fields = { + __typename?: 'bdjuno_provider_block_stddev_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; }; -/** order by max() on columns of table "double_sign_vote" */ -export type Double_Sign_Vote_Max_Order_By = { - block_id?: InputMaybe; - height?: InputMaybe; - id?: InputMaybe; - round?: InputMaybe; - signature?: InputMaybe; - type?: InputMaybe; - validator_address?: InputMaybe; - validator_index?: InputMaybe; +export type Bdjuno_Provider_Block_Stddev_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; }; -/** aggregate min on columns */ -export type Double_Sign_Vote_Min_Fields = { - __typename?: 'double_sign_vote_min_fields'; - block_id?: Maybe; - height?: Maybe; - id?: Maybe; - round?: Maybe; - signature?: Maybe; - type?: Maybe; - validator_address?: Maybe; - validator_index?: Maybe; +export type Bdjuno_Provider_Block_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_block_stddev_pop_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; }; -/** order by min() on columns of table "double_sign_vote" */ -export type Double_Sign_Vote_Min_Order_By = { - block_id?: InputMaybe; - height?: InputMaybe; - id?: InputMaybe; - round?: InputMaybe; - signature?: InputMaybe; - type?: InputMaybe; - validator_address?: InputMaybe; - validator_index?: InputMaybe; +export type Bdjuno_Provider_Block_Stddev_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; }; -/** Ordering options when selecting data from "double_sign_vote". */ -export type Double_Sign_Vote_Order_By = { - block_id?: InputMaybe; - doubleSignEvidencesByVoteBId_aggregate?: InputMaybe; - double_sign_evidences_aggregate?: InputMaybe; - height?: InputMaybe; - id?: InputMaybe; - round?: InputMaybe; - signature?: InputMaybe; - type?: InputMaybe; - validator?: InputMaybe; - validator_address?: InputMaybe; - validator_index?: InputMaybe; +export type Bdjuno_Provider_Block_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_block_stddev_samp_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; }; -/** select columns of table "double_sign_vote" */ -export enum Double_Sign_Vote_Select_Column { - /** column name */ - BlockId = 'block_id', - /** column name */ - Height = 'height', - /** column name */ - Id = 'id', - /** column name */ - Round = 'round', - /** column name */ - Signature = 'signature', - /** column name */ - Type = 'type', - /** column name */ - ValidatorAddress = 'validator_address', - /** column name */ - ValidatorIndex = 'validator_index' -} +export type Bdjuno_Provider_Block_Stddev_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; -/** aggregate stddev on columns */ -export type Double_Sign_Vote_Stddev_Fields = { - __typename?: 'double_sign_vote_stddev_fields'; +export type Bdjuno_Provider_Block_Sum_Fields = { + __typename?: 'bdjuno_provider_block_sum_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Sum_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_block_var_pop_fields'; height?: Maybe; - id?: Maybe; - round?: Maybe; - type?: Maybe; - validator_index?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; }; -/** order by stddev() on columns of table "double_sign_vote" */ -export type Double_Sign_Vote_Stddev_Order_By = { - height?: InputMaybe; - id?: InputMaybe; - round?: InputMaybe; - type?: InputMaybe; - validator_index?: InputMaybe; +export type Bdjuno_Provider_Block_Var_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; }; -/** aggregate stddev_pop on columns */ -export type Double_Sign_Vote_Stddev_Pop_Fields = { - __typename?: 'double_sign_vote_stddev_pop_fields'; +export type Bdjuno_Provider_Block_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_block_var_samp_fields'; height?: Maybe; - id?: Maybe; - round?: Maybe; - type?: Maybe; - validator_index?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; }; -/** order by stddev_pop() on columns of table "double_sign_vote" */ -export type Double_Sign_Vote_Stddev_Pop_Order_By = { - height?: InputMaybe; - id?: InputMaybe; - round?: InputMaybe; - type?: InputMaybe; - validator_index?: InputMaybe; +export type Bdjuno_Provider_Block_Var_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Double_Sign_Vote_Stddev_Samp_Fields = { - __typename?: 'double_sign_vote_stddev_samp_fields'; +export type Bdjuno_Provider_Block_Variance_Fields = { + __typename?: 'bdjuno_provider_block_variance_fields'; height?: Maybe; - id?: Maybe; - round?: Maybe; - type?: Maybe; - validator_index?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; }; -/** order by stddev_samp() on columns of table "double_sign_vote" */ -export type Double_Sign_Vote_Stddev_Samp_Order_By = { - height?: InputMaybe; - id?: InputMaybe; - round?: InputMaybe; - type?: InputMaybe; - validator_index?: InputMaybe; +export type Bdjuno_Provider_Block_Variance_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; }; -/** aggregate sum on columns */ -export type Double_Sign_Vote_Sum_Fields = { - __typename?: 'double_sign_vote_sum_fields'; - height?: Maybe; - id?: Maybe; - round?: Maybe; - type?: Maybe; - validator_index?: Maybe; +export type Bdjuno_Provider_Community_Pool = { + __typename?: 'bdjuno_provider_community_pool'; + coins: Scalars['bdjuno_provider__dec_coin']; + height: Scalars['bdjuno_provider_bigint']; }; -/** order by sum() on columns of table "double_sign_vote" */ -export type Double_Sign_Vote_Sum_Order_By = { - height?: InputMaybe; - id?: InputMaybe; - round?: InputMaybe; - type?: InputMaybe; - validator_index?: InputMaybe; +export type Bdjuno_Provider_Community_Pool_Aggregate = { + __typename?: 'bdjuno_provider_community_pool_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate var_pop on columns */ -export type Double_Sign_Vote_Var_Pop_Fields = { - __typename?: 'double_sign_vote_var_pop_fields'; +export type Bdjuno_Provider_Community_Pool_Aggregate_Fields = { + __typename?: 'bdjuno_provider_community_pool_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; +}; + + +export type Bdjuno_Provider_Community_Pool_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Community_Pool_Avg_Fields = { + __typename?: 'bdjuno_provider_community_pool_avg_fields'; height?: Maybe; - id?: Maybe; - round?: Maybe; - type?: Maybe; - validator_index?: Maybe; }; -/** order by var_pop() on columns of table "double_sign_vote" */ -export type Double_Sign_Vote_Var_Pop_Order_By = { - height?: InputMaybe; - id?: InputMaybe; - round?: InputMaybe; - type?: InputMaybe; - validator_index?: InputMaybe; +export type Bdjuno_Provider_Community_Pool_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + coins?: InputMaybe; + height?: InputMaybe; }; -/** aggregate var_samp on columns */ -export type Double_Sign_Vote_Var_Samp_Fields = { - __typename?: 'double_sign_vote_var_samp_fields'; +export type Bdjuno_Provider_Community_Pool_Max_Fields = { + __typename?: 'bdjuno_provider_community_pool_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Min_Fields = { + __typename?: 'bdjuno_provider_community_pool_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Order_By = { + coins?: InputMaybe; + height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Community_Pool_Select_Column { + Coins = 'coins', + Height = 'height' +} + +export type Bdjuno_Provider_Community_Pool_Stddev_Fields = { + __typename?: 'bdjuno_provider_community_pool_stddev_fields'; height?: Maybe; - id?: Maybe; - round?: Maybe; - type?: Maybe; - validator_index?: Maybe; }; -/** order by var_samp() on columns of table "double_sign_vote" */ -export type Double_Sign_Vote_Var_Samp_Order_By = { - height?: InputMaybe; - id?: InputMaybe; - round?: InputMaybe; - type?: InputMaybe; - validator_index?: InputMaybe; +export type Bdjuno_Provider_Community_Pool_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_community_pool_stddev_pop_fields'; + height?: Maybe; }; -/** aggregate variance on columns */ -export type Double_Sign_Vote_Variance_Fields = { - __typename?: 'double_sign_vote_variance_fields'; +export type Bdjuno_Provider_Community_Pool_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_community_pool_stddev_samp_fields'; height?: Maybe; - id?: Maybe; - round?: Maybe; - type?: Maybe; - validator_index?: Maybe; }; -/** order by variance() on columns of table "double_sign_vote" */ -export type Double_Sign_Vote_Variance_Order_By = { - height?: InputMaybe; - id?: InputMaybe; - round?: InputMaybe; - type?: InputMaybe; - validator_index?: InputMaybe; +export type Bdjuno_Provider_Community_Pool_Sum_Fields = { + __typename?: 'bdjuno_provider_community_pool_sum_fields'; + height?: Maybe; }; -/** columns and relationships of "fee_grant_allowance" */ -export type Fee_Grant_Allowance = { - __typename?: 'fee_grant_allowance'; - allowance: Scalars['jsonb']; - /** An object relationship */ - grantee: Account; - grantee_address: Scalars['String']; - /** An object relationship */ - granter: Account; - granter_address: Scalars['String']; - height: Scalars['bigint']; - id: Scalars['Int']; +export type Bdjuno_Provider_Community_Pool_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_community_pool_var_pop_fields'; + height?: Maybe; }; +export type Bdjuno_Provider_Community_Pool_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_community_pool_var_samp_fields'; + height?: Maybe; +}; -/** columns and relationships of "fee_grant_allowance" */ -export type Fee_Grant_AllowanceAllowanceArgs = { +export type Bdjuno_Provider_Community_Pool_Variance_Fields = { + __typename?: 'bdjuno_provider_community_pool_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params = { + __typename?: 'bdjuno_provider_distribution_params'; + height: Scalars['bdjuno_provider_bigint']; + one_row_id: Scalars['Boolean']; + params: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_Distribution_ParamsParamsArgs = { path?: InputMaybe; }; -/** aggregated selection of "fee_grant_allowance" */ -export type Fee_Grant_Allowance_Aggregate = { - __typename?: 'fee_grant_allowance_aggregate'; - aggregate?: Maybe; - nodes: Array; +export type Bdjuno_Provider_Distribution_Params_Aggregate = { + __typename?: 'bdjuno_provider_distribution_params_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "fee_grant_allowance" */ -export type Fee_Grant_Allowance_Aggregate_Fields = { - __typename?: 'fee_grant_allowance_aggregate_fields'; - avg?: Maybe; +export type Bdjuno_Provider_Distribution_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_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; + 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 "fee_grant_allowance" */ -export type Fee_Grant_Allowance_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +export type Bdjuno_Provider_Distribution_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** aggregate avg on columns */ -export type Fee_Grant_Allowance_Avg_Fields = { - __typename?: 'fee_grant_allowance_avg_fields'; +export type Bdjuno_Provider_Distribution_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_distribution_params_avg_fields'; height?: Maybe; - id?: Maybe; }; -/** Boolean expression to filter rows from the table "fee_grant_allowance". All fields are combined with a logical 'AND'. */ -export type Fee_Grant_Allowance_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - allowance?: InputMaybe; - grantee?: InputMaybe; - grantee_address?: InputMaybe; - granter?: InputMaybe; - granter_address?: InputMaybe; - height?: InputMaybe; - id?: InputMaybe; +export type Bdjuno_Provider_Distribution_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; }; -/** aggregate max on columns */ -export type Fee_Grant_Allowance_Max_Fields = { - __typename?: 'fee_grant_allowance_max_fields'; - grantee_address?: Maybe; - granter_address?: Maybe; - height?: Maybe; - id?: Maybe; +export type Bdjuno_Provider_Distribution_Params_Max_Fields = { + __typename?: 'bdjuno_provider_distribution_params_max_fields'; + height?: Maybe; }; -/** aggregate min on columns */ -export type Fee_Grant_Allowance_Min_Fields = { - __typename?: 'fee_grant_allowance_min_fields'; - grantee_address?: Maybe; - granter_address?: Maybe; - height?: Maybe; - id?: Maybe; +export type Bdjuno_Provider_Distribution_Params_Min_Fields = { + __typename?: 'bdjuno_provider_distribution_params_min_fields'; + height?: Maybe; }; -/** Ordering options when selecting data from "fee_grant_allowance". */ -export type Fee_Grant_Allowance_Order_By = { - allowance?: InputMaybe; - grantee?: InputMaybe; - grantee_address?: InputMaybe; - granter?: InputMaybe; - granter_address?: InputMaybe; - height?: InputMaybe; - id?: InputMaybe; +export type Bdjuno_Provider_Distribution_Params_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; }; -/** select columns of table "fee_grant_allowance" */ -export enum Fee_Grant_Allowance_Select_Column { - /** column name */ - Allowance = 'allowance', - /** column name */ - GranteeAddress = 'grantee_address', - /** column name */ - GranterAddress = 'granter_address', - /** column name */ +export enum Bdjuno_Provider_Distribution_Params_Select_Column { Height = 'height', - /** column name */ - Id = 'id' + OneRowId = 'one_row_id', + Params = 'params' } -/** aggregate stddev on columns */ -export type Fee_Grant_Allowance_Stddev_Fields = { - __typename?: 'fee_grant_allowance_stddev_fields'; +export type Bdjuno_Provider_Distribution_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_distribution_params_stddev_fields'; height?: Maybe; - id?: Maybe; }; -/** aggregate stddev_pop on columns */ -export type Fee_Grant_Allowance_Stddev_Pop_Fields = { - __typename?: 'fee_grant_allowance_stddev_pop_fields'; +export type Bdjuno_Provider_Distribution_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_distribution_params_stddev_pop_fields'; height?: Maybe; - id?: Maybe; }; -/** aggregate stddev_samp on columns */ -export type Fee_Grant_Allowance_Stddev_Samp_Fields = { - __typename?: 'fee_grant_allowance_stddev_samp_fields'; +export type Bdjuno_Provider_Distribution_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_distribution_params_stddev_samp_fields'; height?: Maybe; - id?: Maybe; }; -/** aggregate sum on columns */ -export type Fee_Grant_Allowance_Sum_Fields = { - __typename?: 'fee_grant_allowance_sum_fields'; - height?: Maybe; - id?: Maybe; +export type Bdjuno_Provider_Distribution_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_distribution_params_sum_fields'; + height?: Maybe; }; -/** aggregate var_pop on columns */ -export type Fee_Grant_Allowance_Var_Pop_Fields = { - __typename?: 'fee_grant_allowance_var_pop_fields'; +export type Bdjuno_Provider_Distribution_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_distribution_params_var_pop_fields'; height?: Maybe; - id?: Maybe; }; -/** aggregate var_samp on columns */ -export type Fee_Grant_Allowance_Var_Samp_Fields = { - __typename?: 'fee_grant_allowance_var_samp_fields'; +export type Bdjuno_Provider_Distribution_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_distribution_params_var_samp_fields'; height?: Maybe; - id?: Maybe; }; -/** aggregate variance on columns */ -export type Fee_Grant_Allowance_Variance_Fields = { - __typename?: 'fee_grant_allowance_variance_fields'; +export type Bdjuno_Provider_Distribution_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_distribution_params_variance_fields'; height?: Maybe; - id?: Maybe; }; -/** columns and relationships of "genesis" */ -export type Genesis = { - __typename?: 'genesis'; - chain_id: Scalars['String']; - initial_height: Scalars['bigint']; - time: Scalars['timestamp']; +export type Bdjuno_Provider_Double_Sign_Evidence = { + __typename?: 'bdjuno_provider_double_sign_evidence'; + doubleSignVoteByVoteAId: Bdjuno_Provider_Double_Sign_Vote; + double_sign_vote: Bdjuno_Provider_Double_Sign_Vote; + height: Scalars['bdjuno_provider_bigint']; + vote_a_id: Scalars['bdjuno_provider_bigint']; + vote_b_id: Scalars['bdjuno_provider_bigint']; }; -/** aggregated selection of "genesis" */ -export type Genesis_Aggregate = { - __typename?: 'genesis_aggregate'; - aggregate?: Maybe; - nodes: Array; +export type Bdjuno_Provider_Double_Sign_Evidence_Aggregate = { + __typename?: 'bdjuno_provider_double_sign_evidence_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "genesis" */ -export type Genesis_Aggregate_Fields = { - __typename?: 'genesis_aggregate_fields'; - avg?: Maybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Aggregate_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_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 "genesis" */ -export type Genesis_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +export type Bdjuno_Provider_Double_Sign_Evidence_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** aggregate avg on columns */ -export type Genesis_Avg_Fields = { - __typename?: 'genesis_avg_fields'; - initial_height?: Maybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; }; -/** Boolean expression to filter rows from the table "genesis". All fields are combined with a logical 'AND'. */ -export type Genesis_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - chain_id?: InputMaybe; - initial_height?: InputMaybe; - time?: InputMaybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Avg_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_avg_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; }; -/** aggregate max on columns */ -export type Genesis_Max_Fields = { - __typename?: 'genesis_max_fields'; - chain_id?: Maybe; - initial_height?: Maybe; - time?: Maybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Avg_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; }; -/** aggregate min on columns */ -export type Genesis_Min_Fields = { - __typename?: 'genesis_min_fields'; - chain_id?: Maybe; - initial_height?: Maybe; - time?: Maybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; }; -/** Ordering options when selecting data from "genesis". */ -export type Genesis_Order_By = { - chain_id?: InputMaybe; - initial_height?: InputMaybe; - time?: InputMaybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Max_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_max_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; }; -/** select columns of table "genesis" */ -export enum Genesis_Select_Column { - /** column name */ - ChainId = 'chain_id', - /** column name */ - InitialHeight = 'initial_height', - /** column name */ - Time = 'time' -} +export type Bdjuno_Provider_Double_Sign_Evidence_Max_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; -/** aggregate stddev on columns */ -export type Genesis_Stddev_Fields = { - __typename?: 'genesis_stddev_fields'; - initial_height?: Maybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Min_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_min_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; }; -/** aggregate stddev_pop on columns */ -export type Genesis_Stddev_Pop_Fields = { - __typename?: 'genesis_stddev_pop_fields'; - initial_height?: Maybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Min_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Genesis_Stddev_Samp_Fields = { - __typename?: 'genesis_stddev_samp_fields'; - initial_height?: Maybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Order_By = { + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; }; -/** aggregate sum on columns */ -export type Genesis_Sum_Fields = { - __typename?: 'genesis_sum_fields'; - initial_height?: Maybe; +export enum Bdjuno_Provider_Double_Sign_Evidence_Select_Column { + Height = 'height', + VoteAId = 'vote_a_id', + VoteBId = 'vote_b_id' +} + +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_stddev_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; }; -/** aggregate var_pop on columns */ -export type Genesis_Var_Pop_Fields = { - __typename?: 'genesis_var_pop_fields'; - initial_height?: Maybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; }; -/** aggregate var_samp on columns */ -export type Genesis_Var_Samp_Fields = { - __typename?: 'genesis_var_samp_fields'; - initial_height?: Maybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_stddev_pop_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; }; -/** aggregate variance on columns */ -export type Genesis_Variance_Fields = { - __typename?: 'genesis_variance_fields'; - initial_height?: Maybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; }; -/** columns and relationships of "gov_params" */ -export type Gov_Params = { - __typename?: 'gov_params'; - deposit_params: Scalars['jsonb']; - height: Scalars['bigint']; - one_row_id: Scalars['Boolean']; - tally_params: Scalars['jsonb']; - voting_params: Scalars['jsonb']; +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_stddev_samp_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; }; +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; -/** columns and relationships of "gov_params" */ -export type Gov_ParamsDeposit_ParamsArgs = { - path?: InputMaybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Sum_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_sum_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; }; +export type Bdjuno_Provider_Double_Sign_Evidence_Sum_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; -/** columns and relationships of "gov_params" */ -export type Gov_ParamsTally_ParamsArgs = { - path?: InputMaybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_var_pop_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; }; +export type Bdjuno_Provider_Double_Sign_Evidence_Var_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; -/** columns and relationships of "gov_params" */ -export type Gov_ParamsVoting_ParamsArgs = { - path?: InputMaybe; +export type Bdjuno_Provider_Double_Sign_Evidence_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_var_samp_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Var_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Variance_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_variance_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Variance_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote = { + __typename?: 'bdjuno_provider_double_sign_vote'; + block_id: Scalars['String']; + doubleSignEvidencesByVoteBId: Array; + doubleSignEvidencesByVoteBId_aggregate: Bdjuno_Provider_Double_Sign_Evidence_Aggregate; + double_sign_evidences: Array; + double_sign_evidences_aggregate: Bdjuno_Provider_Double_Sign_Evidence_Aggregate; + height: Scalars['bdjuno_provider_bigint']; + id: Scalars['Int']; + round: Scalars['Int']; + signature: Scalars['String']; + type: Scalars['bdjuno_provider_smallint']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + validator_index: Scalars['Int']; +}; + + +export type Bdjuno_Provider_Double_Sign_VoteDoubleSignEvidencesByVoteBIdArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Double_Sign_VoteDoubleSignEvidencesByVoteBId_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Double_Sign_VoteDouble_Sign_EvidencesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Double_Sign_VoteDouble_Sign_Evidences_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** aggregated selection of "gov_params" */ -export type Gov_Params_Aggregate = { - __typename?: 'gov_params_aggregate'; - aggregate?: Maybe; - nodes: Array; +export type Bdjuno_Provider_Double_Sign_Vote_Aggregate = { + __typename?: 'bdjuno_provider_double_sign_vote_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "gov_params" */ -export type Gov_Params_Aggregate_Fields = { - __typename?: 'gov_params_aggregate_fields'; - avg?: Maybe; +export type Bdjuno_Provider_Double_Sign_Vote_Aggregate_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_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 "gov_params" */ -export type Gov_Params_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +export type Bdjuno_Provider_Double_Sign_Vote_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** aggregate avg on columns */ -export type Gov_Params_Avg_Fields = { - __typename?: 'gov_params_avg_fields'; - height?: Maybe; +export type Bdjuno_Provider_Double_Sign_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; }; -/** Boolean expression to filter rows from the table "gov_params". All fields are combined with a logical 'AND'. */ -export type Gov_Params_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - deposit_params?: InputMaybe; - height?: InputMaybe; - one_row_id?: InputMaybe; - tally_params?: InputMaybe; - voting_params?: InputMaybe; +export type Bdjuno_Provider_Double_Sign_Vote_Avg_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_avg_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; }; -/** aggregate max on columns */ -export type Gov_Params_Max_Fields = { - __typename?: 'gov_params_max_fields'; - height?: Maybe; +export type Bdjuno_Provider_Double_Sign_Vote_Avg_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId?: InputMaybe; + double_sign_evidences?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Max_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_max_fields'; + block_id?: Maybe; + height?: Maybe; + id?: Maybe; + round?: Maybe; + signature?: Maybe; + type?: Maybe; + validator_address?: Maybe; + validator_index?: Maybe; }; -/** aggregate min on columns */ -export type Gov_Params_Min_Fields = { - __typename?: 'gov_params_min_fields'; - height?: Maybe; +export type Bdjuno_Provider_Double_Sign_Vote_Max_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; }; -/** Ordering options when selecting data from "gov_params". */ -export type Gov_Params_Order_By = { - deposit_params?: InputMaybe; - height?: InputMaybe; - one_row_id?: InputMaybe; - tally_params?: InputMaybe; - voting_params?: InputMaybe; +export type Bdjuno_Provider_Double_Sign_Vote_Min_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_min_fields'; + block_id?: Maybe; + height?: Maybe; + id?: Maybe; + round?: Maybe; + signature?: Maybe; + type?: Maybe; + validator_address?: Maybe; + validator_index?: Maybe; }; -/** select columns of table "gov_params" */ -export enum Gov_Params_Select_Column { - /** column name */ - DepositParams = 'deposit_params', - /** column name */ +export type Bdjuno_Provider_Double_Sign_Vote_Min_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Order_By = { + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId_aggregate?: InputMaybe; + double_sign_evidences_aggregate?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +export enum Bdjuno_Provider_Double_Sign_Vote_Select_Column { + BlockId = 'block_id', Height = 'height', - /** column name */ - OneRowId = 'one_row_id', - /** column name */ - TallyParams = 'tally_params', - /** column name */ - VotingParams = 'voting_params' + Id = 'id', + Round = 'round', + Signature = 'signature', + Type = 'type', + ValidatorAddress = 'validator_address', + ValidatorIndex = 'validator_index' } -/** aggregate stddev on columns */ -export type Gov_Params_Stddev_Fields = { - __typename?: 'gov_params_stddev_fields'; +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_stddev_fields'; height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; }; -/** aggregate stddev_pop on columns */ -export type Gov_Params_Stddev_Pop_Fields = { - __typename?: 'gov_params_stddev_pop_fields'; +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_stddev_pop_fields'; height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; }; -/** aggregate stddev_samp on columns */ -export type Gov_Params_Stddev_Samp_Fields = { - __typename?: 'gov_params_stddev_samp_fields'; +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_stddev_samp_fields'; height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; }; -/** aggregate sum on columns */ -export type Gov_Params_Sum_Fields = { - __typename?: 'gov_params_sum_fields'; - height?: Maybe; +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; }; -/** aggregate var_pop on columns */ -export type Gov_Params_Var_Pop_Fields = { - __typename?: 'gov_params_var_pop_fields'; +export type Bdjuno_Provider_Double_Sign_Vote_Sum_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_sum_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Sum_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_var_pop_fields'; height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; }; -/** aggregate var_samp on columns */ -export type Gov_Params_Var_Samp_Fields = { - __typename?: 'gov_params_var_samp_fields'; +export type Bdjuno_Provider_Double_Sign_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_var_samp_fields'; height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; }; -/** aggregate variance on columns */ -export type Gov_Params_Variance_Fields = { - __typename?: 'gov_params_variance_fields'; +export type Bdjuno_Provider_Double_Sign_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Variance_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_variance_fields'; height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; }; -/** Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. */ -export type Jsonb_Comparison_Exp = { - /** is the column contained in the given json value */ - _contained_in?: InputMaybe; - /** does the column contain the given json value at the top level */ - _contains?: InputMaybe; - _eq?: InputMaybe; - _gt?: InputMaybe; - _gte?: InputMaybe; - /** does the string exist as a top-level key in the column */ - _has_key?: InputMaybe; - /** do all of these strings exist as top-level keys in the column */ - _has_keys_all?: InputMaybe>; - /** do any of these strings exist as top-level keys in the column */ - _has_keys_any?: InputMaybe>; - _in?: InputMaybe>; - _is_null?: InputMaybe; - _lt?: InputMaybe; - _lte?: InputMaybe; - _neq?: InputMaybe; - _nin?: InputMaybe>; +export type Bdjuno_Provider_Double_Sign_Vote_Variance_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; }; -/** columns and relationships of "message" */ -export type Message = { - __typename?: 'message'; - height: Scalars['bigint']; - index: Scalars['bigint']; - involved_accounts_addresses: Scalars['_text']; - partition_id: Scalars['bigint']; - /** An object relationship */ - transaction?: Maybe; - transaction_hash: Scalars['String']; - type: Scalars['String']; - value: Scalars['jsonb']; +export type Bdjuno_Provider_Fee_Grant_Allowance = { + __typename?: 'bdjuno_provider_fee_grant_allowance'; + allowance: Scalars['bdjuno_provider_jsonb']; + grantee: Bdjuno_Provider_Account; + grantee_address: Scalars['String']; + granter: Bdjuno_Provider_Account; + granter_address: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + id: Scalars['Int']; }; -/** columns and relationships of "message" */ -export type MessageValueArgs = { +export type Bdjuno_Provider_Fee_Grant_AllowanceAllowanceArgs = { path?: InputMaybe; }; -/** aggregated selection of "message" */ -export type Message_Aggregate = { - __typename?: 'message_aggregate'; - aggregate?: Maybe; - nodes: Array; +export type Bdjuno_Provider_Fee_Grant_Allowance_Aggregate = { + __typename?: 'bdjuno_provider_fee_grant_allowance_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "message" */ -export type Message_Aggregate_Fields = { - __typename?: 'message_aggregate_fields'; - avg?: Maybe; +export type Bdjuno_Provider_Fee_Grant_Allowance_Aggregate_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_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 "message" */ -export type Message_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +export type Bdjuno_Provider_Fee_Grant_Allowance_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** aggregate avg on columns */ -export type Message_Avg_Fields = { - __typename?: 'message_avg_fields'; +export type Bdjuno_Provider_Fee_Grant_Allowance_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Avg_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_avg_fields'; height?: Maybe; - index?: Maybe; - partition_id?: Maybe; + id?: Maybe; }; -/** Boolean expression to filter rows from the table "message". All fields are combined with a logical 'AND'. */ -export type Message_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - height?: InputMaybe; - index?: InputMaybe; - involved_accounts_addresses?: InputMaybe<_Text_Comparison_Exp>; - partition_id?: InputMaybe; - transaction?: InputMaybe; - transaction_hash?: InputMaybe; - type?: InputMaybe; - value?: InputMaybe; +export type Bdjuno_Provider_Fee_Grant_Allowance_Avg_Order_By = { + height?: InputMaybe; + id?: InputMaybe; }; -/** aggregate max on columns */ -export type Message_Max_Fields = { - __typename?: 'message_max_fields'; - height?: Maybe; - index?: Maybe; - partition_id?: Maybe; - transaction_hash?: Maybe; - type?: Maybe; +export type Bdjuno_Provider_Fee_Grant_Allowance_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + allowance?: InputMaybe; + grantee?: InputMaybe; + grantee_address?: InputMaybe; + granter?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; }; -/** aggregate min on columns */ -export type Message_Min_Fields = { - __typename?: 'message_min_fields'; - height?: Maybe; - index?: Maybe; - partition_id?: Maybe; - transaction_hash?: Maybe; - type?: Maybe; +export type Bdjuno_Provider_Fee_Grant_Allowance_Max_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_max_fields'; + grantee_address?: Maybe; + granter_address?: Maybe; + height?: Maybe; + id?: Maybe; }; -/** Ordering options when selecting data from "message". */ -export type Message_Order_By = { - height?: InputMaybe; - index?: InputMaybe; - involved_accounts_addresses?: InputMaybe; - partition_id?: InputMaybe; - transaction?: InputMaybe; - transaction_hash?: InputMaybe; - type?: InputMaybe; - value?: InputMaybe; +export type Bdjuno_Provider_Fee_Grant_Allowance_Max_Order_By = { + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; }; -/** select columns of table "message" */ -export enum Message_Select_Column { - /** column name */ +export type Bdjuno_Provider_Fee_Grant_Allowance_Min_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_min_fields'; + grantee_address?: Maybe; + granter_address?: Maybe; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Min_Order_By = { + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Order_By = { + allowance?: InputMaybe; + grantee?: InputMaybe; + grantee_address?: InputMaybe; + granter?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; +}; + +export enum Bdjuno_Provider_Fee_Grant_Allowance_Select_Column { + Allowance = 'allowance', + GranteeAddress = 'grantee_address', + GranterAddress = 'granter_address', Height = 'height', - /** column name */ - Index = 'index', - /** column name */ - InvolvedAccountsAddresses = 'involved_accounts_addresses', - /** column name */ - PartitionId = 'partition_id', - /** column name */ - TransactionHash = 'transaction_hash', - /** column name */ - Type = 'type', - /** column name */ - Value = 'value' + Id = 'id' } -/** aggregate stddev on columns */ -export type Message_Stddev_Fields = { - __typename?: 'message_stddev_fields'; +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_stddev_fields'; height?: Maybe; - index?: Maybe; - partition_id?: Maybe; + id?: Maybe; }; -/** aggregate stddev_pop on columns */ -export type Message_Stddev_Pop_Fields = { - __typename?: 'message_stddev_pop_fields'; +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_stddev_pop_fields'; height?: Maybe; - index?: Maybe; - partition_id?: Maybe; + id?: Maybe; }; -/** aggregate stddev_samp on columns */ -export type Message_Stddev_Samp_Fields = { - __typename?: 'message_stddev_samp_fields'; +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_stddev_samp_fields'; height?: Maybe; - index?: Maybe; - partition_id?: Maybe; + id?: Maybe; }; -/** aggregate sum on columns */ -export type Message_Sum_Fields = { - __typename?: 'message_sum_fields'; - height?: Maybe; - index?: Maybe; - partition_id?: Maybe; +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; }; -/** aggregate var_pop on columns */ -export type Message_Var_Pop_Fields = { - __typename?: 'message_var_pop_fields'; +export type Bdjuno_Provider_Fee_Grant_Allowance_Sum_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_sum_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Sum_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_var_pop_fields'; height?: Maybe; - index?: Maybe; - partition_id?: Maybe; + id?: Maybe; }; -/** aggregate var_samp on columns */ -export type Message_Var_Samp_Fields = { - __typename?: 'message_var_samp_fields'; +export type Bdjuno_Provider_Fee_Grant_Allowance_Var_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_var_samp_fields'; height?: Maybe; - index?: Maybe; - partition_id?: Maybe; + id?: Maybe; }; -/** aggregate variance on columns */ -export type Message_Variance_Fields = { - __typename?: 'message_variance_fields'; +export type Bdjuno_Provider_Fee_Grant_Allowance_Var_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Variance_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_variance_fields'; height?: Maybe; - index?: Maybe; - partition_id?: Maybe; + id?: Maybe; }; -export type Messages_By_Address_Args = { - addresses?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - types?: InputMaybe; +export type Bdjuno_Provider_Fee_Grant_Allowance_Variance_Order_By = { + height?: InputMaybe; + id?: InputMaybe; }; -/** columns and relationships of "mint_params" */ -export type Mint_Params = { - __typename?: 'mint_params'; - height: Scalars['bigint']; +export type Bdjuno_Provider_Genesis = { + __typename?: 'bdjuno_provider_genesis'; + chain_id: Scalars['String']; + initial_height: Scalars['bdjuno_provider_bigint']; + time: Scalars['bdjuno_provider_timestamp']; +}; + +export type Bdjuno_Provider_Genesis_Aggregate = { + __typename?: 'bdjuno_provider_genesis_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Genesis_Aggregate_Fields = { + __typename?: 'bdjuno_provider_genesis_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; +}; + + +export type Bdjuno_Provider_Genesis_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Genesis_Avg_Fields = { + __typename?: 'bdjuno_provider_genesis_avg_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +export type Bdjuno_Provider_Genesis_Max_Fields = { + __typename?: 'bdjuno_provider_genesis_max_fields'; + chain_id?: Maybe; + initial_height?: Maybe; + time?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Min_Fields = { + __typename?: 'bdjuno_provider_genesis_min_fields'; + chain_id?: Maybe; + initial_height?: Maybe; + time?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Order_By = { + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +export enum Bdjuno_Provider_Genesis_Select_Column { + ChainId = 'chain_id', + InitialHeight = 'initial_height', + Time = 'time' +} + +export type Bdjuno_Provider_Genesis_Stddev_Fields = { + __typename?: 'bdjuno_provider_genesis_stddev_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_genesis_stddev_pop_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_genesis_stddev_samp_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Sum_Fields = { + __typename?: 'bdjuno_provider_genesis_sum_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_genesis_var_pop_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_genesis_var_samp_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Variance_Fields = { + __typename?: 'bdjuno_provider_genesis_variance_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params = { + __typename?: 'bdjuno_provider_gov_params'; + deposit_params: Scalars['bdjuno_provider_jsonb']; + height: Scalars['bdjuno_provider_bigint']; one_row_id: Scalars['Boolean']; - params: Scalars['jsonb']; + tally_params: Scalars['bdjuno_provider_jsonb']; + voting_params: Scalars['bdjuno_provider_jsonb']; }; -/** columns and relationships of "mint_params" */ -export type Mint_ParamsParamsArgs = { +export type Bdjuno_Provider_Gov_ParamsDeposit_ParamsArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_Gov_ParamsTally_ParamsArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_Gov_ParamsVoting_ParamsArgs = { path?: InputMaybe; }; -/** aggregated selection of "mint_params" */ -export type Mint_Params_Aggregate = { - __typename?: 'mint_params_aggregate'; - aggregate?: Maybe; - nodes: Array; +export type Bdjuno_Provider_Gov_Params_Aggregate = { + __typename?: 'bdjuno_provider_gov_params_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "mint_params" */ -export type Mint_Params_Aggregate_Fields = { - __typename?: 'mint_params_aggregate_fields'; - avg?: Maybe; +export type Bdjuno_Provider_Gov_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_gov_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; + 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 "mint_params" */ -export type Mint_Params_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +export type Bdjuno_Provider_Gov_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** aggregate avg on columns */ -export type Mint_Params_Avg_Fields = { - __typename?: 'mint_params_avg_fields'; +export type Bdjuno_Provider_Gov_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_gov_params_avg_fields'; height?: Maybe; }; -/** Boolean expression to filter rows from the table "mint_params". All fields are combined with a logical 'AND'. */ -export type Mint_Params_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - height?: InputMaybe; - one_row_id?: InputMaybe; - params?: InputMaybe; +export type Bdjuno_Provider_Gov_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + deposit_params?: InputMaybe; + height?: InputMaybe; + one_row_id?: InputMaybe; + tally_params?: InputMaybe; + voting_params?: InputMaybe; }; -/** aggregate max on columns */ -export type Mint_Params_Max_Fields = { - __typename?: 'mint_params_max_fields'; - height?: Maybe; +export type Bdjuno_Provider_Gov_Params_Max_Fields = { + __typename?: 'bdjuno_provider_gov_params_max_fields'; + height?: Maybe; }; -/** aggregate min on columns */ -export type Mint_Params_Min_Fields = { - __typename?: 'mint_params_min_fields'; - height?: Maybe; +export type Bdjuno_Provider_Gov_Params_Min_Fields = { + __typename?: 'bdjuno_provider_gov_params_min_fields'; + height?: Maybe; }; -/** Ordering options when selecting data from "mint_params". */ -export type Mint_Params_Order_By = { - height?: InputMaybe; - one_row_id?: InputMaybe; - params?: InputMaybe; +export type Bdjuno_Provider_Gov_Params_Order_By = { + deposit_params?: InputMaybe; + height?: InputMaybe; + one_row_id?: InputMaybe; + tally_params?: InputMaybe; + voting_params?: InputMaybe; }; -/** select columns of table "mint_params" */ -export enum Mint_Params_Select_Column { - /** column name */ +export enum Bdjuno_Provider_Gov_Params_Select_Column { + DepositParams = 'deposit_params', Height = 'height', - /** column name */ OneRowId = 'one_row_id', - /** column name */ - Params = 'params' + TallyParams = 'tally_params', + VotingParams = 'voting_params' } -/** aggregate stddev on columns */ -export type Mint_Params_Stddev_Fields = { - __typename?: 'mint_params_stddev_fields'; +export type Bdjuno_Provider_Gov_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_gov_params_stddev_fields'; height?: Maybe; }; -/** aggregate stddev_pop on columns */ -export type Mint_Params_Stddev_Pop_Fields = { - __typename?: 'mint_params_stddev_pop_fields'; +export type Bdjuno_Provider_Gov_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_gov_params_stddev_pop_fields'; height?: Maybe; }; -/** aggregate stddev_samp on columns */ -export type Mint_Params_Stddev_Samp_Fields = { - __typename?: 'mint_params_stddev_samp_fields'; +export type Bdjuno_Provider_Gov_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_gov_params_stddev_samp_fields'; height?: Maybe; }; -/** aggregate sum on columns */ -export type Mint_Params_Sum_Fields = { - __typename?: 'mint_params_sum_fields'; - height?: Maybe; +export type Bdjuno_Provider_Gov_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_gov_params_sum_fields'; + height?: Maybe; }; -/** aggregate var_pop on columns */ -export type Mint_Params_Var_Pop_Fields = { - __typename?: 'mint_params_var_pop_fields'; +export type Bdjuno_Provider_Gov_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_gov_params_var_pop_fields'; height?: Maybe; }; -/** aggregate var_samp on columns */ -export type Mint_Params_Var_Samp_Fields = { - __typename?: 'mint_params_var_samp_fields'; +export type Bdjuno_Provider_Gov_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_gov_params_var_samp_fields'; height?: Maybe; }; -/** aggregate variance on columns */ -export type Mint_Params_Variance_Fields = { - __typename?: 'mint_params_variance_fields'; +export type Bdjuno_Provider_Gov_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_gov_params_variance_fields'; height?: Maybe; }; -/** columns and relationships of "modules" */ -export type Modules = { - __typename?: 'modules'; - module_name: Scalars['String']; +export type Bdjuno_Provider_Inflation = { + __typename?: 'bdjuno_provider_inflation'; + height: Scalars['bdjuno_provider_bigint']; + value: Scalars['bdjuno_provider_numeric']; }; -/** aggregated selection of "modules" */ -export type Modules_Aggregate = { - __typename?: 'modules_aggregate'; - aggregate?: Maybe; - nodes: Array; +export type Bdjuno_Provider_Inflation_Aggregate = { + __typename?: 'bdjuno_provider_inflation_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "modules" */ -export type Modules_Aggregate_Fields = { - __typename?: 'modules_aggregate_fields'; +export type Bdjuno_Provider_Inflation_Aggregate_Fields = { + __typename?: 'bdjuno_provider_inflation_aggregate_fields'; + avg?: Maybe; count: Scalars['Int']; - max?: Maybe; - min?: 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 "modules" */ -export type Modules_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +export type Bdjuno_Provider_Inflation_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** Boolean expression to filter rows from the table "modules". All fields are combined with a logical 'AND'. */ -export type Modules_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - module_name?: InputMaybe; +export type Bdjuno_Provider_Inflation_Avg_Fields = { + __typename?: 'bdjuno_provider_inflation_avg_fields'; + height?: Maybe; + value?: Maybe; }; -/** aggregate max on columns */ -export type Modules_Max_Fields = { - __typename?: 'modules_max_fields'; - module_name?: Maybe; +export type Bdjuno_Provider_Inflation_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + value?: InputMaybe; }; -/** aggregate min on columns */ -export type Modules_Min_Fields = { - __typename?: 'modules_min_fields'; - module_name?: Maybe; +export type Bdjuno_Provider_Inflation_Max_Fields = { + __typename?: 'bdjuno_provider_inflation_max_fields'; + height?: Maybe; + value?: Maybe; }; -/** Ordering options when selecting data from "modules". */ -export type Modules_Order_By = { - module_name?: InputMaybe; +export type Bdjuno_Provider_Inflation_Min_Fields = { + __typename?: 'bdjuno_provider_inflation_min_fields'; + height?: Maybe; + value?: Maybe; }; -/** select columns of table "modules" */ -export enum Modules_Select_Column { - /** column name */ - ModuleName = 'module_name' +export type Bdjuno_Provider_Inflation_Order_By = { + height?: InputMaybe; + value?: InputMaybe; +}; + +export enum Bdjuno_Provider_Inflation_Select_Column { + Height = 'height', + Value = 'value' } -/** Boolean expression to compare columns of type "numeric". All fields are combined with logical 'AND'. */ -export type Numeric_Comparison_Exp = { - _eq?: InputMaybe; - _gt?: InputMaybe; - _gte?: InputMaybe; - _in?: InputMaybe>; - _is_null?: InputMaybe; - _lt?: InputMaybe; - _lte?: InputMaybe; - _neq?: InputMaybe; - _nin?: InputMaybe>; +export type Bdjuno_Provider_Inflation_Stddev_Fields = { + __typename?: 'bdjuno_provider_inflation_stddev_fields'; + height?: Maybe; + value?: Maybe; }; -/** column ordering options */ -export enum Order_By { - /** in ascending order, nulls last */ - Asc = 'asc', - /** in ascending order, nulls first */ - AscNullsFirst = 'asc_nulls_first', - /** in ascending order, nulls last */ - AscNullsLast = 'asc_nulls_last', - /** in descending order, nulls first */ - Desc = 'desc', - /** in descending order, nulls first */ - DescNullsFirst = 'desc_nulls_first', - /** in descending order, nulls last */ - DescNullsLast = 'desc_nulls_last' -} +export type Bdjuno_Provider_Inflation_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_inflation_stddev_pop_fields'; + height?: Maybe; + value?: Maybe; +}; -/** columns and relationships of "pre_commit" */ -export type Pre_Commit = { - __typename?: 'pre_commit'; - height: Scalars['bigint']; - proposer_priority: Scalars['bigint']; - timestamp: Scalars['timestamp']; - /** An object relationship */ - validator: Validator; - validator_address: Scalars['String']; - voting_power: Scalars['bigint']; +export type Bdjuno_Provider_Inflation_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_inflation_stddev_samp_fields'; + height?: Maybe; + value?: Maybe; }; -/** aggregated selection of "pre_commit" */ -export type Pre_Commit_Aggregate = { - __typename?: 'pre_commit_aggregate'; - aggregate?: Maybe; - nodes: Array; +export type Bdjuno_Provider_Inflation_Sum_Fields = { + __typename?: 'bdjuno_provider_inflation_sum_fields'; + height?: Maybe; + value?: Maybe; }; -/** aggregate fields of "pre_commit" */ -export type Pre_Commit_Aggregate_Fields = { - __typename?: 'pre_commit_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; +export type Bdjuno_Provider_Inflation_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_inflation_var_pop_fields'; + height?: Maybe; + value?: Maybe; }; +export type Bdjuno_Provider_Inflation_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_inflation_var_samp_fields'; + height?: Maybe; + value?: Maybe; +}; -/** aggregate fields of "pre_commit" */ -export type Pre_Commit_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; +export type Bdjuno_Provider_Inflation_Variance_Fields = { + __typename?: 'bdjuno_provider_inflation_variance_fields'; + height?: Maybe; + value?: Maybe; }; -/** order by aggregate values of table "pre_commit" */ -export type Pre_Commit_Aggregate_Order_By = { - avg?: InputMaybe; - count?: InputMaybe; - max?: InputMaybe; - min?: InputMaybe; - stddev?: InputMaybe; - stddev_pop?: InputMaybe; - stddev_samp?: InputMaybe; - sum?: InputMaybe; - var_pop?: InputMaybe; - var_samp?: InputMaybe; - variance?: InputMaybe; +export type Bdjuno_Provider_Jsonb_Comparison_Exp = { + _contained_in?: InputMaybe; + _contains?: InputMaybe; + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _has_key?: InputMaybe; + _has_keys_all?: InputMaybe>; + _has_keys_any?: InputMaybe>; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Message = { + __typename?: 'bdjuno_provider_message'; + height: Scalars['bdjuno_provider_bigint']; + index: Scalars['bdjuno_provider_bigint']; + involved_accounts_addresses: Scalars['bdjuno_provider__text']; + partition_id: Scalars['bdjuno_provider_bigint']; + transaction?: Maybe; + transactionByPartitionIdTransactionHash?: Maybe; + transaction_hash: Scalars['String']; + type: Scalars['String']; + value: Scalars['bdjuno_provider_jsonb']; }; -/** aggregate avg on columns */ -export type Pre_Commit_Avg_Fields = { - __typename?: 'pre_commit_avg_fields'; - height?: Maybe; - proposer_priority?: Maybe; - voting_power?: Maybe; + +export type Bdjuno_Provider_MessageValueArgs = { + path?: InputMaybe; }; -/** order by avg() on columns of table "pre_commit" */ -export type Pre_Commit_Avg_Order_By = { - height?: InputMaybe; - proposer_priority?: InputMaybe; - voting_power?: InputMaybe; +export type Bdjuno_Provider_Message_Aggregate = { + __typename?: 'bdjuno_provider_message_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** Boolean expression to filter rows from the table "pre_commit". All fields are combined with a logical 'AND'. */ -export type Pre_Commit_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - height?: InputMaybe; - proposer_priority?: InputMaybe; - timestamp?: InputMaybe; - validator?: InputMaybe; - validator_address?: InputMaybe; - voting_power?: InputMaybe; +export type Bdjuno_Provider_Message_Aggregate_Fields = { + __typename?: 'bdjuno_provider_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; }; -/** aggregate max on columns */ -export type Pre_Commit_Max_Fields = { - __typename?: 'pre_commit_max_fields'; - height?: Maybe; - proposer_priority?: Maybe; - timestamp?: Maybe; - validator_address?: Maybe; - voting_power?: Maybe; + +export type Bdjuno_Provider_Message_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; }; -/** order by max() on columns of table "pre_commit" */ -export type Pre_Commit_Max_Order_By = { - height?: InputMaybe; - proposer_priority?: InputMaybe; - timestamp?: InputMaybe; - validator_address?: InputMaybe; - voting_power?: InputMaybe; +export type Bdjuno_Provider_Message_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; }; -/** aggregate min on columns */ -export type Pre_Commit_Min_Fields = { - __typename?: 'pre_commit_min_fields'; - height?: Maybe; - proposer_priority?: Maybe; - timestamp?: Maybe; - validator_address?: Maybe; - voting_power?: Maybe; +export type Bdjuno_Provider_Message_Avg_Fields = { + __typename?: 'bdjuno_provider_message_avg_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; }; -/** order by min() on columns of table "pre_commit" */ -export type Pre_Commit_Min_Order_By = { - height?: InputMaybe; - proposer_priority?: InputMaybe; - timestamp?: InputMaybe; - validator_address?: InputMaybe; - voting_power?: InputMaybe; +export type Bdjuno_Provider_Message_Avg_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe; + partition_id?: InputMaybe; + transaction?: InputMaybe; + transactionByPartitionIdTransactionHash?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Max_Fields = { + __typename?: 'bdjuno_provider_message_max_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; + transaction_hash?: Maybe; + type?: Maybe; }; -/** Ordering options when selecting data from "pre_commit". */ -export type Pre_Commit_Order_By = { - height?: InputMaybe; - proposer_priority?: InputMaybe; - timestamp?: InputMaybe; - validator?: InputMaybe; - validator_address?: InputMaybe; - voting_power?: InputMaybe; +export type Bdjuno_Provider_Message_Max_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; }; -/** select columns of table "pre_commit" */ -export enum Pre_Commit_Select_Column { - /** column name */ +export type Bdjuno_Provider_Message_Min_Fields = { + __typename?: 'bdjuno_provider_message_min_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; + transaction_hash?: Maybe; + type?: Maybe; +}; + +export type Bdjuno_Provider_Message_Min_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe; + partition_id?: InputMaybe; + transaction?: InputMaybe; + transactionByPartitionIdTransactionHash?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +export enum Bdjuno_Provider_Message_Select_Column { Height = 'height', - /** column name */ - ProposerPriority = 'proposer_priority', - /** column name */ - Timestamp = 'timestamp', - /** column name */ - ValidatorAddress = 'validator_address', - /** column name */ - VotingPower = 'voting_power' + Index = 'index', + InvolvedAccountsAddresses = 'involved_accounts_addresses', + PartitionId = 'partition_id', + TransactionHash = 'transaction_hash', + Type = 'type', + Value = 'value' } -/** aggregate stddev on columns */ -export type Pre_Commit_Stddev_Fields = { - __typename?: 'pre_commit_stddev_fields'; +export type Bdjuno_Provider_Message_Stddev_Fields = { + __typename?: 'bdjuno_provider_message_stddev_fields'; height?: Maybe; - proposer_priority?: Maybe; - voting_power?: Maybe; + index?: Maybe; + partition_id?: Maybe; }; -/** order by stddev() on columns of table "pre_commit" */ -export type Pre_Commit_Stddev_Order_By = { - height?: InputMaybe; - proposer_priority?: InputMaybe; - voting_power?: InputMaybe; +export type Bdjuno_Provider_Message_Stddev_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; }; -/** aggregate stddev_pop on columns */ -export type Pre_Commit_Stddev_Pop_Fields = { - __typename?: 'pre_commit_stddev_pop_fields'; +export type Bdjuno_Provider_Message_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_message_stddev_pop_fields'; height?: Maybe; - proposer_priority?: Maybe; - voting_power?: Maybe; + index?: Maybe; + partition_id?: Maybe; }; -/** order by stddev_pop() on columns of table "pre_commit" */ -export type Pre_Commit_Stddev_Pop_Order_By = { - height?: InputMaybe; - proposer_priority?: InputMaybe; - voting_power?: InputMaybe; +export type Bdjuno_Provider_Message_Stddev_Pop_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Pre_Commit_Stddev_Samp_Fields = { - __typename?: 'pre_commit_stddev_samp_fields'; +export type Bdjuno_Provider_Message_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_message_stddev_samp_fields'; height?: Maybe; - proposer_priority?: Maybe; - voting_power?: Maybe; + index?: Maybe; + partition_id?: Maybe; }; -/** order by stddev_samp() on columns of table "pre_commit" */ -export type Pre_Commit_Stddev_Samp_Order_By = { - height?: InputMaybe; - proposer_priority?: InputMaybe; - voting_power?: InputMaybe; +export type Bdjuno_Provider_Message_Stddev_Samp_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; }; -/** aggregate sum on columns */ -export type Pre_Commit_Sum_Fields = { - __typename?: 'pre_commit_sum_fields'; - height?: Maybe; - proposer_priority?: Maybe; - voting_power?: Maybe; +export type Bdjuno_Provider_Message_Sum_Fields = { + __typename?: 'bdjuno_provider_message_sum_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; }; -/** order by sum() on columns of table "pre_commit" */ -export type Pre_Commit_Sum_Order_By = { - height?: InputMaybe; - proposer_priority?: InputMaybe; - voting_power?: InputMaybe; +export type Bdjuno_Provider_Message_Sum_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; }; -/** aggregate var_pop on columns */ -export type Pre_Commit_Var_Pop_Fields = { - __typename?: 'pre_commit_var_pop_fields'; +export type Bdjuno_Provider_Message_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_message_var_pop_fields'; height?: Maybe; - proposer_priority?: Maybe; - voting_power?: Maybe; + index?: Maybe; + partition_id?: Maybe; }; -/** order by var_pop() on columns of table "pre_commit" */ -export type Pre_Commit_Var_Pop_Order_By = { - height?: InputMaybe; - proposer_priority?: InputMaybe; - voting_power?: InputMaybe; +export type Bdjuno_Provider_Message_Var_Pop_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; }; -/** aggregate var_samp on columns */ -export type Pre_Commit_Var_Samp_Fields = { - __typename?: 'pre_commit_var_samp_fields'; +export type Bdjuno_Provider_Message_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_message_var_samp_fields'; height?: Maybe; - proposer_priority?: Maybe; - voting_power?: Maybe; + index?: Maybe; + partition_id?: Maybe; }; -/** order by var_samp() on columns of table "pre_commit" */ -export type Pre_Commit_Var_Samp_Order_By = { - height?: InputMaybe; - proposer_priority?: InputMaybe; - voting_power?: InputMaybe; +export type Bdjuno_Provider_Message_Var_Samp_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; }; -/** aggregate variance on columns */ -export type Pre_Commit_Variance_Fields = { - __typename?: 'pre_commit_variance_fields'; +export type Bdjuno_Provider_Message_Variance_Fields = { + __typename?: 'bdjuno_provider_message_variance_fields'; height?: Maybe; - proposer_priority?: Maybe; - voting_power?: Maybe; + index?: Maybe; + partition_id?: Maybe; }; -/** order by variance() on columns of table "pre_commit" */ -export type Pre_Commit_Variance_Order_By = { - height?: InputMaybe; - proposer_priority?: InputMaybe; - voting_power?: InputMaybe; +export type Bdjuno_Provider_Message_Variance_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; }; -/** columns and relationships of "proposal" */ -export type Proposal = { - __typename?: 'proposal'; - content: Scalars['jsonb']; - deposit_end_time?: Maybe; - description: Scalars['String']; - id: Scalars['Int']; - /** An array relationship */ - proposal_deposits: Array; - /** An aggregate relationship */ - proposal_deposits_aggregate: Proposal_Deposit_Aggregate; - proposal_route: Scalars['String']; - /** An object relationship */ - proposal_tally_result?: Maybe; - /** An array relationship */ - proposal_tally_results: Array; - /** An aggregate relationship */ - proposal_tally_results_aggregate: Proposal_Tally_Result_Aggregate; - proposal_type: Scalars['String']; - /** An array relationship */ - proposal_votes: Array; - /** An aggregate relationship */ - proposal_votes_aggregate: Proposal_Vote_Aggregate; - /** An object relationship */ - proposer: Account; - proposer_address: Scalars['String']; - /** An object relationship */ - staking_pool_snapshot?: Maybe; - status?: Maybe; - submit_time: Scalars['timestamp']; - title: Scalars['String']; - /** An array relationship */ - validator_status_snapshots: Array; - /** An aggregate relationship */ - validator_status_snapshots_aggregate: Proposal_Validator_Status_Snapshot_Aggregate; - voting_end_time?: Maybe; - voting_start_time?: Maybe; +export type Bdjuno_Provider_Messages_By_Address_Args = { + addresses?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; + types?: InputMaybe; }; +export type Bdjuno_Provider_Mint_Params = { + __typename?: 'bdjuno_provider_mint_params'; + height: Scalars['bdjuno_provider_bigint']; + one_row_id: Scalars['Boolean']; + params: Scalars['bdjuno_provider_jsonb']; +}; -/** columns and relationships of "proposal" */ -export type ProposalContentArgs = { + +export type Bdjuno_Provider_Mint_ParamsParamsArgs = { path?: InputMaybe; }; +export type Bdjuno_Provider_Mint_Params_Aggregate = { + __typename?: 'bdjuno_provider_mint_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; -/** columns and relationships of "proposal" */ -export type ProposalProposal_DepositsArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Bdjuno_Provider_Mint_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_mint_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; }; -/** columns and relationships of "proposal" */ -export type ProposalProposal_Deposits_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Bdjuno_Provider_Mint_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; }; +export type Bdjuno_Provider_Mint_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_mint_params_avg_fields'; + height?: Maybe; +}; -/** columns and relationships of "proposal" */ -export type ProposalProposal_Tally_ResultsArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Bdjuno_Provider_Mint_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; }; +export type Bdjuno_Provider_Mint_Params_Max_Fields = { + __typename?: 'bdjuno_provider_mint_params_max_fields'; + height?: Maybe; +}; -/** columns and relationships of "proposal" */ -export type ProposalProposal_Tally_Results_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Bdjuno_Provider_Mint_Params_Min_Fields = { + __typename?: 'bdjuno_provider_mint_params_min_fields'; + height?: Maybe; }; +export type Bdjuno_Provider_Mint_Params_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; -/** columns and relationships of "proposal" */ -export type ProposalProposal_VotesArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export enum Bdjuno_Provider_Mint_Params_Select_Column { + Height = 'height', + OneRowId = 'one_row_id', + Params = 'params' +} + +export type Bdjuno_Provider_Mint_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_mint_params_stddev_fields'; + height?: Maybe; }; +export type Bdjuno_Provider_Mint_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_mint_params_stddev_pop_fields'; + height?: Maybe; +}; -/** columns and relationships of "proposal" */ -export type ProposalProposal_Votes_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Bdjuno_Provider_Mint_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_mint_params_stddev_samp_fields'; + height?: Maybe; }; +export type Bdjuno_Provider_Mint_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_mint_params_sum_fields'; + height?: Maybe; +}; -/** columns and relationships of "proposal" */ -export type ProposalValidator_Status_SnapshotsArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Bdjuno_Provider_Mint_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_mint_params_var_pop_fields'; + height?: Maybe; }; +export type Bdjuno_Provider_Mint_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_mint_params_var_samp_fields'; + height?: Maybe; +}; -/** columns and relationships of "proposal" */ -export type ProposalValidator_Status_Snapshots_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Bdjuno_Provider_Mint_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_mint_params_variance_fields'; + height?: Maybe; }; -/** aggregated selection of "proposal" */ -export type Proposal_Aggregate = { - __typename?: 'proposal_aggregate'; - aggregate?: Maybe; - nodes: Array; +export type Bdjuno_Provider_Modules = { + __typename?: 'bdjuno_provider_modules'; + module_name: Scalars['String']; }; -/** aggregate fields of "proposal" */ -export type Proposal_Aggregate_Fields = { - __typename?: 'proposal_aggregate_fields'; - avg?: Maybe; +export type Bdjuno_Provider_Modules_Aggregate = { + __typename?: 'bdjuno_provider_modules_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Modules_Aggregate_Fields = { + __typename?: 'bdjuno_provider_modules_aggregate_fields'; 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; }; -/** aggregate fields of "proposal" */ -export type Proposal_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +export type Bdjuno_Provider_Modules_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** order by aggregate values of table "proposal" */ -export type Proposal_Aggregate_Order_By = { - avg?: InputMaybe; - count?: InputMaybe; - max?: InputMaybe; - min?: InputMaybe; - stddev?: InputMaybe; - stddev_pop?: InputMaybe; - stddev_samp?: InputMaybe; - sum?: InputMaybe; - var_pop?: InputMaybe; - var_samp?: InputMaybe; - variance?: InputMaybe; +export type Bdjuno_Provider_Modules_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + module_name?: InputMaybe; }; -/** aggregate avg on columns */ -export type Proposal_Avg_Fields = { - __typename?: 'proposal_avg_fields'; - id?: Maybe; +export type Bdjuno_Provider_Modules_Max_Fields = { + __typename?: 'bdjuno_provider_modules_max_fields'; + module_name?: Maybe; }; -/** order by avg() on columns of table "proposal" */ -export type Proposal_Avg_Order_By = { - id?: InputMaybe; +export type Bdjuno_Provider_Modules_Min_Fields = { + __typename?: 'bdjuno_provider_modules_min_fields'; + module_name?: Maybe; }; -/** Boolean expression to filter rows from the table "proposal". All fields are combined with a logical 'AND'. */ -export type Proposal_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - content?: InputMaybe; - deposit_end_time?: InputMaybe; - description?: InputMaybe; - id?: InputMaybe; - proposal_deposits?: InputMaybe; - proposal_route?: InputMaybe; - proposal_tally_result?: InputMaybe; - proposal_tally_results?: InputMaybe; - proposal_type?: InputMaybe; - proposal_votes?: InputMaybe; - proposer?: InputMaybe; - proposer_address?: InputMaybe; - staking_pool_snapshot?: InputMaybe; - status?: InputMaybe; - submit_time?: InputMaybe; - title?: InputMaybe; - validator_status_snapshots?: InputMaybe; - voting_end_time?: InputMaybe; - voting_start_time?: InputMaybe; +export type Bdjuno_Provider_Modules_Order_By = { + module_name?: InputMaybe; }; -/** columns and relationships of "proposal_deposit" */ -export type Proposal_Deposit = { - __typename?: 'proposal_deposit'; - amount?: Maybe; - /** An object relationship */ - block?: Maybe; - /** An object relationship */ - depositor?: Maybe; - depositor_address?: Maybe; - height: Scalars['bigint']; - /** An object relationship */ - proposal: Proposal; - proposal_id: Scalars['Int']; +export enum Bdjuno_Provider_Modules_Select_Column { + ModuleName = 'module_name' +} + +export type Bdjuno_Provider_Numeric_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export enum Bdjuno_Provider_Order_By { + Asc = 'asc', + AscNullsFirst = 'asc_nulls_first', + AscNullsLast = 'asc_nulls_last', + Desc = 'desc', + DescNullsFirst = 'desc_nulls_first', + DescNullsLast = 'desc_nulls_last' +} + +export type Bdjuno_Provider_Pre_Commit = { + __typename?: 'bdjuno_provider_pre_commit'; + height: Scalars['bdjuno_provider_bigint']; + proposer_priority: Scalars['bdjuno_provider_bigint']; + timestamp: Scalars['bdjuno_provider_timestamp']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bdjuno_provider_bigint']; }; -/** aggregated selection of "proposal_deposit" */ -export type Proposal_Deposit_Aggregate = { - __typename?: 'proposal_deposit_aggregate'; - aggregate?: Maybe; - nodes: Array; +export type Bdjuno_Provider_Pre_Commit_Aggregate = { + __typename?: 'bdjuno_provider_pre_commit_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "proposal_deposit" */ -export type Proposal_Deposit_Aggregate_Fields = { - __typename?: 'proposal_deposit_aggregate_fields'; - avg?: Maybe; +export type Bdjuno_Provider_Pre_Commit_Aggregate_Fields = { + __typename?: 'bdjuno_provider_pre_commit_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 "proposal_deposit" */ -export type Proposal_Deposit_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +export type Bdjuno_Provider_Pre_Commit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** order by aggregate values of table "proposal_deposit" */ -export type Proposal_Deposit_Aggregate_Order_By = { - avg?: InputMaybe; - count?: InputMaybe; - max?: InputMaybe; - min?: InputMaybe; - stddev?: InputMaybe; - stddev_pop?: InputMaybe; - stddev_samp?: InputMaybe; - sum?: InputMaybe; - var_pop?: InputMaybe; - var_samp?: InputMaybe; - variance?: InputMaybe; +export type Bdjuno_Provider_Pre_Commit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; }; -/** aggregate avg on columns */ -export type Proposal_Deposit_Avg_Fields = { - __typename?: 'proposal_deposit_avg_fields'; +export type Bdjuno_Provider_Pre_Commit_Avg_Fields = { + __typename?: 'bdjuno_provider_pre_commit_avg_fields'; height?: Maybe; - proposal_id?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; }; -/** order by avg() on columns of table "proposal_deposit" */ -export type Proposal_Deposit_Avg_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +export type Bdjuno_Provider_Pre_Commit_Avg_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; }; -/** Boolean expression to filter rows from the table "proposal_deposit". All fields are combined with a logical 'AND'. */ -export type Proposal_Deposit_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - amount?: InputMaybe<_Coin_Comparison_Exp>; - block?: InputMaybe; - depositor?: InputMaybe; - depositor_address?: InputMaybe; - height?: InputMaybe; - proposal?: InputMaybe; - proposal_id?: InputMaybe; +export type Bdjuno_Provider_Pre_Commit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; }; -/** aggregate max on columns */ -export type Proposal_Deposit_Max_Fields = { - __typename?: 'proposal_deposit_max_fields'; - depositor_address?: Maybe; - height?: Maybe; - proposal_id?: Maybe; +export type Bdjuno_Provider_Pre_Commit_Max_Fields = { + __typename?: 'bdjuno_provider_pre_commit_max_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; }; -/** order by max() on columns of table "proposal_deposit" */ -export type Proposal_Deposit_Max_Order_By = { - depositor_address?: InputMaybe; - height?: InputMaybe; - proposal_id?: InputMaybe; +export type Bdjuno_Provider_Pre_Commit_Max_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; }; -/** aggregate min on columns */ -export type Proposal_Deposit_Min_Fields = { - __typename?: 'proposal_deposit_min_fields'; - depositor_address?: Maybe; - height?: Maybe; - proposal_id?: Maybe; +export type Bdjuno_Provider_Pre_Commit_Min_Fields = { + __typename?: 'bdjuno_provider_pre_commit_min_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; }; -/** order by min() on columns of table "proposal_deposit" */ -export type Proposal_Deposit_Min_Order_By = { - depositor_address?: InputMaybe; - height?: InputMaybe; - proposal_id?: InputMaybe; +export type Bdjuno_Provider_Pre_Commit_Min_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; }; -/** Ordering options when selecting data from "proposal_deposit". */ -export type Proposal_Deposit_Order_By = { - amount?: InputMaybe; - block?: InputMaybe; - depositor?: InputMaybe; - depositor_address?: InputMaybe; - height?: InputMaybe; - proposal?: InputMaybe; - proposal_id?: InputMaybe; +export type Bdjuno_Provider_Pre_Commit_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; }; -/** select columns of table "proposal_deposit" */ -export enum Proposal_Deposit_Select_Column { - /** column name */ - Amount = 'amount', - /** column name */ - DepositorAddress = 'depositor_address', - /** column name */ +export enum Bdjuno_Provider_Pre_Commit_Select_Column { Height = 'height', - /** column name */ - ProposalId = 'proposal_id' + ProposerPriority = 'proposer_priority', + Timestamp = 'timestamp', + ValidatorAddress = 'validator_address', + VotingPower = 'voting_power' } -/** aggregate stddev on columns */ -export type Proposal_Deposit_Stddev_Fields = { - __typename?: 'proposal_deposit_stddev_fields'; +export type Bdjuno_Provider_Pre_Commit_Stddev_Fields = { + __typename?: 'bdjuno_provider_pre_commit_stddev_fields'; height?: Maybe; - proposal_id?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; }; -/** order by stddev() on columns of table "proposal_deposit" */ -export type Proposal_Deposit_Stddev_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +export type Bdjuno_Provider_Pre_Commit_Stddev_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; }; -/** aggregate stddev_pop on columns */ -export type Proposal_Deposit_Stddev_Pop_Fields = { - __typename?: 'proposal_deposit_stddev_pop_fields'; +export type Bdjuno_Provider_Pre_Commit_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_pre_commit_stddev_pop_fields'; height?: Maybe; - proposal_id?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; }; -/** order by stddev_pop() on columns of table "proposal_deposit" */ -export type Proposal_Deposit_Stddev_Pop_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +export type Bdjuno_Provider_Pre_Commit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Proposal_Deposit_Stddev_Samp_Fields = { - __typename?: 'proposal_deposit_stddev_samp_fields'; +export type Bdjuno_Provider_Pre_Commit_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_pre_commit_stddev_samp_fields'; height?: Maybe; - proposal_id?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; }; -/** order by stddev_samp() on columns of table "proposal_deposit" */ -export type Proposal_Deposit_Stddev_Samp_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +export type Bdjuno_Provider_Pre_Commit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; }; -/** aggregate sum on columns */ -export type Proposal_Deposit_Sum_Fields = { - __typename?: 'proposal_deposit_sum_fields'; - height?: Maybe; - proposal_id?: Maybe; +export type Bdjuno_Provider_Pre_Commit_Sum_Fields = { + __typename?: 'bdjuno_provider_pre_commit_sum_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; }; -/** order by sum() on columns of table "proposal_deposit" */ -export type Proposal_Deposit_Sum_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +export type Bdjuno_Provider_Pre_Commit_Sum_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; }; -/** aggregate var_pop on columns */ -export type Proposal_Deposit_Var_Pop_Fields = { - __typename?: 'proposal_deposit_var_pop_fields'; +export type Bdjuno_Provider_Pre_Commit_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_pre_commit_var_pop_fields'; height?: Maybe; - proposal_id?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; }; -/** order by var_pop() on columns of table "proposal_deposit" */ -export type Proposal_Deposit_Var_Pop_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +export type Bdjuno_Provider_Pre_Commit_Var_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; }; -/** aggregate var_samp on columns */ -export type Proposal_Deposit_Var_Samp_Fields = { - __typename?: 'proposal_deposit_var_samp_fields'; +export type Bdjuno_Provider_Pre_Commit_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_pre_commit_var_samp_fields'; height?: Maybe; - proposal_id?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; }; -/** order by var_samp() on columns of table "proposal_deposit" */ -export type Proposal_Deposit_Var_Samp_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +export type Bdjuno_Provider_Pre_Commit_Var_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; }; -/** aggregate variance on columns */ -export type Proposal_Deposit_Variance_Fields = { - __typename?: 'proposal_deposit_variance_fields'; +export type Bdjuno_Provider_Pre_Commit_Variance_Fields = { + __typename?: 'bdjuno_provider_pre_commit_variance_fields'; height?: Maybe; - proposal_id?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; }; -/** order by variance() on columns of table "proposal_deposit" */ -export type Proposal_Deposit_Variance_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +export type Bdjuno_Provider_Pre_Commit_Variance_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; }; -/** aggregate max on columns */ -export type Proposal_Max_Fields = { - __typename?: 'proposal_max_fields'; - deposit_end_time?: Maybe; - description?: Maybe; - id?: Maybe; - proposal_route?: Maybe; - proposal_type?: Maybe; - proposer_address?: Maybe; +export type Bdjuno_Provider_Proposal = { + __typename?: 'bdjuno_provider_proposal'; + content: Scalars['bdjuno_provider_jsonb']; + deposit_end_time?: Maybe; + description: Scalars['String']; + id: Scalars['Int']; + proposal_deposits: Array; + proposal_deposits_aggregate: Bdjuno_Provider_Proposal_Deposit_Aggregate; + proposal_route: Scalars['String']; + proposal_tally_result?: Maybe; + proposal_tally_results: Array; + proposal_tally_results_aggregate: Bdjuno_Provider_Proposal_Tally_Result_Aggregate; + proposal_type: Scalars['String']; + proposal_votes: Array; + proposal_votes_aggregate: Bdjuno_Provider_Proposal_Vote_Aggregate; + proposer: Bdjuno_Provider_Account; + proposer_address: Scalars['String']; + staking_pool_snapshot?: Maybe; status?: Maybe; - submit_time?: Maybe; - title?: Maybe; - voting_end_time?: Maybe; - voting_start_time?: Maybe; + submit_time: Scalars['bdjuno_provider_timestamp']; + title: Scalars['String']; + validator_status_snapshots: Array; + validator_status_snapshots_aggregate: Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate; + voting_end_time?: Maybe; + voting_start_time?: Maybe; }; -/** order by max() on columns of table "proposal" */ -export type Proposal_Max_Order_By = { - deposit_end_time?: InputMaybe; - description?: InputMaybe; - id?: InputMaybe; - proposal_route?: InputMaybe; - proposal_type?: InputMaybe; - proposer_address?: InputMaybe; - status?: InputMaybe; - submit_time?: InputMaybe; - title?: InputMaybe; - voting_end_time?: InputMaybe; - voting_start_time?: InputMaybe; + +export type Bdjuno_Provider_ProposalContentArgs = { + path?: InputMaybe; }; -/** aggregate min on columns */ -export type Proposal_Min_Fields = { - __typename?: 'proposal_min_fields'; - deposit_end_time?: Maybe; - description?: Maybe; - id?: Maybe; - proposal_route?: Maybe; - proposal_type?: Maybe; - proposer_address?: Maybe; - status?: Maybe; - submit_time?: Maybe; - title?: Maybe; - voting_end_time?: Maybe; - voting_start_time?: Maybe; + +export type Bdjuno_Provider_ProposalProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** order by min() on columns of table "proposal" */ -export type Proposal_Min_Order_By = { - deposit_end_time?: InputMaybe; - description?: InputMaybe; - id?: InputMaybe; - proposal_route?: InputMaybe; - proposal_type?: InputMaybe; - proposer_address?: InputMaybe; - status?: InputMaybe; - submit_time?: InputMaybe; - title?: InputMaybe; - voting_end_time?: InputMaybe; - voting_start_time?: InputMaybe; + +export type Bdjuno_Provider_ProposalProposal_Deposits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** Ordering options when selecting data from "proposal". */ -export type Proposal_Order_By = { - content?: InputMaybe; - deposit_end_time?: InputMaybe; - description?: InputMaybe; - id?: InputMaybe; - proposal_deposits_aggregate?: InputMaybe; - proposal_route?: InputMaybe; - proposal_tally_result?: InputMaybe; - proposal_tally_results_aggregate?: InputMaybe; - proposal_type?: InputMaybe; - proposal_votes_aggregate?: InputMaybe; - proposer?: InputMaybe; - proposer_address?: InputMaybe; - staking_pool_snapshot?: InputMaybe; - status?: InputMaybe; - submit_time?: InputMaybe; - title?: InputMaybe; - validator_status_snapshots_aggregate?: InputMaybe; - voting_end_time?: InputMaybe; - voting_start_time?: InputMaybe; + +export type Bdjuno_Provider_ProposalProposal_Tally_ResultsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** select columns of table "proposal" */ -export enum Proposal_Select_Column { - /** column name */ - Content = 'content', - /** column name */ - DepositEndTime = 'deposit_end_time', - /** column name */ - Description = 'description', - /** column name */ - Id = 'id', - /** column name */ - ProposalRoute = 'proposal_route', - /** column name */ - ProposalType = 'proposal_type', - /** column name */ - ProposerAddress = 'proposer_address', - /** column name */ - Status = 'status', - /** column name */ - SubmitTime = 'submit_time', - /** column name */ - Title = 'title', - /** column name */ - VotingEndTime = 'voting_end_time', - /** column name */ - VotingStartTime = 'voting_start_time' -} -/** columns and relationships of "proposal_staking_pool_snapshot" */ -export type Proposal_Staking_Pool_Snapshot = { - __typename?: 'proposal_staking_pool_snapshot'; - bonded_tokens: Scalars['String']; - height: Scalars['bigint']; - not_bonded_tokens: Scalars['String']; - /** An object relationship */ - proposal: Proposal; - proposal_id: Scalars['Int']; +export type Bdjuno_Provider_ProposalProposal_Tally_Results_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalProposal_Votes_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalValidator_Status_SnapshotsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalValidator_Status_Snapshots_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** aggregated selection of "proposal_staking_pool_snapshot" */ -export type Proposal_Staking_Pool_Snapshot_Aggregate = { - __typename?: 'proposal_staking_pool_snapshot_aggregate'; - aggregate?: Maybe; - nodes: Array; +export type Bdjuno_Provider_Proposal_Aggregate = { + __typename?: 'bdjuno_provider_proposal_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "proposal_staking_pool_snapshot" */ -export type Proposal_Staking_Pool_Snapshot_Aggregate_Fields = { - __typename?: 'proposal_staking_pool_snapshot_aggregate_fields'; - avg?: Maybe; +export type Bdjuno_Provider_Proposal_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_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 "proposal_staking_pool_snapshot" */ -export type Proposal_Staking_Pool_Snapshot_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +export type Bdjuno_Provider_Proposal_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** aggregate avg on columns */ -export type Proposal_Staking_Pool_Snapshot_Avg_Fields = { - __typename?: 'proposal_staking_pool_snapshot_avg_fields'; - height?: Maybe; - proposal_id?: Maybe; +export type Bdjuno_Provider_Proposal_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; }; -/** Boolean expression to filter rows from the table "proposal_staking_pool_snapshot". All fields are combined with a logical 'AND'. */ -export type Proposal_Staking_Pool_Snapshot_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - bonded_tokens?: InputMaybe; - height?: InputMaybe; - not_bonded_tokens?: InputMaybe; - proposal?: InputMaybe; - proposal_id?: InputMaybe; +export type Bdjuno_Provider_Proposal_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_avg_fields'; + id?: Maybe; }; -/** aggregate max on columns */ -export type Proposal_Staking_Pool_Snapshot_Max_Fields = { - __typename?: 'proposal_staking_pool_snapshot_max_fields'; - bonded_tokens?: Maybe; - height?: Maybe; - not_bonded_tokens?: Maybe; - proposal_id?: Maybe; +export type Bdjuno_Provider_Proposal_Avg_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit = { + __typename?: 'bdjuno_provider_proposal_deposit'; + amount?: Maybe; + block?: Maybe; + depositor?: Maybe; + depositor_address?: Maybe; + height: Scalars['bdjuno_provider_bigint']; + proposal: Bdjuno_Provider_Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; }; -/** aggregate min on columns */ -export type Proposal_Staking_Pool_Snapshot_Min_Fields = { - __typename?: 'proposal_staking_pool_snapshot_min_fields'; - bonded_tokens?: Maybe; - height?: Maybe; - not_bonded_tokens?: Maybe; - proposal_id?: Maybe; +export type Bdjuno_Provider_Proposal_Deposit_Aggregate = { + __typename?: 'bdjuno_provider_proposal_deposit_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** Ordering options when selecting data from "proposal_staking_pool_snapshot". */ -export type Proposal_Staking_Pool_Snapshot_Order_By = { - bonded_tokens?: InputMaybe; - height?: InputMaybe; - not_bonded_tokens?: InputMaybe; - proposal?: InputMaybe; - proposal_id?: InputMaybe; +export type Bdjuno_Provider_Proposal_Deposit_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_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; }; -/** select columns of table "proposal_staking_pool_snapshot" */ -export enum Proposal_Staking_Pool_Snapshot_Select_Column { - /** column name */ - BondedTokens = 'bonded_tokens', - /** column name */ - Height = 'height', - /** column name */ - NotBondedTokens = 'not_bonded_tokens', - /** column name */ - ProposalId = 'proposal_id' -} -/** aggregate stddev on columns */ -export type Proposal_Staking_Pool_Snapshot_Stddev_Fields = { - __typename?: 'proposal_staking_pool_snapshot_stddev_fields'; - height?: Maybe; - proposal_id?: Maybe; +export type Bdjuno_Provider_Proposal_Deposit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; }; -/** aggregate stddev_pop on columns */ -export type Proposal_Staking_Pool_Snapshot_Stddev_Pop_Fields = { - __typename?: 'proposal_staking_pool_snapshot_stddev_pop_fields'; - height?: Maybe; - proposal_id?: Maybe; +export type Bdjuno_Provider_Proposal_Deposit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Proposal_Staking_Pool_Snapshot_Stddev_Samp_Fields = { - __typename?: 'proposal_staking_pool_snapshot_stddev_samp_fields'; +export type Bdjuno_Provider_Proposal_Deposit_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_avg_fields'; height?: Maybe; proposal_id?: Maybe; }; -/** aggregate sum on columns */ -export type Proposal_Staking_Pool_Snapshot_Sum_Fields = { - __typename?: 'proposal_staking_pool_snapshot_sum_fields'; - height?: Maybe; +export type Bdjuno_Provider_Proposal_Deposit_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_max_fields'; + depositor_address?: Maybe; + height?: Maybe; proposal_id?: Maybe; + timestamp?: Maybe; }; -/** aggregate var_pop on columns */ -export type Proposal_Staking_Pool_Snapshot_Var_Pop_Fields = { - __typename?: 'proposal_staking_pool_snapshot_var_pop_fields'; +export type Bdjuno_Provider_Proposal_Deposit_Max_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_min_fields'; + depositor_address?: Maybe; + height?: Maybe; + proposal_id?: Maybe; + timestamp?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Min_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Order_By = { + amount?: InputMaybe; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Deposit_Select_Column { + Amount = 'amount', + DepositorAddress = 'depositor_address', + Height = 'height', + ProposalId = 'proposal_id', + Timestamp = 'timestamp' +} + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_max_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Max_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_min_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Min_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Order_By = { + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results_aggregate?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots_aggregate?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Select_Column { + Content = 'content', + DepositEndTime = 'deposit_end_time', + Description = 'description', + Id = 'id', + ProposalRoute = 'proposal_route', + ProposalType = 'proposal_type', + ProposerAddress = 'proposer_address', + Status = 'status', + SubmitTime = 'submit_time', + Title = 'title', + VotingEndTime = 'voting_end_time', + VotingStartTime = 'voting_start_time' +} + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot'; + bonded_tokens: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + not_bonded_tokens: Scalars['String']; + proposal: Bdjuno_Provider_Proposal; + proposal_id: Scalars['Int']; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Aggregate = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_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; +}; + + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_max_fields'; + bonded_tokens?: Maybe; + height?: Maybe; + not_bonded_tokens?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_min_fields'; + bonded_tokens?: Maybe; + height?: Maybe; + not_bonded_tokens?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Order_By = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Select_Column { + BondedTokens = 'bonded_tokens', + Height = 'height', + NotBondedTokens = 'not_bonded_tokens', + ProposalId = 'proposal_id' +} + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_stddev_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_stddev_pop_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Pop_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_stddev_samp_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Samp_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_sum_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Sum_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result = { + __typename?: 'bdjuno_provider_proposal_tally_result'; + abstain: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + no: Scalars['String']; + no_with_veto: Scalars['String']; + proposal: Bdjuno_Provider_Proposal; + proposal_id: Scalars['Int']; + yes: Scalars['String']; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Aggregate = { + __typename?: 'bdjuno_provider_proposal_tally_result_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_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; +}; + + +export type Bdjuno_Provider_Proposal_Tally_Result_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_max_fields'; + abstain?: Maybe; + height?: Maybe; + no?: Maybe; + no_with_veto?: Maybe; + proposal_id?: Maybe; + yes?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Max_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_min_fields'; + abstain?: Maybe; + height?: Maybe; + no?: Maybe; + no_with_veto?: Maybe; + proposal_id?: Maybe; + yes?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Min_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Tally_Result_Select_Column { + Abstain = 'abstain', + Height = 'height', + No = 'no', + NoWithVeto = 'no_with_veto', + ProposalId = 'proposal_id', + Yes = 'yes' +} + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_stddev_fields'; height?: Maybe; proposal_id?: Maybe; }; -/** aggregate var_samp on columns */ -export type Proposal_Staking_Pool_Snapshot_Var_Samp_Fields = { - __typename?: 'proposal_staking_pool_snapshot_var_samp_fields'; - height?: Maybe; - proposal_id?: Maybe; -}; +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot'; + height: Scalars['bdjuno_provider_bigint']; + id: Scalars['Int']; + jailed: Scalars['Boolean']; + proposal?: Maybe; + proposal_id?: Maybe; + status: Scalars['Int']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_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; +}; + + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_avg_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Avg_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + id?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_max_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Max_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_min_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Min_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Select_Column { + Height = 'height', + Id = 'id', + Jailed = 'jailed', + ProposalId = 'proposal_id', + Status = 'status', + ValidatorAddress = 'validator_address', + VotingPower = 'voting_power' +} + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_stddev_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_stddev_pop_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_stddev_samp_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_sum_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Sum_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_var_pop_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Var_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_var_samp_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Var_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_variance_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Variance_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_var_pop_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Var_Pop_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_var_samp_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Var_Samp_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_variance_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Variance_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote = { + __typename?: 'bdjuno_provider_proposal_vote'; + account: Bdjuno_Provider_Account; + block: Bdjuno_Provider_Block; + height: Scalars['bdjuno_provider_bigint']; + option: Scalars['String']; + proposal: Bdjuno_Provider_Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; + voter_address: Scalars['String']; +}; + +export type Bdjuno_Provider_Proposal_Vote_Aggregate = { + __typename?: 'bdjuno_provider_proposal_vote_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Vote_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_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; +}; + + +export type Bdjuno_Provider_Proposal_Vote_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_max_fields'; + height?: Maybe; + option?: Maybe; + proposal_id?: Maybe; + timestamp?: Maybe; + voter_address?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Max_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_min_fields'; + height?: Maybe; + option?: Maybe; + proposal_id?: Maybe; + timestamp?: Maybe; + voter_address?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Min_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Order_By = { + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Vote_Select_Column { + Height = 'height', + Option = 'option', + ProposalId = 'proposal_id', + Timestamp = 'timestamp', + VoterAddress = 'voter_address' +} + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Slashing_Params = { + __typename?: 'bdjuno_provider_slashing_params'; + height: Scalars['bdjuno_provider_bigint']; + one_row_id: Scalars['Boolean']; + params: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_Slashing_ParamsParamsArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Aggregate = { + __typename?: 'bdjuno_provider_slashing_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Slashing_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_slashing_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; +}; + + +export type Bdjuno_Provider_Slashing_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_slashing_params_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Max_Fields = { + __typename?: 'bdjuno_provider_slashing_params_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Min_Fields = { + __typename?: 'bdjuno_provider_slashing_params_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export enum Bdjuno_Provider_Slashing_Params_Select_Column { + Height = 'height', + OneRowId = 'one_row_id', + Params = 'params' +} + +export type Bdjuno_Provider_Slashing_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_slashing_params_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_slashing_params_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_slashing_params_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_slashing_params_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_slashing_params_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_slashing_params_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_slashing_params_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Smallint_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan = { + __typename?: 'bdjuno_provider_software_upgrade_plan'; + height: Scalars['bdjuno_provider_bigint']; + info: Scalars['String']; + plan_name: Scalars['String']; + proposal?: Maybe; + proposal_id?: Maybe; + upgrade_height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Aggregate = { + __typename?: 'bdjuno_provider_software_upgrade_plan_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Aggregate_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_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; +}; + + +export type Bdjuno_Provider_Software_Upgrade_Plan_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Avg_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + info?: InputMaybe; + plan_name?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + upgrade_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Max_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_max_fields'; + height?: Maybe; + info?: Maybe; + plan_name?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Min_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_min_fields'; + height?: Maybe; + info?: Maybe; + plan_name?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Order_By = { + height?: InputMaybe; + info?: InputMaybe; + plan_name?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + upgrade_height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Software_Upgrade_Plan_Select_Column { + Height = 'height', + Info = 'info', + PlanName = 'plan_name', + ProposalId = 'proposal_id', + UpgradeHeight = 'upgrade_height' +} + +export type Bdjuno_Provider_Software_Upgrade_Plan_Stddev_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Sum_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Variance_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params = { + __typename?: 'bdjuno_provider_staking_params'; + height: Scalars['bdjuno_provider_bigint']; + one_row_id: Scalars['Boolean']; + params: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_Staking_ParamsParamsArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Params_Aggregate = { + __typename?: 'bdjuno_provider_staking_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Staking_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_staking_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; +}; + + +export type Bdjuno_Provider_Staking_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_staking_params_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Params_Max_Fields = { + __typename?: 'bdjuno_provider_staking_params_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Min_Fields = { + __typename?: 'bdjuno_provider_staking_params_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export enum Bdjuno_Provider_Staking_Params_Select_Column { + Height = 'height', + OneRowId = 'one_row_id', + Params = 'params' +} + +export type Bdjuno_Provider_Staking_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_staking_params_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_staking_params_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_staking_params_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_staking_params_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_staking_params_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_staking_params_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_staking_params_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool = { + __typename?: 'bdjuno_provider_staking_pool'; + bonded_tokens: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + not_bonded_tokens: Scalars['String']; + staked_not_bonded_tokens?: Maybe; + unbonding_tokens?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Aggregate = { + __typename?: 'bdjuno_provider_staking_pool_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Staking_Pool_Aggregate_Fields = { + __typename?: 'bdjuno_provider_staking_pool_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; +}; + + +export type Bdjuno_Provider_Staking_Pool_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Avg_Fields = { + __typename?: 'bdjuno_provider_staking_pool_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + staked_not_bonded_tokens?: InputMaybe; + unbonding_tokens?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Max_Fields = { + __typename?: 'bdjuno_provider_staking_pool_max_fields'; + bonded_tokens?: Maybe; + height?: Maybe; + not_bonded_tokens?: Maybe; + staked_not_bonded_tokens?: Maybe; + unbonding_tokens?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Min_Fields = { + __typename?: 'bdjuno_provider_staking_pool_min_fields'; + bonded_tokens?: Maybe; + height?: Maybe; + not_bonded_tokens?: Maybe; + staked_not_bonded_tokens?: Maybe; + unbonding_tokens?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Order_By = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + staked_not_bonded_tokens?: InputMaybe; + unbonding_tokens?: InputMaybe; +}; + +export enum Bdjuno_Provider_Staking_Pool_Select_Column { + BondedTokens = 'bonded_tokens', + Height = 'height', + NotBondedTokens = 'not_bonded_tokens', + StakedNotBondedTokens = 'staked_not_bonded_tokens', + UnbondingTokens = 'unbonding_tokens' +} + +export type Bdjuno_Provider_Staking_Pool_Stddev_Fields = { + __typename?: 'bdjuno_provider_staking_pool_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_staking_pool_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_staking_pool_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Sum_Fields = { + __typename?: 'bdjuno_provider_staking_pool_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_staking_pool_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_staking_pool_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Variance_Fields = { + __typename?: 'bdjuno_provider_staking_pool_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply = { + __typename?: 'bdjuno_provider_supply'; + coins: Scalars['bdjuno_provider__coin']; + height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Supply_Aggregate = { + __typename?: 'bdjuno_provider_supply_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Supply_Aggregate_Fields = { + __typename?: 'bdjuno_provider_supply_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; +}; + + +export type Bdjuno_Provider_Supply_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Supply_Avg_Fields = { + __typename?: 'bdjuno_provider_supply_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + coins?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Supply_Max_Fields = { + __typename?: 'bdjuno_provider_supply_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Min_Fields = { + __typename?: 'bdjuno_provider_supply_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Order_By = { + coins?: InputMaybe; + height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Supply_Select_Column { + Coins = 'coins', + Height = 'height' +} + +export type Bdjuno_Provider_Supply_Stddev_Fields = { + __typename?: 'bdjuno_provider_supply_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_supply_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_supply_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Sum_Fields = { + __typename?: 'bdjuno_provider_supply_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_supply_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_supply_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Variance_Fields = { + __typename?: 'bdjuno_provider_supply_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Timestamp_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Timestamptz_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Token = { + __typename?: 'bdjuno_provider_token'; + name: Scalars['String']; + token_units: Array; + token_units_aggregate: Bdjuno_Provider_Token_Unit_Aggregate; +}; + + +export type Bdjuno_Provider_TokenToken_UnitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_TokenToken_Units_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Aggregate = { + __typename?: 'bdjuno_provider_token_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Token_Aggregate_Fields = { + __typename?: 'bdjuno_provider_token_aggregate_fields'; + count: Scalars['Int']; + max?: Maybe; + min?: Maybe; +}; + + +export type Bdjuno_Provider_Token_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + name?: InputMaybe; + token_units?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Max_Fields = { + __typename?: 'bdjuno_provider_token_max_fields'; + name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Min_Fields = { + __typename?: 'bdjuno_provider_token_min_fields'; + name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Order_By = { + name?: InputMaybe; + token_units_aggregate?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price = { + __typename?: 'bdjuno_provider_token_price'; + id: Scalars['Int']; + market_cap: Scalars['bdjuno_provider_bigint']; + price: Scalars['bdjuno_provider_numeric']; + timestamp: Scalars['bdjuno_provider_timestamp']; + token_unit: Bdjuno_Provider_Token_Unit; + unit_name: Scalars['String']; +}; + +export type Bdjuno_Provider_Token_Price_Aggregate = { + __typename?: 'bdjuno_provider_token_price_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Token_Price_Aggregate_Fields = { + __typename?: 'bdjuno_provider_token_price_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; +}; + + +export type Bdjuno_Provider_Token_Price_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Avg_Fields = { + __typename?: 'bdjuno_provider_token_price_avg_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Avg_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History = { + __typename?: 'bdjuno_provider_token_price_history'; + market_cap: Scalars['bdjuno_provider_bigint']; + price: Scalars['bdjuno_provider_numeric']; + timestamp: Scalars['bdjuno_provider_timestamp']; + token_unit: Bdjuno_Provider_Token_Unit; + unit_name: Scalars['String']; +}; + +export type Bdjuno_Provider_Token_Price_History_Aggregate = { + __typename?: 'bdjuno_provider_token_price_history_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Token_Price_History_Aggregate_Fields = { + __typename?: 'bdjuno_provider_token_price_history_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; +}; + + +export type Bdjuno_Provider_Token_Price_History_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Avg_Fields = { + __typename?: 'bdjuno_provider_token_price_history_avg_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Avg_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Max_Fields = { + __typename?: 'bdjuno_provider_token_price_history_max_fields'; + market_cap?: Maybe; + price?: Maybe; + timestamp?: Maybe; + unit_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Max_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Min_Fields = { + __typename?: 'bdjuno_provider_token_price_history_min_fields'; + market_cap?: Maybe; + price?: Maybe; + timestamp?: Maybe; + unit_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Min_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +export enum Bdjuno_Provider_Token_Price_History_Select_Column { + MarketCap = 'market_cap', + Price = 'price', + Timestamp = 'timestamp', + UnitName = 'unit_name' +} + +export type Bdjuno_Provider_Token_Price_History_Stddev_Fields = { + __typename?: 'bdjuno_provider_token_price_history_stddev_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_token_price_history_stddev_pop_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_token_price_history_stddev_samp_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Sum_Fields = { + __typename?: 'bdjuno_provider_token_price_history_sum_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Sum_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_token_price_history_var_pop_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Var_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_token_price_history_var_samp_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Var_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Variance_Fields = { + __typename?: 'bdjuno_provider_token_price_history_variance_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Variance_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Max_Fields = { + __typename?: 'bdjuno_provider_token_price_max_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; + timestamp?: Maybe; + unit_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Max_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Min_Fields = { + __typename?: 'bdjuno_provider_token_price_min_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; + timestamp?: Maybe; + unit_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Min_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +export enum Bdjuno_Provider_Token_Price_Select_Column { + Id = 'id', + MarketCap = 'market_cap', + Price = 'price', + Timestamp = 'timestamp', + UnitName = 'unit_name' +} + +export type Bdjuno_Provider_Token_Price_Stddev_Fields = { + __typename?: 'bdjuno_provider_token_price_stddev_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_token_price_stddev_pop_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Pop_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_token_price_stddev_samp_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Samp_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Sum_Fields = { + __typename?: 'bdjuno_provider_token_price_sum_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Sum_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_token_price_var_pop_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Var_Pop_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_token_price_var_samp_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Var_Samp_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Variance_Fields = { + __typename?: 'bdjuno_provider_token_price_variance_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Variance_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export enum Bdjuno_Provider_Token_Select_Column { + Name = 'name' +} + +export type Bdjuno_Provider_Token_Unit = { + __typename?: 'bdjuno_provider_token_unit'; + aliases?: Maybe; + denom: Scalars['String']; + exponent: Scalars['Int']; + price_id?: Maybe; + token: Bdjuno_Provider_Token; + token_name: Scalars['String']; + token_price?: Maybe; + token_price_histories: Array; + token_price_histories_aggregate: Bdjuno_Provider_Token_Price_History_Aggregate; + token_prices: Array; + token_prices_aggregate: Bdjuno_Provider_Token_Price_Aggregate; +}; + + +export type Bdjuno_Provider_Token_UnitToken_Price_HistoriesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Token_UnitToken_Price_Histories_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Token_UnitToken_PricesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Token_UnitToken_Prices_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Aggregate = { + __typename?: 'bdjuno_provider_token_unit_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Token_Unit_Aggregate_Fields = { + __typename?: 'bdjuno_provider_token_unit_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; +}; + + +export type Bdjuno_Provider_Token_Unit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Avg_Fields = { + __typename?: 'bdjuno_provider_token_unit_avg_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Avg_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + aliases?: InputMaybe; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token?: InputMaybe; + token_name?: InputMaybe; + token_price?: InputMaybe; + token_price_histories?: InputMaybe; + token_prices?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Max_Fields = { + __typename?: 'bdjuno_provider_token_unit_max_fields'; + denom?: Maybe; + exponent?: Maybe; + price_id?: Maybe; + token_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Max_Order_By = { + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Min_Fields = { + __typename?: 'bdjuno_provider_token_unit_min_fields'; + denom?: Maybe; + exponent?: Maybe; + price_id?: Maybe; + token_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Min_Order_By = { + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Order_By = { + aliases?: InputMaybe; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token?: InputMaybe; + token_name?: InputMaybe; + token_price?: InputMaybe; + token_price_histories_aggregate?: InputMaybe; + token_prices_aggregate?: InputMaybe; +}; + +export enum Bdjuno_Provider_Token_Unit_Select_Column { + Aliases = 'aliases', + Denom = 'denom', + Exponent = 'exponent', + PriceId = 'price_id', + TokenName = 'token_name' +} + +export type Bdjuno_Provider_Token_Unit_Stddev_Fields = { + __typename?: 'bdjuno_provider_token_unit_stddev_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_token_unit_stddev_pop_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Pop_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_token_unit_stddev_samp_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Samp_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Sum_Fields = { + __typename?: 'bdjuno_provider_token_unit_sum_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Sum_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_token_unit_var_pop_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Var_Pop_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_token_unit_var_samp_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Var_Samp_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Variance_Fields = { + __typename?: 'bdjuno_provider_token_unit_variance_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Variance_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction = { + __typename?: 'bdjuno_provider_transaction'; + block: Bdjuno_Provider_Block; + fee: Scalars['bdjuno_provider_jsonb']; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + logs?: Maybe; + memo?: Maybe; + messages: Scalars['bdjuno_provider_jsonb']; + messagesByTransactionHashPartitionId: Array; + messagesByTransactionHashPartitionId_aggregate: Bdjuno_Provider_Message_Aggregate; + partition_id: Scalars['bdjuno_provider_bigint']; + raw_log?: Maybe; + signatures: Scalars['bdjuno_provider__text']; + signer_infos: Scalars['bdjuno_provider_jsonb']; + success: Scalars['Boolean']; +}; + + +export type Bdjuno_Provider_TransactionFeeArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionLogsArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionMessagesArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionMessagesByTransactionHashPartitionIdArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionMessagesByTransactionHashPartitionId_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionSigner_InfosArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Aggregate = { + __typename?: 'bdjuno_provider_transaction_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Transaction_Aggregate_Fields = { + __typename?: 'bdjuno_provider_transaction_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; +}; + + +export type Bdjuno_Provider_Transaction_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Avg_Fields = { + __typename?: 'bdjuno_provider_transaction_avg_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Avg_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + messagesByTransactionHashPartitionId?: InputMaybe; + partition_id?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Max_Fields = { + __typename?: 'bdjuno_provider_transaction_max_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash?: Maybe; + height?: Maybe; + memo?: Maybe; + partition_id?: Maybe; + raw_log?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Max_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + partition_id?: InputMaybe; + raw_log?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Min_Fields = { + __typename?: 'bdjuno_provider_transaction_min_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash?: Maybe; + height?: Maybe; + memo?: Maybe; + partition_id?: Maybe; + raw_log?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Min_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + partition_id?: InputMaybe; + raw_log?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Order_By = { + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + messagesByTransactionHashPartitionId_aggregate?: InputMaybe; + partition_id?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +export enum Bdjuno_Provider_Transaction_Select_Column { + Fee = 'fee', + GasUsed = 'gas_used', + GasWanted = 'gas_wanted', + Hash = 'hash', + Height = 'height', + Logs = 'logs', + Memo = 'memo', + Messages = 'messages', + PartitionId = 'partition_id', + RawLog = 'raw_log', + Signatures = 'signatures', + SignerInfos = 'signer_infos', + Success = 'success' +} + +export type Bdjuno_Provider_Transaction_Stddev_Fields = { + __typename?: 'bdjuno_provider_transaction_stddev_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_transaction_stddev_pop_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_transaction_stddev_samp_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Sum_Fields = { + __typename?: 'bdjuno_provider_transaction_sum_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Sum_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_transaction_var_pop_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Var_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_transaction_var_samp_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Var_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Variance_Fields = { + __typename?: 'bdjuno_provider_transaction_variance_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Variance_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator = { + __typename?: 'bdjuno_provider_validator'; + blocks: Array; + blocks_aggregate: Bdjuno_Provider_Block_Aggregate; + consensus_address: Scalars['String']; + consensus_pubkey: Scalars['String']; + double_sign_votes: Array; + double_sign_votes_aggregate: Bdjuno_Provider_Double_Sign_Vote_Aggregate; + pre_commits: Array; + pre_commits_aggregate: Bdjuno_Provider_Pre_Commit_Aggregate; + proposal_validator_status_snapshot?: Maybe; + proposal_validator_status_snapshots: Array; + proposal_validator_status_snapshots_aggregate: Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate; + validator_commissions: Array; + validator_commissions_aggregate: Bdjuno_Provider_Validator_Commission_Aggregate; + validator_descriptions: Array; + validator_descriptions_aggregate: Bdjuno_Provider_Validator_Description_Aggregate; + validator_info?: Maybe; + validator_infos: Array; + validator_infos_aggregate: Bdjuno_Provider_Validator_Info_Aggregate; + validator_signing_infos: Array; + validator_signing_infos_aggregate: Bdjuno_Provider_Validator_Signing_Info_Aggregate; + validator_statuses: Array; + validator_statuses_aggregate: Bdjuno_Provider_Validator_Status_Aggregate; + validator_voting_powers: Array; + validator_voting_powers_aggregate: Bdjuno_Provider_Validator_Voting_Power_Aggregate; +}; + + +export type Bdjuno_Provider_ValidatorBlocksArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorBlocks_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorDouble_Sign_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorDouble_Sign_Votes_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorProposal_Validator_Status_SnapshotsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorProposal_Validator_Status_Snapshots_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_CommissionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Commissions_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_DescriptionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Descriptions_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Infos_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Signing_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Signing_Infos_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_StatusesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Statuses_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Aggregate = { + __typename?: 'bdjuno_provider_validator_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_aggregate_fields'; + count: Scalars['Int']; + max?: Maybe; + min?: Maybe; +}; + + +export type Bdjuno_Provider_Validator_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + blocks?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes?: InputMaybe; + pre_commits?: InputMaybe; + proposal_validator_status_snapshot?: InputMaybe; + proposal_validator_status_snapshots?: InputMaybe; + validator_commissions?: InputMaybe; + validator_descriptions?: InputMaybe; + validator_info?: InputMaybe; + validator_infos?: InputMaybe; + validator_signing_infos?: InputMaybe; + validator_statuses?: InputMaybe; + validator_voting_powers?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission = { + __typename?: 'bdjuno_provider_validator_commission'; + commission: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; + min_self_delegation: Scalars['bdjuno_provider_bigint']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; +}; + +export type Bdjuno_Provider_Validator_Commission_Aggregate = { + __typename?: 'bdjuno_provider_validator_commission_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Commission_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_commission_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; +}; + + +export type Bdjuno_Provider_Validator_Commission_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_commission_avg_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Avg_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Max_Fields = { + __typename?: 'bdjuno_provider_validator_commission_max_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Max_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Min_Fields = { + __typename?: 'bdjuno_provider_validator_commission_min_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Min_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Commission_Select_Column { + Commission = 'commission', + Height = 'height', + MinSelfDelegation = 'min_self_delegation', + ValidatorAddress = 'validator_address' +} + +export type Bdjuno_Provider_Validator_Commission_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_commission_stddev_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_commission_stddev_pop_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Pop_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_commission_stddev_samp_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Samp_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_commission_sum_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Sum_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_commission_var_pop_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Var_Pop_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_commission_var_samp_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Var_Samp_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_commission_variance_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Variance_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description = { + __typename?: 'bdjuno_provider_validator_description'; + avatar_url?: Maybe; + details?: Maybe; + height: Scalars['bdjuno_provider_bigint']; + identity?: Maybe; + moniker?: Maybe; + security_contact?: Maybe; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + website?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Aggregate = { + __typename?: 'bdjuno_provider_validator_description_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Description_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_description_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; +}; + + +export type Bdjuno_Provider_Validator_Description_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_description_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Avg_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Max_Fields = { + __typename?: 'bdjuno_provider_validator_description_max_fields'; + avatar_url?: Maybe; + details?: Maybe; + height?: Maybe; + identity?: Maybe; + moniker?: Maybe; + security_contact?: Maybe; + validator_address?: Maybe; + website?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Max_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Min_Fields = { + __typename?: 'bdjuno_provider_validator_description_min_fields'; + avatar_url?: Maybe; + details?: Maybe; + height?: Maybe; + identity?: Maybe; + moniker?: Maybe; + security_contact?: Maybe; + validator_address?: Maybe; + website?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Min_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Description_Select_Column { + AvatarUrl = 'avatar_url', + Details = 'details', + Height = 'height', + Identity = 'identity', + Moniker = 'moniker', + SecurityContact = 'security_contact', + ValidatorAddress = 'validator_address', + Website = 'website' +} + +export type Bdjuno_Provider_Validator_Description_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_description_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_description_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Pop_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_description_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Samp_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_description_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Sum_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_description_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Var_Pop_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_description_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Var_Samp_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_description_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Variance_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info = { + __typename?: 'bdjuno_provider_validator_info'; + account?: Maybe; + consensus_address: Scalars['String']; + max_change_rate: Scalars['String']; + max_rate: Scalars['String']; + operator_address: Scalars['String']; + self_delegate_address?: Maybe; + validator: Bdjuno_Provider_Validator; +}; + +export type Bdjuno_Provider_Validator_Info_Aggregate = { + __typename?: 'bdjuno_provider_validator_info_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Info_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_info_aggregate_fields'; + count: Scalars['Int']; + max?: Maybe; + min?: Maybe; +}; + + +export type Bdjuno_Provider_Validator_Info_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Aggregate_Order_By = { + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; + validator?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Max_Fields = { + __typename?: 'bdjuno_provider_validator_info_max_fields'; + consensus_address?: Maybe; + max_change_rate?: Maybe; + max_rate?: Maybe; + operator_address?: Maybe; + self_delegate_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Info_Max_Order_By = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Min_Fields = { + __typename?: 'bdjuno_provider_validator_info_min_fields'; + consensus_address?: Maybe; + max_change_rate?: Maybe; + max_rate?: Maybe; + operator_address?: Maybe; + self_delegate_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Info_Min_Order_By = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Order_By = { + account?: InputMaybe; + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; + validator?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Info_Select_Column { + ConsensusAddress = 'consensus_address', + MaxChangeRate = 'max_change_rate', + MaxRate = 'max_rate', + OperatorAddress = 'operator_address', + SelfDelegateAddress = 'self_delegate_address' +} + +export type Bdjuno_Provider_Validator_Max_Fields = { + __typename?: 'bdjuno_provider_validator_max_fields'; + consensus_address?: Maybe; + consensus_pubkey?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Min_Fields = { + __typename?: 'bdjuno_provider_validator_min_fields'; + consensus_address?: Maybe; + consensus_pubkey?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Order_By = { + blocks_aggregate?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes_aggregate?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_validator_status_snapshot?: InputMaybe; + proposal_validator_status_snapshots_aggregate?: InputMaybe; + validator_commissions_aggregate?: InputMaybe; + validator_descriptions_aggregate?: InputMaybe; + validator_info?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + validator_signing_infos_aggregate?: InputMaybe; + validator_statuses_aggregate?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Select_Column { + ConsensusAddress = 'consensus_address', + ConsensusPubkey = 'consensus_pubkey' +} + +export type Bdjuno_Provider_Validator_Signing_Info = { + __typename?: 'bdjuno_provider_validator_signing_info'; + height: Scalars['bdjuno_provider_bigint']; + index_offset: Scalars['bdjuno_provider_bigint']; + jailed_until: Scalars['bdjuno_provider_timestamp']; + missed_blocks_counter: Scalars['bdjuno_provider_bigint']; + start_height: Scalars['bdjuno_provider_bigint']; + tombstoned: Scalars['Boolean']; + validator_address: Scalars['String']; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Aggregate = { + __typename?: 'bdjuno_provider_validator_signing_info_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_signing_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; +}; + + +export type Bdjuno_Provider_Validator_Signing_Info_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_avg_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Avg_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Max_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_max_fields'; + height?: Maybe; + index_offset?: Maybe; + jailed_until?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Max_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Min_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_min_fields'; + height?: Maybe; + index_offset?: Maybe; + jailed_until?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Min_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Signing_Info_Select_Column { + Height = 'height', + IndexOffset = 'index_offset', + JailedUntil = 'jailed_until', + MissedBlocksCounter = 'missed_blocks_counter', + StartHeight = 'start_height', + Tombstoned = 'tombstoned', + ValidatorAddress = 'validator_address' +} + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_stddev_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_stddev_pop_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_stddev_samp_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_sum_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Sum_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_var_pop_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Var_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_var_samp_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Var_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_variance_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Variance_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status = { + __typename?: 'bdjuno_provider_validator_status'; + height: Scalars['bdjuno_provider_bigint']; + jailed: Scalars['Boolean']; + status: Scalars['Int']; + tombstoned: Scalars['Boolean']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; +}; + +export type Bdjuno_Provider_Validator_Status_Aggregate = { + __typename?: 'bdjuno_provider_validator_status_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Status_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_status_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; +}; + + +export type Bdjuno_Provider_Validator_Status_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_status_avg_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Avg_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + tombstoned?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Max_Fields = { + __typename?: 'bdjuno_provider_validator_status_max_fields'; + height?: Maybe; + status?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Max_Order_By = { + height?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Min_Fields = { + __typename?: 'bdjuno_provider_validator_status_min_fields'; + height?: Maybe; + status?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Min_Order_By = { + height?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Order_By = { + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + tombstoned?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Status_Select_Column { + Height = 'height', + Jailed = 'jailed', + Status = 'status', + Tombstoned = 'tombstoned', + ValidatorAddress = 'validator_address' +} + +export type Bdjuno_Provider_Validator_Status_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_status_stddev_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_status_stddev_pop_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Pop_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_status_stddev_samp_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Samp_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_status_sum_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Sum_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_status_var_pop_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Var_Pop_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_status_var_samp_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Var_Samp_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_status_variance_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Variance_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power = { + __typename?: 'bdjuno_provider_validator_voting_power'; + block: Bdjuno_Provider_Block; + height: Scalars['bdjuno_provider_bigint']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Aggregate = { + __typename?: 'bdjuno_provider_validator_voting_power_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_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; +}; + + +export type Bdjuno_Provider_Validator_Voting_Power_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_avg_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Avg_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + height?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Max_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_max_fields'; + height?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Max_Order_By = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Min_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_min_fields'; + height?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Min_Order_By = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Order_By = { + block?: InputMaybe; + height?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Voting_Power_Select_Column { + Height = 'height', + ValidatorAddress = 'validator_address', + VotingPower = 'voting_power' +} + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_stddev_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_stddev_pop_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Pop_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_stddev_samp_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Samp_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_sum_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Sum_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_var_pop_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Var_Pop_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_var_samp_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Var_Samp_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_variance_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Variance_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account = { + __typename?: 'bdjuno_provider_vesting_account'; + account: Bdjuno_Provider_Account; + address: Scalars['String']; + end_time: Scalars['bdjuno_provider_timestamp']; + id: Scalars['Int']; + original_vesting: Scalars['bdjuno_provider__coin']; + start_time?: Maybe; + type: Scalars['String']; + vesting_periods: Array; + vesting_periods_aggregate: Bdjuno_Provider_Vesting_Period_Aggregate; +}; + + +export type Bdjuno_Provider_Vesting_AccountVesting_PeriodsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Vesting_AccountVesting_Periods_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Aggregate = { + __typename?: 'bdjuno_provider_vesting_account_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Vesting_Account_Aggregate_Fields = { + __typename?: 'bdjuno_provider_vesting_account_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; +}; + + +export type Bdjuno_Provider_Vesting_Account_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Avg_Fields = { + __typename?: 'bdjuno_provider_vesting_account_avg_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Avg_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + id?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Max_Fields = { + __typename?: 'bdjuno_provider_vesting_account_max_fields'; + address?: Maybe; + end_time?: Maybe; + id?: Maybe; + start_time?: Maybe; + type?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Max_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + id?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Min_Fields = { + __typename?: 'bdjuno_provider_vesting_account_min_fields'; + address?: Maybe; + end_time?: Maybe; + id?: Maybe; + start_time?: Maybe; + type?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Min_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + id?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Order_By = { + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + id?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods_aggregate?: InputMaybe; +}; + +export enum Bdjuno_Provider_Vesting_Account_Select_Column { + Address = 'address', + EndTime = 'end_time', + Id = 'id', + OriginalVesting = 'original_vesting', + StartTime = 'start_time', + Type = 'type' +} + +export type Bdjuno_Provider_Vesting_Account_Stddev_Fields = { + __typename?: 'bdjuno_provider_vesting_account_stddev_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_vesting_account_stddev_pop_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Pop_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_vesting_account_stddev_samp_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Samp_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Sum_Fields = { + __typename?: 'bdjuno_provider_vesting_account_sum_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Sum_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_vesting_account_var_pop_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Var_Pop_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_vesting_account_var_samp_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Var_Samp_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Variance_Fields = { + __typename?: 'bdjuno_provider_vesting_account_variance_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Variance_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period = { + __typename?: 'bdjuno_provider_vesting_period'; + amount: Scalars['bdjuno_provider__coin']; + length: Scalars['bdjuno_provider_bigint']; + period_order: Scalars['bdjuno_provider_bigint']; + vesting_account: Bdjuno_Provider_Vesting_Account; + vesting_account_id: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Vesting_Period_Aggregate = { + __typename?: 'bdjuno_provider_vesting_period_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Vesting_Period_Aggregate_Fields = { + __typename?: 'bdjuno_provider_vesting_period_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; +}; + + +export type Bdjuno_Provider_Vesting_Period_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Avg_Fields = { + __typename?: 'bdjuno_provider_vesting_period_avg_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Avg_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Max_Fields = { + __typename?: 'bdjuno_provider_vesting_period_max_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Max_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Min_Fields = { + __typename?: 'bdjuno_provider_vesting_period_min_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Min_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Order_By = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export enum Bdjuno_Provider_Vesting_Period_Select_Column { + Amount = 'amount', + Length = 'length', + PeriodOrder = 'period_order', + VestingAccountId = 'vesting_account_id' +} + +export type Bdjuno_Provider_Vesting_Period_Stddev_Fields = { + __typename?: 'bdjuno_provider_vesting_period_stddev_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_vesting_period_stddev_pop_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_vesting_period_stddev_samp_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Sum_Fields = { + __typename?: 'bdjuno_provider_vesting_period_sum_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Sum_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_vesting_period_var_pop_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Var_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_vesting_period_var_samp_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Var_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Variance_Fields = { + __typename?: 'bdjuno_provider_vesting_period_variance_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Variance_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Providerquery_Root = { + __typename?: 'bdjuno_providerquery_root'; + account: Array; + account_aggregate: Bdjuno_Provider_Account_Aggregate; + account_by_pk?: Maybe; + action_account_balance?: Maybe; + action_delegation?: Maybe; + action_delegation_reward?: Maybe>>; + action_delegation_total?: Maybe; + action_delegator_withdraw_address: Bdjuno_Provider_ActionAddress; + action_redelegation?: Maybe; + action_unbonding_delegation?: Maybe; + action_unbonding_delegation_total?: Maybe; + action_validator_commission_amount?: Maybe; + action_validator_delegations?: Maybe; + action_validator_redelegations_from?: Maybe; + action_validator_unbonding_delegations?: Maybe; + average_block_time_from_genesis: Array; + average_block_time_from_genesis_aggregate: Bdjuno_Provider_Average_Block_Time_From_Genesis_Aggregate; + average_block_time_per_day: Array; + average_block_time_per_day_aggregate: Bdjuno_Provider_Average_Block_Time_Per_Day_Aggregate; + average_block_time_per_hour: Array; + average_block_time_per_hour_aggregate: Bdjuno_Provider_Average_Block_Time_Per_Hour_Aggregate; + average_block_time_per_minute: Array; + average_block_time_per_minute_aggregate: Bdjuno_Provider_Average_Block_Time_Per_Minute_Aggregate; + block: Array; + block_aggregate: Bdjuno_Provider_Block_Aggregate; + block_by_pk?: Maybe; + community_pool: Array; + community_pool_aggregate: Bdjuno_Provider_Community_Pool_Aggregate; + distribution_params: Array; + distribution_params_aggregate: Bdjuno_Provider_Distribution_Params_Aggregate; + distribution_params_by_pk?: Maybe; + double_sign_evidence: Array; + double_sign_evidence_aggregate: Bdjuno_Provider_Double_Sign_Evidence_Aggregate; + double_sign_vote: Array; + double_sign_vote_aggregate: Bdjuno_Provider_Double_Sign_Vote_Aggregate; + double_sign_vote_by_pk?: Maybe; + fee_grant_allowance: Array; + fee_grant_allowance_aggregate: Bdjuno_Provider_Fee_Grant_Allowance_Aggregate; + fee_grant_allowance_by_pk?: Maybe; + genesis: Array; + genesis_aggregate: Bdjuno_Provider_Genesis_Aggregate; + gov_params: Array; + gov_params_aggregate: Bdjuno_Provider_Gov_Params_Aggregate; + gov_params_by_pk?: Maybe; + inflation: Array; + inflation_aggregate: Bdjuno_Provider_Inflation_Aggregate; + message: Array; + message_aggregate: Bdjuno_Provider_Message_Aggregate; + messages_by_address: Array; + messages_by_address_aggregate: Bdjuno_Provider_Message_Aggregate; + mint_params: Array; + mint_params_aggregate: Bdjuno_Provider_Mint_Params_Aggregate; + mint_params_by_pk?: Maybe; + modules: Array; + modules_aggregate: Bdjuno_Provider_Modules_Aggregate; + modules_by_pk?: Maybe; + pre_commit: Array; + pre_commit_aggregate: Bdjuno_Provider_Pre_Commit_Aggregate; + proposal: Array; + proposal_aggregate: Bdjuno_Provider_Proposal_Aggregate; + proposal_by_pk?: Maybe; + proposal_deposit: Array; + proposal_deposit_aggregate: Bdjuno_Provider_Proposal_Deposit_Aggregate; + proposal_staking_pool_snapshot: Array; + proposal_staking_pool_snapshot_aggregate: Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Aggregate; + proposal_staking_pool_snapshot_by_pk?: Maybe; + proposal_tally_result: Array; + proposal_tally_result_aggregate: Bdjuno_Provider_Proposal_Tally_Result_Aggregate; + proposal_tally_result_by_pk?: Maybe; + proposal_validator_status_snapshot: Array; + proposal_validator_status_snapshot_aggregate: Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate; + proposal_validator_status_snapshot_by_pk?: Maybe; + proposal_vote: Array; + proposal_vote_aggregate: Bdjuno_Provider_Proposal_Vote_Aggregate; + slashing_params: Array; + slashing_params_aggregate: Bdjuno_Provider_Slashing_Params_Aggregate; + slashing_params_by_pk?: Maybe; + software_upgrade_plan: Array; + software_upgrade_plan_aggregate: Bdjuno_Provider_Software_Upgrade_Plan_Aggregate; + staking_params: Array; + staking_params_aggregate: Bdjuno_Provider_Staking_Params_Aggregate; + staking_params_by_pk?: Maybe; + staking_pool: Array; + staking_pool_aggregate: Bdjuno_Provider_Staking_Pool_Aggregate; + supply: Array; + supply_aggregate: Bdjuno_Provider_Supply_Aggregate; + token: Array; + token_aggregate: Bdjuno_Provider_Token_Aggregate; + token_price: Array; + token_price_aggregate: Bdjuno_Provider_Token_Price_Aggregate; + token_price_by_pk?: Maybe; + token_price_history: Array; + token_price_history_aggregate: Bdjuno_Provider_Token_Price_History_Aggregate; + token_unit: Array; + token_unit_aggregate: Bdjuno_Provider_Token_Unit_Aggregate; + transaction: Array; + transaction_aggregate: Bdjuno_Provider_Transaction_Aggregate; + validator: Array; + validator_aggregate: Bdjuno_Provider_Validator_Aggregate; + validator_by_pk?: Maybe; + validator_commission: Array; + validator_commission_aggregate: Bdjuno_Provider_Validator_Commission_Aggregate; + validator_commission_by_pk?: Maybe; + validator_description: Array; + validator_description_aggregate: Bdjuno_Provider_Validator_Description_Aggregate; + validator_description_by_pk?: Maybe; + validator_info: Array; + validator_info_aggregate: Bdjuno_Provider_Validator_Info_Aggregate; + validator_info_by_pk?: Maybe; + validator_signing_info: Array; + validator_signing_info_aggregate: Bdjuno_Provider_Validator_Signing_Info_Aggregate; + validator_signing_info_by_pk?: Maybe; + validator_status: Array; + validator_status_aggregate: Bdjuno_Provider_Validator_Status_Aggregate; + validator_status_by_pk?: Maybe; + validator_voting_power: Array; + validator_voting_power_aggregate: Bdjuno_Provider_Validator_Voting_Power_Aggregate; + validator_voting_power_by_pk?: Maybe; + vesting_account: Array; + vesting_account_aggregate: Bdjuno_Provider_Vesting_Account_Aggregate; + vesting_account_by_pk?: Maybe; + vesting_period: Array; + vesting_period_aggregate: Bdjuno_Provider_Vesting_Period_Aggregate; +}; + + +export type Bdjuno_Providerquery_RootAccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAccount_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAccount_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootAction_Account_BalanceArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_DelegationArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Delegation_RewardArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Delegation_TotalArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Delegator_Withdraw_AddressArgs = { + address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootAction_RedelegationArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Unbonding_DelegationArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Unbonding_Delegation_TotalArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Validator_Commission_AmountArgs = { + address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootAction_Validator_DelegationsArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Validator_Redelegations_FromArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Validator_Unbonding_DelegationsArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_From_GenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_From_Genesis_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_DayArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_Day_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_HourArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_Hour_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_MinuteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_Minute_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootBlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootBlock_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootBlock_By_PkArgs = { + height: Scalars['bdjuno_provider_bigint']; +}; + + +export type Bdjuno_Providerquery_RootCommunity_PoolArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootCommunity_Pool_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDistribution_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDistribution_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDistribution_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_EvidenceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_Evidence_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_Vote_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_Vote_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootFee_Grant_AllowanceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootFee_Grant_Allowance_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootFee_Grant_Allowance_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootGenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootGenesis_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootGov_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootGov_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootGov_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootInflationArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootInflation_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMessageArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMessage_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMessages_By_AddressArgs = { + args: Bdjuno_Provider_Messages_By_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMessages_By_Address_AggregateArgs = { + args: Bdjuno_Provider_Messages_By_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMint_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMint_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMint_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootModulesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootModules_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootModules_By_PkArgs = { + module_name: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootPre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootPre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposalArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootProposal_DepositArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Deposit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Staking_Pool_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Staking_Pool_Snapshot_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Staking_Pool_Snapshot_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootProposal_Tally_ResultArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Tally_Result_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Tally_Result_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootProposal_Validator_Status_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Validator_Status_Snapshot_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Validator_Status_Snapshot_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootProposal_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Vote_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSlashing_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSlashing_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSlashing_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootSoftware_Upgrade_PlanArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSoftware_Upgrade_Plan_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootStaking_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootStaking_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootStaking_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootStaking_PoolArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootStaking_Pool_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSupplyArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSupply_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootTokenArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_PriceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_Price_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_Price_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootToken_Price_HistoryArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_Price_History_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_UnitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_Unit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootTransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootTransaction_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_CommissionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Commission_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Commission_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_DescriptionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Description_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Description_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Info_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Info_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Signing_Info_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_StatusArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Status_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Status_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_Voting_PowerArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Voting_Power_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Voting_Power_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootVesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootVesting_Account_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootVesting_Account_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootVesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootVesting_Period_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "bigint". All fields are combined with logical 'AND'. */ +export type Bigint_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "block" */ +export type Block = { + __typename?: 'block'; + /** An object relationship */ + ccv_validator?: Maybe; + hash: Scalars['String']; + height: Scalars['bigint']; + num_txs?: Maybe; + /** An array relationship */ + pre_commits: Array; + /** An aggregate relationship */ + pre_commits_aggregate: Pre_Commit_Aggregate; + /** An array relationship */ + proposal_deposits: Array; + /** An array relationship */ + proposal_votes: Array; + proposer_address?: Maybe; + timestamp: Scalars['timestamp']; + total_gas?: Maybe; + /** An array relationship */ + transactions: Array; + /** An object relationship */ + validator?: Maybe; + /** An array relationship */ + validator_voting_powers: Array; + /** An aggregate relationship */ + validator_voting_powers_aggregate: Validator_Voting_Power_Aggregate; +}; + + +/** columns and relationships of "block" */ +export type BlockPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockTransactionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "block" */ +export type Block_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "block" */ +export type Block_Avg_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "block". All fields are combined with a logical 'AND'. */ +export type Block_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + ccv_validator?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** order by max() on columns of table "block" */ +export type Block_Max_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by min() on columns of table "block" */ +export type Block_Min_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Ordering options when selecting data from "block". */ +export type Block_Order_By = { + ccv_validator?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions_aggregate?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** select columns of table "block" */ +export enum Block_Select_Column { + /** column name */ + Hash = 'hash', + /** column name */ + Height = 'height', + /** column name */ + NumTxs = 'num_txs', + /** column name */ + ProposerAddress = 'proposer_address', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + TotalGas = 'total_gas' +} + +/** order by stddev() on columns of table "block" */ +export type Block_Stddev_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "block" */ +export type Block_Stddev_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "block" */ +export type Block_Stddev_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Streaming cursor of the table "block" */ +export type Block_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Block_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Block_Stream_Cursor_Value_Input = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by sum() on columns of table "block" */ +export type Block_Sum_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by var_pop() on columns of table "block" */ +export type Block_Var_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by var_samp() on columns of table "block" */ +export type Block_Var_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by variance() on columns of table "block" */ +export type Block_Variance_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** columns and relationships of "ccv_validator" */ +export type Ccv_Validator = { + __typename?: 'ccv_validator'; + ccv_validator?: Maybe; + ccv_validator_info?: Maybe; + consumer_consensus_address: Scalars['String']; + consumer_operator_address: Scalars['String']; + consumer_self_delegate_address: Scalars['String']; + height: Scalars['bigint']; + provider_consensus_address: Scalars['String']; + provider_operator_address: Scalars['String']; + provider_self_delegate_address: Scalars['String']; + /** An object relationship */ + validator?: Maybe; + /** An object relationship */ + validator_info?: Maybe; +}; + +/** aggregated selection of "ccv_validator" */ +export type Ccv_Validator_Aggregate = { + __typename?: 'ccv_validator_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "ccv_validator" */ +export type Ccv_Validator_Aggregate_Fields = { + __typename?: 'ccv_validator_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 "ccv_validator" */ +export type Ccv_Validator_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Ccv_Validator_Avg_Fields = { + __typename?: 'ccv_validator_avg_fields'; + height?: Maybe; +}; + +/** Boolean expression to filter rows from the table "ccv_validator". All fields are combined with a logical 'AND'. */ +export type Ccv_Validator_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + consumer_consensus_address?: InputMaybe; + consumer_operator_address?: InputMaybe; + consumer_self_delegate_address?: InputMaybe; + height?: InputMaybe; + provider_consensus_address?: InputMaybe; + provider_operator_address?: InputMaybe; + provider_self_delegate_address?: InputMaybe; + validator?: InputMaybe; + validator_info?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Ccv_Validator_Max_Fields = { + __typename?: 'ccv_validator_max_fields'; + consumer_consensus_address?: Maybe; + consumer_operator_address?: Maybe; + consumer_self_delegate_address?: Maybe; + height?: Maybe; + provider_consensus_address?: Maybe; + provider_operator_address?: Maybe; + provider_self_delegate_address?: Maybe; +}; + +/** aggregate min on columns */ +export type Ccv_Validator_Min_Fields = { + __typename?: 'ccv_validator_min_fields'; + consumer_consensus_address?: Maybe; + consumer_operator_address?: Maybe; + consumer_self_delegate_address?: Maybe; + height?: Maybe; + provider_consensus_address?: Maybe; + provider_operator_address?: Maybe; + provider_self_delegate_address?: Maybe; +}; + +/** Ordering options when selecting data from "ccv_validator". */ +export type Ccv_Validator_Order_By = { + consumer_consensus_address?: InputMaybe; + consumer_operator_address?: InputMaybe; + consumer_self_delegate_address?: InputMaybe; + height?: InputMaybe; + provider_consensus_address?: InputMaybe; + provider_operator_address?: InputMaybe; + provider_self_delegate_address?: InputMaybe; + validator?: InputMaybe; + validator_info?: InputMaybe; +}; + +/** select columns of table "ccv_validator" */ +export enum Ccv_Validator_Select_Column { + /** column name */ + ConsumerConsensusAddress = 'consumer_consensus_address', + /** column name */ + ConsumerOperatorAddress = 'consumer_operator_address', + /** column name */ + ConsumerSelfDelegateAddress = 'consumer_self_delegate_address', + /** column name */ + Height = 'height', + /** column name */ + ProviderConsensusAddress = 'provider_consensus_address', + /** column name */ + ProviderOperatorAddress = 'provider_operator_address', + /** column name */ + ProviderSelfDelegateAddress = 'provider_self_delegate_address' +} + +/** aggregate stddev on columns */ +export type Ccv_Validator_Stddev_Fields = { + __typename?: 'ccv_validator_stddev_fields'; + height?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Ccv_Validator_Stddev_Pop_Fields = { + __typename?: 'ccv_validator_stddev_pop_fields'; + height?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Ccv_Validator_Stddev_Samp_Fields = { + __typename?: 'ccv_validator_stddev_samp_fields'; + height?: Maybe; +}; + +/** Streaming cursor of the table "ccv_validator" */ +export type Ccv_Validator_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Ccv_Validator_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Ccv_Validator_Stream_Cursor_Value_Input = { + consumer_consensus_address?: InputMaybe; + consumer_operator_address?: InputMaybe; + consumer_self_delegate_address?: InputMaybe; + height?: InputMaybe; + provider_consensus_address?: InputMaybe; + provider_operator_address?: InputMaybe; + provider_self_delegate_address?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Ccv_Validator_Sum_Fields = { + __typename?: 'ccv_validator_sum_fields'; + height?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Ccv_Validator_Var_Pop_Fields = { + __typename?: 'ccv_validator_var_pop_fields'; + height?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Ccv_Validator_Var_Samp_Fields = { + __typename?: 'ccv_validator_var_samp_fields'; + height?: Maybe; +}; + +/** aggregate variance on columns */ +export type Ccv_Validator_Variance_Fields = { + __typename?: 'ccv_validator_variance_fields'; + height?: Maybe; +}; + +/** columns and relationships of "community_pool" */ +export type Community_Pool = { + __typename?: 'community_pool'; + coins: Scalars['_dec_coin']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "community_pool". All fields are combined with a logical 'AND'. */ +export type Community_Pool_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + coins?: InputMaybe<_Dec_Coin_Comparison_Exp>; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "community_pool". */ +export type Community_Pool_Order_By = { + coins?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "community_pool" */ +export enum Community_Pool_Select_Column { + /** column name */ + Coins = 'coins', + /** column name */ + Height = 'height' +} + +/** Streaming cursor of the table "community_pool" */ +export type Community_Pool_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Community_Pool_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Community_Pool_Stream_Cursor_Value_Input = { + coins?: InputMaybe; + height?: InputMaybe; +}; + +/** ordering argument of a cursor */ +export enum Cursor_Ordering { + /** ascending ordering of the cursor */ + Asc = 'ASC', + /** descending ordering of the cursor */ + Desc = 'DESC' +} + +/** columns and relationships of "distribution_params" */ +export type Distribution_Params = { + __typename?: 'distribution_params'; + height: Scalars['bigint']; + params: Scalars['jsonb']; +}; + + +/** columns and relationships of "distribution_params" */ +export type Distribution_ParamsParamsArgs = { + path?: InputMaybe; +}; + +/** 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?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + params?: InputMaybe; +}; + +/** Ordering options when selecting data from "distribution_params". */ +export type Distribution_Params_Order_By = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** select columns of table "distribution_params" */ +export enum Distribution_Params_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Params = 'params' +} + +/** Streaming cursor of the table "distribution_params" */ +export type Distribution_Params_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Distribution_Params_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Distribution_Params_Stream_Cursor_Value_Input = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** columns and relationships of "double_sign_evidence" */ +export type Double_Sign_Evidence = { + __typename?: 'double_sign_evidence'; + /** An object relationship */ + doubleSignVoteByVoteAId: Double_Sign_Vote; + /** An object relationship */ + double_sign_vote: Double_Sign_Vote; + height: Scalars['bigint']; + vote_a_id: Scalars['bigint']; + vote_b_id: Scalars['bigint']; +}; + +/** order by aggregate values of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Avg_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "double_sign_evidence". All fields are combined with a logical 'AND'. */ +export type Double_Sign_Evidence_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by max() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Max_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by min() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Min_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** Ordering options when selecting data from "double_sign_evidence". */ +export type Double_Sign_Evidence_Order_By = { + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** select columns of table "double_sign_evidence" */ +export enum Double_Sign_Evidence_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + VoteAId = 'vote_a_id', + /** column name */ + VoteBId = 'vote_b_id' +} + +/** order by stddev() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Stddev_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Stddev_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Stddev_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** Streaming cursor of the table "double_sign_evidence" */ +export type Double_Sign_Evidence_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Double_Sign_Evidence_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Double_Sign_Evidence_Stream_Cursor_Value_Input = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by sum() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Sum_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Var_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Var_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by variance() on columns of table "double_sign_evidence" */ +export type Double_Sign_Evidence_Variance_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** columns and relationships of "double_sign_vote" */ +export type Double_Sign_Vote = { + __typename?: 'double_sign_vote'; + block_id: Scalars['String']; + /** An array relationship */ + doubleSignEvidencesByVoteBId: Array; + /** An array relationship */ + double_sign_evidences: Array; + height: Scalars['bigint']; + round: Scalars['Int']; + signature: Scalars['String']; + type: Scalars['smallint']; + /** An object relationship */ + validator: Validator; + validator_address: Scalars['String']; + validator_index: Scalars['Int']; +}; + + +/** columns and relationships of "double_sign_vote" */ +export type Double_Sign_VoteDoubleSignEvidencesByVoteBIdArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "double_sign_vote" */ +export type Double_Sign_VoteDouble_Sign_EvidencesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "double_sign_vote" */ +export type Double_Sign_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Avg_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "double_sign_vote". All fields are combined with a logical 'AND'. */ +export type Double_Sign_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId?: InputMaybe; + double_sign_evidences?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by max() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Max_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by min() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Min_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** Ordering options when selecting data from "double_sign_vote". */ +export type Double_Sign_Vote_Order_By = { + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId_aggregate?: InputMaybe; + double_sign_evidences_aggregate?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** select columns of table "double_sign_vote" */ +export enum Double_Sign_Vote_Select_Column { + /** column name */ + BlockId = 'block_id', + /** column name */ + Height = 'height', + /** column name */ + Round = 'round', + /** column name */ + Signature = 'signature', + /** column name */ + Type = 'type', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + ValidatorIndex = 'validator_index' +} + +/** order by stddev() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Stddev_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** Streaming cursor of the table "double_sign_vote" */ +export type Double_Sign_Vote_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Double_Sign_Vote_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Double_Sign_Vote_Stream_Cursor_Value_Input = { + block_id?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by sum() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Sum_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by var_pop() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by var_samp() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by variance() on columns of table "double_sign_vote" */ +export type Double_Sign_Vote_Variance_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** columns and relationships of "fee_grant_allowance" */ +export type Fee_Grant_Allowance = { + __typename?: 'fee_grant_allowance'; + allowance: Scalars['jsonb']; + /** An object relationship */ + grantee: Account; + grantee_address: Scalars['String']; + /** An object relationship */ + granter: Account; + granter_address: Scalars['String']; + height: Scalars['bigint']; +}; + + +/** columns and relationships of "fee_grant_allowance" */ +export type Fee_Grant_AllowanceAllowanceArgs = { + path?: InputMaybe; +}; + +/** order by aggregate values of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Avg_Order_By = { + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "fee_grant_allowance". All fields are combined with a logical 'AND'. */ +export type Fee_Grant_Allowance_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + allowance?: InputMaybe; + grantee?: InputMaybe; + grantee_address?: InputMaybe; + granter?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** order by max() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Max_Order_By = { + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** order by min() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Min_Order_By = { + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "fee_grant_allowance". */ +export type Fee_Grant_Allowance_Order_By = { + allowance?: InputMaybe; + grantee?: InputMaybe; + grantee_address?: InputMaybe; + granter?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "fee_grant_allowance" */ +export enum Fee_Grant_Allowance_Select_Column { + /** column name */ + Allowance = 'allowance', + /** column name */ + GranteeAddress = 'grantee_address', + /** column name */ + GranterAddress = 'granter_address', + /** column name */ + Height = 'height' +} + +/** order by stddev() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stddev_Order_By = { + height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stddev_Pop_Order_By = { + height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stddev_Samp_Order_By = { + height?: InputMaybe; +}; + +/** Streaming cursor of the table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Fee_Grant_Allowance_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Fee_Grant_Allowance_Stream_Cursor_Value_Input = { + allowance?: InputMaybe; + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** order by sum() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Sum_Order_By = { + height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Var_Pop_Order_By = { + height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Var_Samp_Order_By = { + height?: InputMaybe; +}; + +/** order by variance() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Variance_Order_By = { + height?: InputMaybe; +}; + +/** columns and relationships of "genesis" */ +export type Genesis = { + __typename?: 'genesis'; + chain_id: Scalars['String']; + initial_height: Scalars['bigint']; + time: Scalars['timestamp']; +}; + +/** Boolean expression to filter rows from the table "genesis". All fields are combined with a logical 'AND'. */ +export type Genesis_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +/** Ordering options when selecting data from "genesis". */ +export type Genesis_Order_By = { + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +/** select columns of table "genesis" */ +export enum Genesis_Select_Column { + /** column name */ + ChainId = 'chain_id', + /** column name */ + InitialHeight = 'initial_height', + /** column name */ + Time = 'time' +} + +/** Streaming cursor of the table "genesis" */ +export type Genesis_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Genesis_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Genesis_Stream_Cursor_Value_Input = { + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +/** columns and relationships of "gov_params" */ +export type Gov_Params = { + __typename?: 'gov_params'; + deposit_params: Scalars['jsonb']; + height: Scalars['bigint']; + tally_params: Scalars['jsonb']; + voting_params: Scalars['jsonb']; +}; + + +/** columns and relationships of "gov_params" */ +export type Gov_ParamsDeposit_ParamsArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "gov_params" */ +export type Gov_ParamsTally_ParamsArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "gov_params" */ +export type Gov_ParamsVoting_ParamsArgs = { + path?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "gov_params". All fields are combined with a logical 'AND'. */ +export type Gov_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + deposit_params?: InputMaybe; + height?: InputMaybe; + tally_params?: InputMaybe; + voting_params?: InputMaybe; +}; + +/** Ordering options when selecting data from "gov_params". */ +export type Gov_Params_Order_By = { + deposit_params?: InputMaybe; + height?: InputMaybe; + tally_params?: InputMaybe; + voting_params?: InputMaybe; +}; + +/** select columns of table "gov_params" */ +export enum Gov_Params_Select_Column { + /** column name */ + DepositParams = 'deposit_params', + /** column name */ + Height = 'height', + /** column name */ + TallyParams = 'tally_params', + /** column name */ + VotingParams = 'voting_params' +} + +/** Streaming cursor of the table "gov_params" */ +export type Gov_Params_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Gov_Params_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Gov_Params_Stream_Cursor_Value_Input = { + deposit_params?: InputMaybe; + height?: InputMaybe; + tally_params?: InputMaybe; + voting_params?: InputMaybe; +}; + +/** columns and relationships of "inflation" */ +export type Inflation = { + __typename?: 'inflation'; + height: Scalars['bigint']; + one_row_id: Scalars['Boolean']; + value: Scalars['numeric']; +}; + +/** aggregated selection of "inflation" */ +export type Inflation_Aggregate = { + __typename?: 'inflation_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "inflation" */ +export type Inflation_Aggregate_Fields = { + __typename?: 'inflation_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 "inflation" */ +export type Inflation_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Inflation_Avg_Fields = { + __typename?: 'inflation_avg_fields'; + height?: Maybe; + value?: Maybe; +}; + +/** Boolean expression to filter rows from the table "inflation". All fields are combined with a logical 'AND'. */ +export type Inflation_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + value?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Inflation_Max_Fields = { + __typename?: 'inflation_max_fields'; + height?: Maybe; + value?: Maybe; +}; + +/** aggregate min on columns */ +export type Inflation_Min_Fields = { + __typename?: 'inflation_min_fields'; + height?: Maybe; + value?: Maybe; +}; + +/** Ordering options when selecting data from "inflation". */ +export type Inflation_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + value?: InputMaybe; +}; + +/** select columns of table "inflation" */ +export enum Inflation_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + OneRowId = 'one_row_id', + /** column name */ + Value = 'value' +} + +/** aggregate stddev on columns */ +export type Inflation_Stddev_Fields = { + __typename?: 'inflation_stddev_fields'; + height?: Maybe; + value?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Inflation_Stddev_Pop_Fields = { + __typename?: 'inflation_stddev_pop_fields'; + height?: Maybe; + value?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Inflation_Stddev_Samp_Fields = { + __typename?: 'inflation_stddev_samp_fields'; + height?: Maybe; + value?: Maybe; +}; + +/** Streaming cursor of the table "inflation" */ +export type Inflation_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Inflation_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Inflation_Stream_Cursor_Value_Input = { + height?: InputMaybe; + one_row_id?: InputMaybe; + value?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Inflation_Sum_Fields = { + __typename?: 'inflation_sum_fields'; + height?: Maybe; + value?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Inflation_Var_Pop_Fields = { + __typename?: 'inflation_var_pop_fields'; + height?: Maybe; + value?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Inflation_Var_Samp_Fields = { + __typename?: 'inflation_var_samp_fields'; + height?: Maybe; + value?: Maybe; +}; + +/** aggregate variance on columns */ +export type Inflation_Variance_Fields = { + __typename?: 'inflation_variance_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Jsonb_Cast_Exp = { + String?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. */ +export type Jsonb_Comparison_Exp = { + _cast?: InputMaybe; + /** is the column contained in the given json value */ + _contained_in?: InputMaybe; + /** does the column contain the given json value at the top level */ + _contains?: InputMaybe; + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + /** does the string exist as a top-level key in the column */ + _has_key?: InputMaybe; + /** do all of these strings exist as top-level keys in the column */ + _has_keys_all?: InputMaybe>; + /** do any of these strings exist as top-level keys in the column */ + _has_keys_any?: InputMaybe>; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "message" */ +export type Message = { + __typename?: 'message'; + height: Scalars['bigint']; + index: Scalars['bigint']; + involved_accounts_addresses: Scalars['_text']; + /** An object relationship */ + transaction?: Maybe; + /** An object relationship */ + transactionByPartitionIdTransactionHash?: Maybe; + transaction_hash: Scalars['String']; + type: Scalars['String']; + value: Scalars['jsonb']; +}; + + +/** columns and relationships of "message" */ +export type MessageValueArgs = { + path?: InputMaybe; +}; + +/** order by aggregate values of table "message" */ +export type Message_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "message" */ +export type Message_Avg_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "message". All fields are combined with a logical 'AND'. */ +export type Message_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe<_Text_Comparison_Exp>; + transaction?: InputMaybe; + transactionByPartitionIdTransactionHash?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +/** order by max() on columns of table "message" */ +export type Message_Max_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; +}; + +/** order by min() on columns of table "message" */ +export type Message_Min_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; +}; + +/** Ordering options when selecting data from "message". */ +export type Message_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe; + transaction?: InputMaybe; + transactionByPartitionIdTransactionHash?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +/** select columns of table "message" */ +export enum Message_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Index = 'index', + /** column name */ + InvolvedAccountsAddresses = 'involved_accounts_addresses', + /** column name */ + TransactionHash = 'transaction_hash', + /** column name */ + Type = 'type', + /** column name */ + Value = 'value' +} + +/** order by stddev() on columns of table "message" */ +export type Message_Stddev_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "message" */ +export type Message_Stddev_Pop_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "message" */ +export type Message_Stddev_Samp_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** Streaming cursor of the table "message" */ +export type Message_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Message_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Message_Stream_Cursor_Value_Input = { + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +/** order by sum() on columns of table "message" */ +export type Message_Sum_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by var_pop() on columns of table "message" */ +export type Message_Var_Pop_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by var_samp() on columns of table "message" */ +export type Message_Var_Samp_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by variance() on columns of table "message" */ +export type Message_Variance_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +export type Messages_By_Address_Args = { + addresses?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; + types?: InputMaybe; +}; + +export type Messages_By_Single_Address_Args = { + address?: InputMaybe; + apikey?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; + types?: InputMaybe; +}; + +/** columns and relationships of "mint_params" */ +export type Mint_Params = { + __typename?: 'mint_params'; + height: Scalars['bigint']; + params: Scalars['jsonb']; +}; + + +/** columns and relationships of "mint_params" */ +export type Mint_ParamsParamsArgs = { + path?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "mint_params". All fields are combined with a logical 'AND'. */ +export type Mint_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + params?: InputMaybe; +}; + +/** Ordering options when selecting data from "mint_params". */ +export type Mint_Params_Order_By = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** select columns of table "mint_params" */ +export enum Mint_Params_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Params = 'params' +} + +/** Streaming cursor of the table "mint_params" */ +export type Mint_Params_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Mint_Params_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Mint_Params_Stream_Cursor_Value_Input = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** columns and relationships of "modules" */ +export type Modules = { + __typename?: 'modules'; + module_name: Scalars['String']; +}; + +/** Boolean expression to filter rows from the table "modules". All fields are combined with a logical 'AND'. */ +export type Modules_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + module_name?: InputMaybe; +}; + +/** Ordering options when selecting data from "modules". */ +export type Modules_Order_By = { + module_name?: InputMaybe; +}; + +/** select columns of table "modules" */ +export enum Modules_Select_Column { + /** column name */ + ModuleName = 'module_name' +} + +/** Streaming cursor of the table "modules" */ +export type Modules_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Modules_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Modules_Stream_Cursor_Value_Input = { + module_name?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "numeric". All fields are combined with logical 'AND'. */ +export type Numeric_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** column ordering options */ +export enum Order_By { + /** in ascending order, nulls last */ + Asc = 'asc', + /** in ascending order, nulls first */ + AscNullsFirst = 'asc_nulls_first', + /** in ascending order, nulls last */ + AscNullsLast = 'asc_nulls_last', + /** in descending order, nulls first */ + Desc = 'desc', + /** in descending order, nulls first */ + DescNullsFirst = 'desc_nulls_first', + /** in descending order, nulls last */ + DescNullsLast = 'desc_nulls_last' +} + +/** columns and relationships of "pre_commit" */ +export type Pre_Commit = { + __typename?: 'pre_commit'; + height: Scalars['bigint']; + proposer_priority: Scalars['bigint']; + timestamp: Scalars['timestamp']; + /** An object relationship */ + validator: Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** aggregated selection of "pre_commit" */ +export type Pre_Commit_Aggregate = { + __typename?: 'pre_commit_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Pre_Commit_Aggregate_Bool_Exp = { + count?: InputMaybe; +}; + +export type Pre_Commit_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + +/** aggregate fields of "pre_commit" */ +export type Pre_Commit_Aggregate_Fields = { + __typename?: 'pre_commit_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 "pre_commit" */ +export type Pre_Commit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "pre_commit" */ +export type Pre_Commit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Pre_Commit_Avg_Fields = { + __typename?: 'pre_commit_avg_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by avg() on columns of table "pre_commit" */ +export type Pre_Commit_Avg_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "pre_commit". All fields are combined with a logical 'AND'. */ +export type Pre_Commit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Pre_Commit_Max_Fields = { + __typename?: 'pre_commit_max_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by max() on columns of table "pre_commit" */ +export type Pre_Commit_Max_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Pre_Commit_Min_Fields = { + __typename?: 'pre_commit_min_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by min() on columns of table "pre_commit" */ +export type Pre_Commit_Min_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "pre_commit". */ +export type Pre_Commit_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "pre_commit" */ +export enum Pre_Commit_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + ProposerPriority = 'proposer_priority', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** aggregate stddev on columns */ +export type Pre_Commit_Stddev_Fields = { + __typename?: 'pre_commit_stddev_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev() on columns of table "pre_commit" */ +export type Pre_Commit_Stddev_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Pre_Commit_Stddev_Pop_Fields = { + __typename?: 'pre_commit_stddev_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_pop() on columns of table "pre_commit" */ +export type Pre_Commit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Pre_Commit_Stddev_Samp_Fields = { + __typename?: 'pre_commit_stddev_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_samp() on columns of table "pre_commit" */ +export type Pre_Commit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Streaming cursor of the table "pre_commit" */ +export type Pre_Commit_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Pre_Commit_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Pre_Commit_Stream_Cursor_Value_Input = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Pre_Commit_Sum_Fields = { + __typename?: 'pre_commit_sum_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by sum() on columns of table "pre_commit" */ +export type Pre_Commit_Sum_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Pre_Commit_Var_Pop_Fields = { + __typename?: 'pre_commit_var_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_pop() on columns of table "pre_commit" */ +export type Pre_Commit_Var_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Pre_Commit_Var_Samp_Fields = { + __typename?: 'pre_commit_var_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_samp() on columns of table "pre_commit" */ +export type Pre_Commit_Var_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Pre_Commit_Variance_Fields = { + __typename?: 'pre_commit_variance_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by variance() on columns of table "pre_commit" */ +export type Pre_Commit_Variance_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** columns and relationships of "proposal" */ +export type Proposal = { + __typename?: 'proposal'; + content: Scalars['jsonb']; + deposit_end_time?: Maybe; + description: Scalars['String']; + id: Scalars['Int']; + /** An array relationship */ + proposal_deposits: Array; + proposal_route: Scalars['String']; + /** An object relationship */ + proposal_tally_result?: Maybe; + /** An array relationship */ + proposal_tally_results: Array; + proposal_type: Scalars['String']; + /** An array relationship */ + proposal_votes: Array; + /** An object relationship */ + proposer: Account; + proposer_address: Scalars['String']; + /** An object relationship */ + staking_pool_snapshot?: Maybe; + status?: Maybe; + submit_time: Scalars['timestamp']; + title: Scalars['String']; + /** An array relationship */ + validator_status_snapshots: Array; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + + +/** columns and relationships of "proposal" */ +export type ProposalContentArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type ProposalProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type ProposalProposal_Tally_ResultsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type ProposalProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type ProposalValidator_Status_SnapshotsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** aggregated selection of "proposal" */ +export type Proposal_Aggregate = { + __typename?: 'proposal_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Proposal_Aggregate_Bool_Exp = { + count?: InputMaybe; +}; + +export type Proposal_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + +/** aggregate fields of "proposal" */ +export type Proposal_Aggregate_Fields = { + __typename?: 'proposal_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 "proposal" */ +export type Proposal_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "proposal" */ +export type Proposal_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Proposal_Avg_Fields = { + __typename?: 'proposal_avg_fields'; + id?: Maybe; +}; + +/** order by avg() on columns of table "proposal" */ +export type Proposal_Avg_Order_By = { + id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal". All fields are combined with a logical 'AND'. */ +export type Proposal_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** columns and relationships of "proposal_deposit" */ +export type Proposal_Deposit = { + __typename?: 'proposal_deposit'; + amount?: Maybe; + /** An object relationship */ + block?: Maybe; + /** An object relationship */ + depositor?: Maybe; + depositor_address?: Maybe; + height: Scalars['bigint']; + /** An object relationship */ + proposal: Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; +}; + +/** order by aggregate values of table "proposal_deposit" */ +export type Proposal_Deposit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_deposit". All fields are combined with a logical 'AND'. */ +export type Proposal_Deposit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe<_Coin_Comparison_Exp>; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Max_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Min_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_deposit". */ +export type Proposal_Deposit_Order_By = { + amount?: InputMaybe; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** select columns of table "proposal_deposit" */ +export enum Proposal_Deposit_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + DepositorAddress = 'depositor_address', + /** column name */ + Height = 'height', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Timestamp = 'timestamp' +} + +/** order by stddev() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_deposit" */ +export type Proposal_Deposit_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Proposal_Deposit_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Proposal_Deposit_Stream_Cursor_Value_Input = { + amount?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_deposit" */ +export type Proposal_Deposit_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Proposal_Max_Fields = { + __typename?: 'proposal_max_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +/** order by max() on columns of table "proposal" */ +export type Proposal_Max_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Proposal_Min_Fields = { + __typename?: 'proposal_min_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +/** order by min() on columns of table "proposal" */ +export type Proposal_Min_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal". */ +export type Proposal_Order_By = { + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results_aggregate?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots_aggregate?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** select columns of table "proposal" */ +export enum Proposal_Select_Column { + /** column name */ + Content = 'content', + /** column name */ + DepositEndTime = 'deposit_end_time', + /** column name */ + Description = 'description', + /** column name */ + Id = 'id', + /** column name */ + ProposalRoute = 'proposal_route', + /** column name */ + ProposalType = 'proposal_type', + /** column name */ + ProposerAddress = 'proposer_address', + /** column name */ + Status = 'status', + /** column name */ + SubmitTime = 'submit_time', + /** column name */ + Title = 'title', + /** column name */ + VotingEndTime = 'voting_end_time', + /** column name */ + VotingStartTime = 'voting_start_time' +} + +/** columns and relationships of "proposal_staking_pool_snapshot" */ +export type Proposal_Staking_Pool_Snapshot = { + __typename?: 'proposal_staking_pool_snapshot'; + bonded_tokens: Scalars['String']; + height: Scalars['bigint']; + not_bonded_tokens: Scalars['String']; + /** An object relationship */ + proposal: Proposal; + proposal_id: Scalars['Int']; +}; + +/** Boolean expression to filter rows from the table "proposal_staking_pool_snapshot". All fields are combined with a logical 'AND'. */ +export type Proposal_Staking_Pool_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_staking_pool_snapshot". */ +export type Proposal_Staking_Pool_Snapshot_Order_By = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** select columns of table "proposal_staking_pool_snapshot" */ +export enum Proposal_Staking_Pool_Snapshot_Select_Column { + /** column name */ + BondedTokens = 'bonded_tokens', + /** column name */ + Height = 'height', + /** column name */ + NotBondedTokens = 'not_bonded_tokens', + /** column name */ + ProposalId = 'proposal_id' +} + +/** Streaming cursor of the table "proposal_staking_pool_snapshot" */ +export type Proposal_Staking_Pool_Snapshot_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Proposal_Staking_Pool_Snapshot_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Proposal_Staking_Pool_Snapshot_Stream_Cursor_Value_Input = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** aggregate stddev on columns */ +export type Proposal_Stddev_Fields = { + __typename?: 'proposal_stddev_fields'; + id?: Maybe; +}; + +/** order by stddev() on columns of table "proposal" */ +export type Proposal_Stddev_Order_By = { + id?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Proposal_Stddev_Pop_Fields = { + __typename?: 'proposal_stddev_pop_fields'; + id?: Maybe; +}; + +/** order by stddev_pop() on columns of table "proposal" */ +export type Proposal_Stddev_Pop_Order_By = { + id?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Proposal_Stddev_Samp_Fields = { + __typename?: 'proposal_stddev_samp_fields'; + id?: Maybe; +}; + +/** order by stddev_samp() on columns of table "proposal" */ +export type Proposal_Stddev_Samp_Order_By = { + id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal" */ +export type Proposal_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Proposal_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Proposal_Stream_Cursor_Value_Input = { + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Proposal_Sum_Fields = { + __typename?: 'proposal_sum_fields'; + id?: Maybe; +}; + +/** order by sum() on columns of table "proposal" */ +export type Proposal_Sum_Order_By = { + id?: InputMaybe; +}; + +/** columns and relationships of "proposal_tally_result" */ +export type Proposal_Tally_Result = { + __typename?: 'proposal_tally_result'; + abstain: Scalars['String']; + height: Scalars['bigint']; + no: Scalars['String']; + no_with_veto: Scalars['String']; + /** An object relationship */ + proposal: Proposal; + proposal_id: Scalars['Int']; + yes: Scalars['String']; +}; + +/** order by aggregate values of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_tally_result". All fields are combined with a logical 'AND'. */ +export type Proposal_Tally_Result_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Max_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Min_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_tally_result". */ +export type Proposal_Tally_Result_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** select columns of table "proposal_tally_result" */ +export enum Proposal_Tally_Result_Select_Column { + /** column name */ + Abstain = 'abstain', + /** column name */ + Height = 'height', + /** column name */ + No = 'no', + /** column name */ + NoWithVeto = 'no_with_veto', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Yes = 'yes' +} + +/** order by stddev() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_tally_result" */ +export type Proposal_Tally_Result_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Proposal_Tally_Result_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Proposal_Tally_Result_Stream_Cursor_Value_Input = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_tally_result" */ +export type Proposal_Tally_Result_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** columns and relationships of "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot = { + __typename?: 'proposal_validator_status_snapshot'; + height: Scalars['bigint']; + jailed: Scalars['Boolean']; + /** An object relationship */ + proposal?: Maybe; + proposal_id?: Maybe; + status: Scalars['Int']; + /** An object relationship */ + validator: Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** order by aggregate values of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_validator_status_snapshot". All fields are combined with a logical 'AND'. */ +export type Proposal_Validator_Status_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Max_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Min_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_validator_status_snapshot". */ +export type Proposal_Validator_Status_Snapshot_Order_By = { + height?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "proposal_validator_status_snapshot" */ +export enum Proposal_Validator_Status_Snapshot_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Jailed = 'jailed', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Status = 'status', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** order by stddev() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Proposal_Validator_Status_Snapshot_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Proposal_Validator_Status_Snapshot_Stream_Cursor_Value_Input = { + height?: InputMaybe; + jailed?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_validator_status_snapshot" */ +export type Proposal_Validator_Status_Snapshot_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Proposal_Var_Pop_Fields = { + __typename?: 'proposal_var_pop_fields'; + id?: Maybe; +}; + +/** order by var_pop() on columns of table "proposal" */ +export type Proposal_Var_Pop_Order_By = { + id?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Proposal_Var_Samp_Fields = { + __typename?: 'proposal_var_samp_fields'; + id?: Maybe; +}; + +/** order by var_samp() on columns of table "proposal" */ +export type Proposal_Var_Samp_Order_By = { + id?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Proposal_Variance_Fields = { + __typename?: 'proposal_variance_fields'; + id?: Maybe; +}; + +/** order by variance() on columns of table "proposal" */ +export type Proposal_Variance_Order_By = { + id?: InputMaybe; +}; + +/** columns and relationships of "proposal_vote" */ +export type Proposal_Vote = { + __typename?: 'proposal_vote'; + /** An object relationship */ + account: Account; + /** An object relationship */ + block?: Maybe; + height: Scalars['bigint']; + option: Scalars['String']; + /** An object relationship */ + proposal: Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; + voter_address: Scalars['String']; +}; + +/** order by aggregate values of table "proposal_vote" */ +export type Proposal_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_vote" */ +export type Proposal_Vote_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_vote". All fields are combined with a logical 'AND'. */ +export type Proposal_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_vote" */ +export type Proposal_Vote_Max_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_vote" */ +export type Proposal_Vote_Min_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_vote". */ +export type Proposal_Vote_Order_By = { + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** select columns of table "proposal_vote" */ +export enum Proposal_Vote_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Option = 'option', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + VoterAddress = 'voter_address' +} + +/** order by stddev() on columns of table "proposal_vote" */ +export type Proposal_Vote_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_vote" */ +export type Proposal_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_vote" */ +export type Proposal_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_vote" */ +export type Proposal_Vote_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Proposal_Vote_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Proposal_Vote_Stream_Cursor_Value_Input = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_vote" */ +export type Proposal_Vote_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_vote" */ +export type Proposal_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_vote" */ +export type Proposal_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_vote" */ +export type Proposal_Vote_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** columns and relationships of "account" */ +export type Provider_Account = { + __typename?: 'provider_account'; + address: Scalars['String']; + /** An array relationship */ + proposal_deposits: Array; + /** An array relationship */ + proposal_votes: Array; + /** An array relationship */ + proposals: Array; + /** An aggregate relationship */ + proposals_aggregate: Provider_Proposal_Aggregate; + /** An array relationship */ + validator_infos: Array; + /** An object relationship */ + vesting_account?: Maybe; + /** An array relationship */ + vesting_accounts: Array; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountProposalsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountProposals_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountValidator_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountVesting_AccountsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "account". All fields are combined with a logical 'AND'. */ +export type Provider_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + address?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposals?: InputMaybe; + proposals_aggregate?: InputMaybe; + validator_infos?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts?: InputMaybe; +}; + +/** Ordering options when selecting data from "account". */ +export type Provider_Account_Order_By = { + address?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposals_aggregate?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts_aggregate?: InputMaybe; +}; + +/** select columns of table "account" */ +export enum Provider_Account_Select_Column { + /** column name */ + Address = 'address' +} + +/** Streaming cursor of the table "account" */ +export type Provider_Account_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Account_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Account_Stream_Cursor_Value_Input = { + address?: InputMaybe; +}; + +/** columns and relationships of "block" */ +export type Provider_Block = { + __typename?: 'provider_block'; + hash: Scalars['String']; + height: Scalars['bigint']; + num_txs?: Maybe; + /** An array relationship */ + pre_commits: Array; + /** An aggregate relationship */ + pre_commits_aggregate: Provider_Pre_Commit_Aggregate; + /** An array relationship */ + proposal_deposits: Array; + /** An array relationship */ + proposal_votes: Array; + proposer_address?: Maybe; + timestamp: Scalars['timestamp']; + total_gas?: Maybe; + /** An array relationship */ + transactions: Array; + /** An object relationship */ + validator?: Maybe; + /** An array relationship */ + validator_voting_powers: Array; + /** An aggregate relationship */ + validator_voting_powers_aggregate: Provider_Validator_Voting_Power_Aggregate; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockTransactionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "block" */ +export type Provider_Block_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "block" */ +export type Provider_Block_Avg_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "block". All fields are combined with a logical 'AND'. */ +export type Provider_Block_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** order by max() on columns of table "block" */ +export type Provider_Block_Max_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by min() on columns of table "block" */ +export type Provider_Block_Min_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Ordering options when selecting data from "block". */ +export type Provider_Block_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions_aggregate?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** select columns of table "block" */ +export enum Provider_Block_Select_Column { + /** column name */ + Hash = 'hash', + /** column name */ + Height = 'height', + /** column name */ + NumTxs = 'num_txs', + /** column name */ + ProposerAddress = 'proposer_address', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + TotalGas = 'total_gas' +} + +/** order by stddev() on columns of table "block" */ +export type Provider_Block_Stddev_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "block" */ +export type Provider_Block_Stddev_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "block" */ +export type Provider_Block_Stddev_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Streaming cursor of the table "block" */ +export type Provider_Block_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Block_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Block_Stream_Cursor_Value_Input = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by sum() on columns of table "block" */ +export type Provider_Block_Sum_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by var_pop() on columns of table "block" */ +export type Provider_Block_Var_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by var_samp() on columns of table "block" */ +export type Provider_Block_Var_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by variance() on columns of table "block" */ +export type Provider_Block_Variance_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** ordering argument of a cursor */ +export enum Provider_Cursor_Ordering { + /** ascending ordering of the cursor */ + Asc = 'ASC', + /** descending ordering of the cursor */ + Desc = 'DESC' +} + +/** columns and relationships of "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence = { + __typename?: 'provider_double_sign_evidence'; + /** An object relationship */ + doubleSignVoteByVoteAId: Provider_Double_Sign_Vote; + /** An object relationship */ + double_sign_vote: Provider_Double_Sign_Vote; + height: Scalars['bigint']; + vote_a_id: Scalars['bigint']; + vote_b_id: Scalars['bigint']; +}; + +/** order by aggregate values of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Avg_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "double_sign_evidence". All fields are combined with a logical 'AND'. */ +export type Provider_Double_Sign_Evidence_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by max() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Max_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by min() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Min_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** Ordering options when selecting data from "double_sign_evidence". */ +export type Provider_Double_Sign_Evidence_Order_By = { + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** select columns of table "double_sign_evidence" */ +export enum Provider_Double_Sign_Evidence_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + VoteAId = 'vote_a_id', + /** column name */ + VoteBId = 'vote_b_id' +} + +/** order by stddev() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Stddev_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Stddev_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Stddev_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** Streaming cursor of the table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Double_Sign_Evidence_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Double_Sign_Evidence_Stream_Cursor_Value_Input = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by sum() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Sum_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Var_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Var_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by variance() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Variance_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** columns and relationships of "double_sign_vote" */ +export type Provider_Double_Sign_Vote = { + __typename?: 'provider_double_sign_vote'; + block_id: Scalars['String']; + /** An array relationship */ + doubleSignEvidencesByVoteBId: Array; + /** An array relationship */ + double_sign_evidences: Array; + height: Scalars['bigint']; + round: Scalars['Int']; + signature: Scalars['String']; + type: Scalars['smallint']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; + validator_index: Scalars['Int']; +}; + + +/** columns and relationships of "double_sign_vote" */ +export type Provider_Double_Sign_VoteDoubleSignEvidencesByVoteBIdArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "double_sign_vote" */ +export type Provider_Double_Sign_VoteDouble_Sign_EvidencesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Avg_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "double_sign_vote". All fields are combined with a logical 'AND'. */ +export type Provider_Double_Sign_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId?: InputMaybe; + double_sign_evidences?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by max() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Max_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by min() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Min_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** Ordering options when selecting data from "double_sign_vote". */ +export type Provider_Double_Sign_Vote_Order_By = { + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId_aggregate?: InputMaybe; + double_sign_evidences_aggregate?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** select columns of table "double_sign_vote" */ +export enum Provider_Double_Sign_Vote_Select_Column { + /** column name */ + BlockId = 'block_id', + /** column name */ + Height = 'height', + /** column name */ + Round = 'round', + /** column name */ + Signature = 'signature', + /** column name */ + Type = 'type', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + ValidatorIndex = 'validator_index' +} + +/** order by stddev() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Stddev_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** Streaming cursor of the table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Double_Sign_Vote_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Double_Sign_Vote_Stream_Cursor_Value_Input = { + block_id?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by sum() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Sum_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by var_pop() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by var_samp() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by variance() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Variance_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** columns and relationships of "pre_commit" */ +export type Provider_Pre_Commit = { + __typename?: 'provider_pre_commit'; + height: Scalars['bigint']; + proposer_priority: Scalars['bigint']; + timestamp: Scalars['timestamp']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** aggregated selection of "pre_commit" */ +export type Provider_Pre_Commit_Aggregate = { + __typename?: 'provider_pre_commit_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "pre_commit" */ +export type Provider_Pre_Commit_Aggregate_Fields = { + __typename?: 'provider_pre_commit_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 "pre_commit" */ +export type Provider_Pre_Commit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "pre_commit" */ +export type Provider_Pre_Commit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Provider_Pre_Commit_Avg_Fields = { + __typename?: 'provider_pre_commit_avg_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by avg() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Avg_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "pre_commit". All fields are combined with a logical 'AND'. */ +export type Provider_Pre_Commit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Provider_Pre_Commit_Max_Fields = { + __typename?: 'provider_pre_commit_max_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by max() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Max_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Provider_Pre_Commit_Min_Fields = { + __typename?: 'provider_pre_commit_min_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by min() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Min_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "pre_commit". */ +export type Provider_Pre_Commit_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "pre_commit" */ +export enum Provider_Pre_Commit_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + ProposerPriority = 'proposer_priority', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** aggregate stddev on columns */ +export type Provider_Pre_Commit_Stddev_Fields = { + __typename?: 'provider_pre_commit_stddev_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Stddev_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Provider_Pre_Commit_Stddev_Pop_Fields = { + __typename?: 'provider_pre_commit_stddev_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_pop() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Provider_Pre_Commit_Stddev_Samp_Fields = { + __typename?: 'provider_pre_commit_stddev_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_samp() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Streaming cursor of the table "pre_commit" */ +export type Provider_Pre_Commit_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Pre_Commit_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Pre_Commit_Stream_Cursor_Value_Input = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Provider_Pre_Commit_Sum_Fields = { + __typename?: 'provider_pre_commit_sum_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by sum() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Sum_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Provider_Pre_Commit_Var_Pop_Fields = { + __typename?: 'provider_pre_commit_var_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_pop() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Var_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Provider_Pre_Commit_Var_Samp_Fields = { + __typename?: 'provider_pre_commit_var_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_samp() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Var_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Provider_Pre_Commit_Variance_Fields = { + __typename?: 'provider_pre_commit_variance_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by variance() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Variance_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** columns and relationships of "proposal" */ +export type Provider_Proposal = { + __typename?: 'provider_proposal'; + content: Scalars['jsonb']; + deposit_end_time?: Maybe; + description: Scalars['String']; + id: Scalars['Int']; + /** An array relationship */ + proposal_deposits: Array; + proposal_route: Scalars['String']; + /** An object relationship */ + proposal_tally_result?: Maybe; + /** An array relationship */ + proposal_tally_results: Array; + proposal_type: Scalars['String']; + /** An array relationship */ + proposal_votes: Array; + /** An object relationship */ + proposer: Provider_Account; + proposer_address: Scalars['String']; + /** An object relationship */ + staking_pool_snapshot?: Maybe; + status?: Maybe; + submit_time: Scalars['timestamp']; + title: Scalars['String']; + /** An array relationship */ + validator_status_snapshots: Array; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalContentArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalProposal_Tally_ResultsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalValidator_Status_SnapshotsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** aggregated selection of "proposal" */ +export type Provider_Proposal_Aggregate = { + __typename?: 'provider_proposal_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "proposal" */ +export type Provider_Proposal_Aggregate_Fields = { + __typename?: 'provider_proposal_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 "proposal" */ +export type Provider_Proposal_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "proposal" */ +export type Provider_Proposal_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Provider_Proposal_Avg_Fields = { + __typename?: 'provider_proposal_avg_fields'; + id?: Maybe; +}; + +/** order by avg() on columns of table "proposal" */ +export type Provider_Proposal_Avg_Order_By = { + id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** columns and relationships of "proposal_deposit" */ +export type Provider_Proposal_Deposit = { + __typename?: 'provider_proposal_deposit'; + amount?: Maybe; + /** An object relationship */ + block?: Maybe; + /** An object relationship */ + depositor?: Maybe; + depositor_address?: Maybe; + height: Scalars['bigint']; + /** An object relationship */ + proposal: Provider_Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; +}; + +/** order by aggregate values of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_deposit". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Deposit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe<_Coin_Comparison_Exp>; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Max_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Min_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_deposit". */ +export type Provider_Proposal_Deposit_Order_By = { + amount?: InputMaybe; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** select columns of table "proposal_deposit" */ +export enum Provider_Proposal_Deposit_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + DepositorAddress = 'depositor_address', + /** column name */ + Height = 'height', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Timestamp = 'timestamp' +} + +/** order by stddev() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Deposit_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Deposit_Stream_Cursor_Value_Input = { + amount?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Provider_Proposal_Max_Fields = { + __typename?: 'provider_proposal_max_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +/** order by max() on columns of table "proposal" */ +export type Provider_Proposal_Max_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Provider_Proposal_Min_Fields = { + __typename?: 'provider_proposal_min_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +/** order by min() on columns of table "proposal" */ +export type Provider_Proposal_Min_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal". */ +export type Provider_Proposal_Order_By = { + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results_aggregate?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots_aggregate?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** select columns of table "proposal" */ +export enum Provider_Proposal_Select_Column { + /** column name */ + Content = 'content', + /** column name */ + DepositEndTime = 'deposit_end_time', + /** column name */ + Description = 'description', + /** column name */ + Id = 'id', + /** column name */ + ProposalRoute = 'proposal_route', + /** column name */ + ProposalType = 'proposal_type', + /** column name */ + ProposerAddress = 'proposer_address', + /** column name */ + Status = 'status', + /** column name */ + SubmitTime = 'submit_time', + /** column name */ + Title = 'title', + /** column name */ + VotingEndTime = 'voting_end_time', + /** column name */ + VotingStartTime = 'voting_start_time' +} + +/** columns and relationships of "proposal_staking_pool_snapshot" */ +export type Provider_Proposal_Staking_Pool_Snapshot = { + __typename?: 'provider_proposal_staking_pool_snapshot'; + bonded_tokens: Scalars['String']; + height: Scalars['bigint']; + not_bonded_tokens: Scalars['String']; + /** An object relationship */ + proposal: Provider_Proposal; + proposal_id: Scalars['Int']; +}; + +/** Boolean expression to filter rows from the table "proposal_staking_pool_snapshot". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Staking_Pool_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_staking_pool_snapshot". */ +export type Provider_Proposal_Staking_Pool_Snapshot_Order_By = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** select columns of table "proposal_staking_pool_snapshot" */ +export enum Provider_Proposal_Staking_Pool_Snapshot_Select_Column { + /** column name */ + BondedTokens = 'bonded_tokens', + /** column name */ + Height = 'height', + /** column name */ + NotBondedTokens = 'not_bonded_tokens', + /** column name */ + ProposalId = 'proposal_id' +} + +/** Streaming cursor of the table "proposal_staking_pool_snapshot" */ +export type Provider_Proposal_Staking_Pool_Snapshot_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Staking_Pool_Snapshot_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Staking_Pool_Snapshot_Stream_Cursor_Value_Input = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** aggregate stddev on columns */ +export type Provider_Proposal_Stddev_Fields = { + __typename?: 'provider_proposal_stddev_fields'; + id?: Maybe; +}; + +/** order by stddev() on columns of table "proposal" */ +export type Provider_Proposal_Stddev_Order_By = { + id?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Provider_Proposal_Stddev_Pop_Fields = { + __typename?: 'provider_proposal_stddev_pop_fields'; + id?: Maybe; +}; + +/** order by stddev_pop() on columns of table "proposal" */ +export type Provider_Proposal_Stddev_Pop_Order_By = { + id?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Provider_Proposal_Stddev_Samp_Fields = { + __typename?: 'provider_proposal_stddev_samp_fields'; + id?: Maybe; +}; + +/** order by stddev_samp() on columns of table "proposal" */ +export type Provider_Proposal_Stddev_Samp_Order_By = { + id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal" */ +export type Provider_Proposal_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Stream_Cursor_Value_Input = { + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Provider_Proposal_Sum_Fields = { + __typename?: 'provider_proposal_sum_fields'; + id?: Maybe; +}; + +/** order by sum() on columns of table "proposal" */ +export type Provider_Proposal_Sum_Order_By = { + id?: InputMaybe; +}; + +/** columns and relationships of "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result = { + __typename?: 'provider_proposal_tally_result'; + abstain: Scalars['String']; + height: Scalars['bigint']; + no: Scalars['String']; + no_with_veto: Scalars['String']; + /** An object relationship */ + proposal: Provider_Proposal; + proposal_id: Scalars['Int']; + yes: Scalars['String']; +}; + +/** order by aggregate values of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_tally_result". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Tally_Result_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Max_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Min_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_tally_result". */ +export type Provider_Proposal_Tally_Result_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** select columns of table "proposal_tally_result" */ +export enum Provider_Proposal_Tally_Result_Select_Column { + /** column name */ + Abstain = 'abstain', + /** column name */ + Height = 'height', + /** column name */ + No = 'no', + /** column name */ + NoWithVeto = 'no_with_veto', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Yes = 'yes' +} + +/** order by stddev() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Tally_Result_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Tally_Result_Stream_Cursor_Value_Input = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** columns and relationships of "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot = { + __typename?: 'provider_proposal_validator_status_snapshot'; + height: Scalars['bigint']; + jailed: Scalars['Boolean']; + /** An object relationship */ + proposal?: Maybe; + proposal_id?: Maybe; + status: Scalars['Int']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** order by aggregate values of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_validator_status_snapshot". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Validator_Status_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Max_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Min_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_validator_status_snapshot". */ +export type Provider_Proposal_Validator_Status_Snapshot_Order_By = { + height?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "proposal_validator_status_snapshot" */ +export enum Provider_Proposal_Validator_Status_Snapshot_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Jailed = 'jailed', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Status = 'status', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** order by stddev() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Validator_Status_Snapshot_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Validator_Status_Snapshot_Stream_Cursor_Value_Input = { + height?: InputMaybe; + jailed?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Provider_Proposal_Var_Pop_Fields = { + __typename?: 'provider_proposal_var_pop_fields'; + id?: Maybe; +}; + +/** order by var_pop() on columns of table "proposal" */ +export type Provider_Proposal_Var_Pop_Order_By = { + id?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Provider_Proposal_Var_Samp_Fields = { + __typename?: 'provider_proposal_var_samp_fields'; + id?: Maybe; +}; + +/** order by var_samp() on columns of table "proposal" */ +export type Provider_Proposal_Var_Samp_Order_By = { + id?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Provider_Proposal_Variance_Fields = { + __typename?: 'provider_proposal_variance_fields'; + id?: Maybe; +}; + +/** order by variance() on columns of table "proposal" */ +export type Provider_Proposal_Variance_Order_By = { + id?: InputMaybe; +}; + +/** columns and relationships of "proposal_vote" */ +export type Provider_Proposal_Vote = { + __typename?: 'provider_proposal_vote'; + /** An object relationship */ + account: Provider_Account; + /** An object relationship */ + block?: Maybe; + height: Scalars['bigint']; + option: Scalars['String']; + /** An object relationship */ + proposal: Provider_Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; + voter_address: Scalars['String']; +}; + +/** order by aggregate values of table "proposal_vote" */ +export type Provider_Proposal_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_vote". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Max_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Min_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_vote". */ +export type Provider_Proposal_Vote_Order_By = { + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** select columns of table "proposal_vote" */ +export enum Provider_Proposal_Vote_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Option = 'option', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + VoterAddress = 'voter_address' +} + +/** order by stddev() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_vote" */ +export type Provider_Proposal_Vote_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Vote_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Vote_Stream_Cursor_Value_Input = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Provider_Provider_Query = { + __typename?: 'provider_provider_query'; + /** fetch data from the table: "account" */ + provider_account: Array; + /** fetch data from the table: "account" using primary key columns */ + provider_account_by_pk?: Maybe; + /** fetch data from the table: "block" */ + provider_block: Array; + /** fetch data from the table: "block" using primary key columns */ + provider_block_by_pk?: Maybe; + /** fetch data from the table: "double_sign_evidence" */ + provider_double_sign_evidence: Array; + /** fetch data from the table: "double_sign_vote" */ + provider_double_sign_vote: Array; + /** fetch data from the table: "pre_commit" */ + provider_pre_commit: Array; + /** fetch aggregated fields from the table: "pre_commit" */ + provider_pre_commit_aggregate: Provider_Pre_Commit_Aggregate; + /** fetch data from the table: "proposal" */ + provider_proposal: Array; + /** fetch aggregated fields from the table: "proposal" */ + provider_proposal_aggregate: Provider_Proposal_Aggregate; + /** fetch data from the table: "proposal" using primary key columns */ + provider_proposal_by_pk?: Maybe; + /** fetch data from the table: "proposal_deposit" */ + provider_proposal_deposit: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" */ + provider_proposal_staking_pool_snapshot: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" using primary key columns */ + provider_proposal_staking_pool_snapshot_by_pk?: Maybe; + /** fetch data from the table: "proposal_tally_result" */ + provider_proposal_tally_result: Array; + /** fetch data from the table: "proposal_tally_result" using primary key columns */ + provider_proposal_tally_result_by_pk?: Maybe; + /** fetch data from the table: "proposal_validator_status_snapshot" */ + provider_proposal_validator_status_snapshot: Array; + /** fetch data from the table: "proposal_vote" */ + provider_proposal_vote: Array; + /** fetch data from the table: "transaction" */ + provider_transaction: Array; + /** fetch data from the table: "validator" */ + provider_validator: Array; + /** fetch data from the table: "validator" using primary key columns */ + provider_validator_by_pk?: Maybe; + /** fetch data from the table: "validator_commission" */ + provider_validator_commission: Array; + /** fetch data from the table: "validator_commission" using primary key columns */ + provider_validator_commission_by_pk?: Maybe; + /** fetch data from the table: "validator_description" */ + provider_validator_description: Array; + /** fetch data from the table: "validator_description" using primary key columns */ + provider_validator_description_by_pk?: Maybe; + /** fetch data from the table: "validator_info" */ + provider_validator_info: Array; + /** fetch data from the table: "validator_info" using primary key columns */ + provider_validator_info_by_pk?: Maybe; + /** fetch data from the table: "validator_signing_info" */ + provider_validator_signing_info: Array; + /** fetch data from the table: "validator_signing_info" using primary key columns */ + provider_validator_signing_info_by_pk?: Maybe; + /** fetch data from the table: "validator_status" */ + provider_validator_status: Array; + /** fetch aggregated fields from the table: "validator_status" */ + provider_validator_status_aggregate: Provider_Validator_Status_Aggregate; + /** fetch data from the table: "validator_status" using primary key columns */ + provider_validator_status_by_pk?: Maybe; + /** fetch data from the table: "validator_voting_power" */ + provider_validator_voting_power: Array; + /** fetch aggregated fields from the table: "validator_voting_power" */ + provider_validator_voting_power_aggregate: Provider_Validator_Voting_Power_Aggregate; + /** fetch data from the table: "validator_voting_power" using primary key columns */ + provider_validator_voting_power_by_pk?: Maybe; + /** fetch data from the table: "vesting_account" */ + provider_vesting_account: Array; + /** fetch data from the table: "vesting_period" */ + provider_vesting_period: Array; +}; + + +export type Provider_Provider_QueryProvider_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Account_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_BlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Block_By_PkArgs = { + height: Scalars['bigint']; +}; + + +export type Provider_Provider_QueryProvider_Double_Sign_EvidenceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Double_Sign_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Pre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Pre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_ProposalArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Provider_Provider_QueryProvider_Proposal_DepositArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Staking_Pool_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Staking_Pool_Snapshot_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Tally_ResultArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Tally_Result_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Validator_Status_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_TransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_ValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_CommissionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Commission_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_DescriptionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Description_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Info_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_StatusArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Status_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Status_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_Voting_PowerArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Voting_Power_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Voting_Power_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Vesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Vesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Provider_Provider_Subscription = { + __typename?: 'provider_provider_subscription'; + /** fetch data from the table: "account" */ + provider_account: Array; + /** fetch data from the table: "account" using primary key columns */ + provider_account_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "account" */ + provider_account_stream: Array; + /** fetch data from the table: "block" */ + provider_block: Array; + /** fetch data from the table: "block" using primary key columns */ + provider_block_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "block" */ + provider_block_stream: Array; + /** fetch data from the table: "double_sign_evidence" */ + provider_double_sign_evidence: Array; + /** fetch data from the table in a streaming manner: "double_sign_evidence" */ + provider_double_sign_evidence_stream: Array; + /** fetch data from the table: "double_sign_vote" */ + provider_double_sign_vote: Array; + /** fetch data from the table in a streaming manner: "double_sign_vote" */ + provider_double_sign_vote_stream: Array; + /** fetch data from the table: "pre_commit" */ + provider_pre_commit: Array; + /** fetch aggregated fields from the table: "pre_commit" */ + provider_pre_commit_aggregate: Provider_Pre_Commit_Aggregate; + /** fetch data from the table in a streaming manner: "pre_commit" */ + provider_pre_commit_stream: Array; + /** fetch data from the table: "proposal" */ + provider_proposal: Array; + /** fetch aggregated fields from the table: "proposal" */ + provider_proposal_aggregate: Provider_Proposal_Aggregate; + /** fetch data from the table: "proposal" using primary key columns */ + provider_proposal_by_pk?: Maybe; + /** fetch data from the table: "proposal_deposit" */ + provider_proposal_deposit: Array; + /** fetch data from the table in a streaming manner: "proposal_deposit" */ + provider_proposal_deposit_stream: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" */ + provider_proposal_staking_pool_snapshot: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" using primary key columns */ + provider_proposal_staking_pool_snapshot_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "proposal_staking_pool_snapshot" */ + provider_proposal_staking_pool_snapshot_stream: Array; + /** fetch data from the table in a streaming manner: "proposal" */ + provider_proposal_stream: Array; + /** fetch data from the table: "proposal_tally_result" */ + provider_proposal_tally_result: Array; + /** fetch data from the table: "proposal_tally_result" using primary key columns */ + provider_proposal_tally_result_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "proposal_tally_result" */ + provider_proposal_tally_result_stream: Array; + /** fetch data from the table: "proposal_validator_status_snapshot" */ + provider_proposal_validator_status_snapshot: Array; + /** fetch data from the table in a streaming manner: "proposal_validator_status_snapshot" */ + provider_proposal_validator_status_snapshot_stream: Array; + /** fetch data from the table: "proposal_vote" */ + provider_proposal_vote: Array; + /** fetch data from the table in a streaming manner: "proposal_vote" */ + provider_proposal_vote_stream: Array; + /** fetch data from the table: "transaction" */ + provider_transaction: Array; + /** fetch data from the table in a streaming manner: "transaction" */ + provider_transaction_stream: Array; + /** fetch data from the table: "validator" */ + provider_validator: Array; + /** fetch data from the table: "validator" using primary key columns */ + provider_validator_by_pk?: Maybe; + /** fetch data from the table: "validator_commission" */ + provider_validator_commission: Array; + /** fetch data from the table: "validator_commission" using primary key columns */ + provider_validator_commission_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_commission" */ + provider_validator_commission_stream: Array; + /** fetch data from the table: "validator_description" */ + provider_validator_description: Array; + /** fetch data from the table: "validator_description" using primary key columns */ + provider_validator_description_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_description" */ + provider_validator_description_stream: Array; + /** fetch data from the table: "validator_info" */ + provider_validator_info: Array; + /** fetch data from the table: "validator_info" using primary key columns */ + provider_validator_info_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_info" */ + provider_validator_info_stream: Array; + /** fetch data from the table: "validator_signing_info" */ + provider_validator_signing_info: Array; + /** fetch data from the table: "validator_signing_info" using primary key columns */ + provider_validator_signing_info_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_signing_info" */ + provider_validator_signing_info_stream: Array; + /** fetch data from the table: "validator_status" */ + provider_validator_status: Array; + /** fetch aggregated fields from the table: "validator_status" */ + provider_validator_status_aggregate: Provider_Validator_Status_Aggregate; + /** fetch data from the table: "validator_status" using primary key columns */ + provider_validator_status_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_status" */ + provider_validator_status_stream: Array; + /** fetch data from the table in a streaming manner: "validator" */ + provider_validator_stream: Array; + /** fetch data from the table: "validator_voting_power" */ + provider_validator_voting_power: Array; + /** fetch aggregated fields from the table: "validator_voting_power" */ + provider_validator_voting_power_aggregate: Provider_Validator_Voting_Power_Aggregate; + /** fetch data from the table: "validator_voting_power" using primary key columns */ + provider_validator_voting_power_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_voting_power" */ + provider_validator_voting_power_stream: Array; + /** fetch data from the table: "vesting_account" */ + provider_vesting_account: Array; + /** fetch data from the table in a streaming manner: "vesting_account" */ + provider_vesting_account_stream: Array; + /** fetch data from the table: "vesting_period" */ + provider_vesting_period: Array; + /** fetch data from the table in a streaming manner: "vesting_period" */ + provider_vesting_period_stream: Array; +}; + + +export type Provider_Provider_SubscriptionProvider_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Account_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Account_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_BlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Block_By_PkArgs = { + height: Scalars['bigint']; +}; + + +export type Provider_Provider_SubscriptionProvider_Block_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Double_Sign_EvidenceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Double_Sign_Evidence_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Double_Sign_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Double_Sign_Vote_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Pre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Pre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Pre_Commit_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_ProposalArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_DepositArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Deposit_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Staking_Pool_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Staking_Pool_Snapshot_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Staking_Pool_Snapshot_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Tally_ResultArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Tally_Result_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Tally_Result_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Validator_Status_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Validator_Status_Snapshot_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Vote_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_TransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Transaction_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_ValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_CommissionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Commission_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Commission_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_DescriptionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Description_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Description_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Info_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Info_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Signing_Info_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_StatusArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Status_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Status_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Status_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Voting_PowerArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Voting_Power_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Voting_Power_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Voting_Power_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Vesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Vesting_Account_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Vesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Vesting_Period_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + +/** columns and relationships of "transaction" */ +export type Provider_Transaction = { + __typename?: 'provider_transaction'; + /** An object relationship */ + block: Provider_Block; + fee: Scalars['jsonb']; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash: Scalars['String']; + height: Scalars['bigint']; + logs?: Maybe; + memo?: Maybe; + messages: Scalars['jsonb']; + raw_log?: Maybe; + signatures: Scalars['_text']; + signer_infos: Scalars['jsonb']; + success: Scalars['Boolean']; +}; + + +/** columns and relationships of "transaction" */ +export type Provider_TransactionFeeArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type Provider_TransactionLogsArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type Provider_TransactionMessagesArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type Provider_TransactionSigner_InfosArgs = { + path?: InputMaybe; +}; + +/** order by aggregate values of table "transaction" */ +export type Provider_Transaction_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "transaction" */ +export type Provider_Transaction_Avg_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "transaction". All fields are combined with a logical 'AND'. */ +export type Provider_Transaction_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe<_Text_Comparison_Exp>; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** order by max() on columns of table "transaction" */ +export type Provider_Transaction_Max_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + raw_log?: InputMaybe; +}; + +/** order by min() on columns of table "transaction" */ +export type Provider_Transaction_Min_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + raw_log?: InputMaybe; +}; + +/** Ordering options when selecting data from "transaction". */ +export type Provider_Transaction_Order_By = { + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** select columns of table "transaction" */ +export enum Provider_Transaction_Select_Column { + /** column name */ + Fee = 'fee', + /** column name */ + GasUsed = 'gas_used', + /** column name */ + GasWanted = 'gas_wanted', + /** column name */ + Hash = 'hash', + /** column name */ + Height = 'height', + /** column name */ + Logs = 'logs', + /** column name */ + Memo = 'memo', + /** column name */ + Messages = 'messages', + /** column name */ + RawLog = 'raw_log', + /** column name */ + Signatures = 'signatures', + /** column name */ + SignerInfos = 'signer_infos', + /** column name */ + Success = 'success' +} + +/** order by stddev() on columns of table "transaction" */ +export type Provider_Transaction_Stddev_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "transaction" */ +export type Provider_Transaction_Stddev_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "transaction" */ +export type Provider_Transaction_Stddev_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** Streaming cursor of the table "transaction" */ +export type Provider_Transaction_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Transaction_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Transaction_Stream_Cursor_Value_Input = { + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** order by sum() on columns of table "transaction" */ +export type Provider_Transaction_Sum_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "transaction" */ +export type Provider_Transaction_Var_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "transaction" */ +export type Provider_Transaction_Var_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by variance() on columns of table "transaction" */ +export type Provider_Transaction_Variance_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "validator" */ +export type Provider_Validator = { + __typename?: 'provider_validator'; + /** An array relationship */ + blocks: Array; + consensus_address: Scalars['String']; + consensus_pubkey: Scalars['String']; + /** An array relationship */ + double_sign_votes: Array; + /** An array relationship */ + pre_commits: Array; + /** An aggregate relationship */ + pre_commits_aggregate: Provider_Pre_Commit_Aggregate; + /** An array relationship */ + validator_commissions: Array; + /** An array relationship */ + validator_descriptions: Array; + /** An object relationship */ + validator_info?: Maybe; + /** An array relationship */ + validator_infos: Array; + /** An array relationship */ + validator_signing_infos: Array; + /** An array relationship */ + validator_statuses: Array; + /** An aggregate relationship */ + validator_statuses_aggregate: Provider_Validator_Status_Aggregate; + /** An array relationship */ + validator_voting_powers: Array; + /** An aggregate relationship */ + validator_voting_powers_aggregate: Provider_Validator_Voting_Power_Aggregate; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorBlocksArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorDouble_Sign_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_CommissionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_DescriptionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_Signing_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_StatusesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_Statuses_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + blocks?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes?: InputMaybe; + pre_commits?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + validator_commissions?: InputMaybe; + validator_descriptions?: InputMaybe; + validator_info?: InputMaybe; + validator_infos?: InputMaybe; + validator_signing_infos?: InputMaybe; + validator_statuses?: InputMaybe; + validator_statuses_aggregate?: InputMaybe; + validator_voting_powers?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** columns and relationships of "validator_commission" */ +export type Provider_Validator_Commission = { + __typename?: 'provider_validator_commission'; + commission: Scalars['numeric']; + height: Scalars['bigint']; + min_self_delegation: Scalars['bigint']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; +}; + +/** order by aggregate values of table "validator_commission" */ +export type Provider_Validator_Commission_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Avg_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_commission". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Commission_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by max() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Max_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by min() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Min_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_commission". */ +export type Provider_Validator_Commission_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** select columns of table "validator_commission" */ +export enum Provider_Validator_Commission_Select_Column { + /** column name */ + Commission = 'commission', + /** column name */ + Height = 'height', + /** column name */ + MinSelfDelegation = 'min_self_delegation', + /** column name */ + ValidatorAddress = 'validator_address' +} + +/** order by stddev() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Stddev_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Stddev_Pop_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Stddev_Samp_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_commission" */ +export type Provider_Validator_Commission_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Commission_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Commission_Stream_Cursor_Value_Input = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by sum() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Sum_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by var_pop() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Var_Pop_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by var_samp() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Var_Samp_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by variance() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Variance_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** columns and relationships of "validator_description" */ +export type Provider_Validator_Description = { + __typename?: 'provider_validator_description'; + avatar_url?: Maybe; + details?: Maybe; + height: Scalars['bigint']; + identity?: Maybe; + moniker?: Maybe; + security_contact?: Maybe; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; + website?: Maybe; +}; + +/** order by aggregate values of table "validator_description" */ +export type Provider_Validator_Description_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "validator_description" */ +export type Provider_Validator_Description_Avg_Order_By = { + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_description". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Description_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** order by max() on columns of table "validator_description" */ +export type Provider_Validator_Description_Max_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** order by min() on columns of table "validator_description" */ +export type Provider_Validator_Description_Min_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_description". */ +export type Provider_Validator_Description_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** select columns of table "validator_description" */ +export enum Provider_Validator_Description_Select_Column { + /** column name */ + AvatarUrl = 'avatar_url', + /** column name */ + Details = 'details', + /** column name */ + Height = 'height', + /** column name */ + Identity = 'identity', + /** column name */ + Moniker = 'moniker', + /** column name */ + SecurityContact = 'security_contact', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + Website = 'website' +} + +/** order by stddev() on columns of table "validator_description" */ +export type Provider_Validator_Description_Stddev_Order_By = { + height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "validator_description" */ +export type Provider_Validator_Description_Stddev_Pop_Order_By = { + height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "validator_description" */ +export type Provider_Validator_Description_Stddev_Samp_Order_By = { + height?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_description" */ +export type Provider_Validator_Description_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Description_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Description_Stream_Cursor_Value_Input = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** order by sum() on columns of table "validator_description" */ +export type Provider_Validator_Description_Sum_Order_By = { + height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "validator_description" */ +export type Provider_Validator_Description_Var_Pop_Order_By = { + height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "validator_description" */ +export type Provider_Validator_Description_Var_Samp_Order_By = { + height?: InputMaybe; +}; + +/** order by variance() on columns of table "validator_description" */ +export type Provider_Validator_Description_Variance_Order_By = { + height?: InputMaybe; +}; + +/** columns and relationships of "validator_info" */ +export type Provider_Validator_Info = { + __typename?: 'provider_validator_info'; + /** An object relationship */ + account?: Maybe; + consensus_address: Scalars['String']; + max_change_rate: Scalars['String']; + max_rate: Scalars['String']; + operator_address: Scalars['String']; + self_delegate_address?: Maybe; + /** An object relationship */ + validator: Provider_Validator; +}; + +/** order by aggregate values of table "validator_info" */ +export type Provider_Validator_Info_Aggregate_Order_By = { + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_info". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; + validator?: InputMaybe; +}; + +/** order by max() on columns of table "validator_info" */ +export type Provider_Validator_Info_Max_Order_By = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +/** order by min() on columns of table "validator_info" */ +export type Provider_Validator_Info_Min_Order_By = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_info". */ +export type Provider_Validator_Info_Order_By = { + account?: InputMaybe; + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; + validator?: InputMaybe; +}; + +/** select columns of table "validator_info" */ +export enum Provider_Validator_Info_Select_Column { + /** column name */ + ConsensusAddress = 'consensus_address', + /** column name */ + MaxChangeRate = 'max_change_rate', + /** column name */ + MaxRate = 'max_rate', + /** column name */ + OperatorAddress = 'operator_address', + /** column name */ + SelfDelegateAddress = 'self_delegate_address' +} + +/** Streaming cursor of the table "validator_info" */ +export type Provider_Validator_Info_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Info_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Info_Stream_Cursor_Value_Input = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator". */ +export type Provider_Validator_Order_By = { + blocks_aggregate?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes_aggregate?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + validator_commissions_aggregate?: InputMaybe; + validator_descriptions_aggregate?: InputMaybe; + validator_info?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + validator_signing_infos_aggregate?: InputMaybe; + validator_statuses_aggregate?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** select columns of table "validator" */ +export enum Provider_Validator_Select_Column { + /** column name */ + ConsensusAddress = 'consensus_address', + /** column name */ + ConsensusPubkey = 'consensus_pubkey' +} + +/** columns and relationships of "validator_signing_info" */ +export type Provider_Validator_Signing_Info = { + __typename?: 'provider_validator_signing_info'; + height: Scalars['bigint']; + index_offset: Scalars['bigint']; + jailed_until: Scalars['timestamp']; + missed_blocks_counter: Scalars['bigint']; + start_height: Scalars['bigint']; + tombstoned: Scalars['Boolean']; + validator_address: Scalars['String']; +}; + +/** order by aggregate values of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Avg_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_signing_info". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Signing_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by max() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Max_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by min() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Min_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_signing_info". */ +export type Provider_Validator_Signing_Info_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** select columns of table "validator_signing_info" */ +export enum Provider_Validator_Signing_Info_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + IndexOffset = 'index_offset', + /** column name */ + JailedUntil = 'jailed_until', + /** column name */ + MissedBlocksCounter = 'missed_blocks_counter', + /** column name */ + StartHeight = 'start_height', + /** column name */ + Tombstoned = 'tombstoned', + /** column name */ + ValidatorAddress = 'validator_address' +} -/** aggregate variance on columns */ -export type Proposal_Staking_Pool_Snapshot_Variance_Fields = { - __typename?: 'proposal_staking_pool_snapshot_variance_fields'; - height?: Maybe; - proposal_id?: Maybe; +/** order by stddev() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Stddev_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; }; -/** aggregate stddev on columns */ -export type Proposal_Stddev_Fields = { - __typename?: 'proposal_stddev_fields'; - id?: Maybe; +/** order by stddev_pop() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Stddev_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; }; -/** order by stddev() on columns of table "proposal" */ -export type Proposal_Stddev_Order_By = { - id?: InputMaybe; +/** order by stddev_samp() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Stddev_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; }; -/** aggregate stddev_pop on columns */ -export type Proposal_Stddev_Pop_Fields = { - __typename?: 'proposal_stddev_pop_fields'; - id?: Maybe; +/** Streaming cursor of the table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Signing_Info_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; }; -/** order by stddev_pop() on columns of table "proposal" */ -export type Proposal_Stddev_Pop_Order_By = { - id?: InputMaybe; +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Signing_Info_Stream_Cursor_Value_Input = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Proposal_Stddev_Samp_Fields = { - __typename?: 'proposal_stddev_samp_fields'; - id?: Maybe; +/** order by sum() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Sum_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; }; -/** order by stddev_samp() on columns of table "proposal" */ -export type Proposal_Stddev_Samp_Order_By = { - id?: InputMaybe; +/** order by var_pop() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Var_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; }; -/** aggregate sum on columns */ -export type Proposal_Sum_Fields = { - __typename?: 'proposal_sum_fields'; - id?: Maybe; +/** order by var_samp() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Var_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; }; -/** order by sum() on columns of table "proposal" */ -export type Proposal_Sum_Order_By = { - id?: InputMaybe; +/** order by variance() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Variance_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; }; -/** columns and relationships of "proposal_tally_result" */ -export type Proposal_Tally_Result = { - __typename?: 'proposal_tally_result'; - abstain: Scalars['String']; +/** columns and relationships of "validator_status" */ +export type Provider_Validator_Status = { + __typename?: 'provider_validator_status'; height: Scalars['bigint']; - no: Scalars['String']; - no_with_veto: Scalars['String']; + jailed: Scalars['Boolean']; + status: Scalars['Int']; /** An object relationship */ - proposal: Proposal; - proposal_id: Scalars['Int']; - yes: Scalars['String']; + validator: Provider_Validator; + validator_address: Scalars['String']; }; -/** aggregated selection of "proposal_tally_result" */ -export type Proposal_Tally_Result_Aggregate = { - __typename?: 'proposal_tally_result_aggregate'; - aggregate?: Maybe; - nodes: Array; +/** aggregated selection of "validator_status" */ +export type Provider_Validator_Status_Aggregate = { + __typename?: 'provider_validator_status_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "proposal_tally_result" */ -export type Proposal_Tally_Result_Aggregate_Fields = { - __typename?: 'proposal_tally_result_aggregate_fields'; - avg?: Maybe; +/** aggregate fields of "validator_status" */ +export type Provider_Validator_Status_Aggregate_Fields = { + __typename?: 'provider_validator_status_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 "proposal_tally_result" */ -export type Proposal_Tally_Result_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +/** aggregate fields of "validator_status" */ +export type Provider_Validator_Status_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** order by aggregate values of table "proposal_tally_result" */ -export type Proposal_Tally_Result_Aggregate_Order_By = { - avg?: InputMaybe; +/** order by aggregate values of table "validator_status" */ +export type Provider_Validator_Status_Aggregate_Order_By = { + avg?: InputMaybe; count?: InputMaybe; - max?: InputMaybe; - min?: InputMaybe; - stddev?: InputMaybe; - stddev_pop?: InputMaybe; - stddev_samp?: InputMaybe; - sum?: InputMaybe; - var_pop?: InputMaybe; - var_samp?: InputMaybe; - variance?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; }; /** aggregate avg on columns */ -export type Proposal_Tally_Result_Avg_Fields = { - __typename?: 'proposal_tally_result_avg_fields'; +export type Provider_Validator_Status_Avg_Fields = { + __typename?: 'provider_validator_status_avg_fields'; height?: Maybe; - proposal_id?: Maybe; + status?: Maybe; }; -/** order by avg() on columns of table "proposal_tally_result" */ -export type Proposal_Tally_Result_Avg_Order_By = { +/** order by avg() on columns of table "validator_status" */ +export type Provider_Validator_Status_Avg_Order_By = { height?: InputMaybe; - proposal_id?: InputMaybe; + status?: InputMaybe; }; -/** Boolean expression to filter rows from the table "proposal_tally_result". All fields are combined with a logical 'AND'. */ -export type Proposal_Tally_Result_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - abstain?: InputMaybe; +/** Boolean expression to filter rows from the table "validator_status". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Status_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; height?: InputMaybe; - no?: InputMaybe; - no_with_veto?: InputMaybe; - proposal?: InputMaybe; - proposal_id?: InputMaybe; - yes?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; }; /** aggregate max on columns */ -export type Proposal_Tally_Result_Max_Fields = { - __typename?: 'proposal_tally_result_max_fields'; - abstain?: Maybe; +export type Provider_Validator_Status_Max_Fields = { + __typename?: 'provider_validator_status_max_fields'; height?: Maybe; - no?: Maybe; - no_with_veto?: Maybe; - proposal_id?: Maybe; - yes?: Maybe; + status?: Maybe; + validator_address?: Maybe; }; -/** order by max() on columns of table "proposal_tally_result" */ -export type Proposal_Tally_Result_Max_Order_By = { - abstain?: InputMaybe; +/** order by max() on columns of table "validator_status" */ +export type Provider_Validator_Status_Max_Order_By = { height?: InputMaybe; - no?: InputMaybe; - no_with_veto?: InputMaybe; - proposal_id?: InputMaybe; - yes?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; }; /** aggregate min on columns */ -export type Proposal_Tally_Result_Min_Fields = { - __typename?: 'proposal_tally_result_min_fields'; - abstain?: Maybe; +export type Provider_Validator_Status_Min_Fields = { + __typename?: 'provider_validator_status_min_fields'; height?: Maybe; - no?: Maybe; - no_with_veto?: Maybe; - proposal_id?: Maybe; - yes?: Maybe; + status?: Maybe; + validator_address?: Maybe; }; -/** order by min() on columns of table "proposal_tally_result" */ -export type Proposal_Tally_Result_Min_Order_By = { - abstain?: InputMaybe; +/** order by min() on columns of table "validator_status" */ +export type Provider_Validator_Status_Min_Order_By = { height?: InputMaybe; - no?: InputMaybe; - no_with_veto?: InputMaybe; - proposal_id?: InputMaybe; - yes?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; }; -/** Ordering options when selecting data from "proposal_tally_result". */ -export type Proposal_Tally_Result_Order_By = { - abstain?: InputMaybe; +/** Ordering options when selecting data from "validator_status". */ +export type Provider_Validator_Status_Order_By = { height?: InputMaybe; - no?: InputMaybe; - no_with_veto?: InputMaybe; - proposal?: InputMaybe; - proposal_id?: InputMaybe; - yes?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; }; -/** select columns of table "proposal_tally_result" */ -export enum Proposal_Tally_Result_Select_Column { - /** column name */ - Abstain = 'abstain', +/** select columns of table "validator_status" */ +export enum Provider_Validator_Status_Select_Column { /** column name */ Height = 'height', /** column name */ - No = 'no', - /** column name */ - NoWithVeto = 'no_with_veto', + Jailed = 'jailed', /** column name */ - ProposalId = 'proposal_id', + Status = 'status', /** column name */ - Yes = 'yes' + ValidatorAddress = 'validator_address' } /** aggregate stddev on columns */ -export type Proposal_Tally_Result_Stddev_Fields = { - __typename?: 'proposal_tally_result_stddev_fields'; +export type Provider_Validator_Status_Stddev_Fields = { + __typename?: 'provider_validator_status_stddev_fields'; height?: Maybe; - proposal_id?: Maybe; + status?: Maybe; }; -/** order by stddev() on columns of table "proposal_tally_result" */ -export type Proposal_Tally_Result_Stddev_Order_By = { +/** order by stddev() on columns of table "validator_status" */ +export type Provider_Validator_Status_Stddev_Order_By = { height?: InputMaybe; - proposal_id?: InputMaybe; + status?: InputMaybe; }; /** aggregate stddev_pop on columns */ -export type Proposal_Tally_Result_Stddev_Pop_Fields = { - __typename?: 'proposal_tally_result_stddev_pop_fields'; +export type Provider_Validator_Status_Stddev_Pop_Fields = { + __typename?: 'provider_validator_status_stddev_pop_fields'; height?: Maybe; - proposal_id?: Maybe; + status?: Maybe; }; -/** order by stddev_pop() on columns of table "proposal_tally_result" */ -export type Proposal_Tally_Result_Stddev_Pop_Order_By = { +/** order by stddev_pop() on columns of table "validator_status" */ +export type Provider_Validator_Status_Stddev_Pop_Order_By = { height?: InputMaybe; - proposal_id?: InputMaybe; + status?: InputMaybe; }; /** aggregate stddev_samp on columns */ -export type Proposal_Tally_Result_Stddev_Samp_Fields = { - __typename?: 'proposal_tally_result_stddev_samp_fields'; +export type Provider_Validator_Status_Stddev_Samp_Fields = { + __typename?: 'provider_validator_status_stddev_samp_fields'; height?: Maybe; - proposal_id?: Maybe; + status?: Maybe; }; -/** order by stddev_samp() on columns of table "proposal_tally_result" */ -export type Proposal_Tally_Result_Stddev_Samp_Order_By = { +/** order by stddev_samp() on columns of table "validator_status" */ +export type Provider_Validator_Status_Stddev_Samp_Order_By = { height?: InputMaybe; - proposal_id?: InputMaybe; + status?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_status" */ +export type Provider_Validator_Status_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Status_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Status_Stream_Cursor_Value_Input = { + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; }; /** aggregate sum on columns */ -export type Proposal_Tally_Result_Sum_Fields = { - __typename?: 'proposal_tally_result_sum_fields'; +export type Provider_Validator_Status_Sum_Fields = { + __typename?: 'provider_validator_status_sum_fields'; height?: Maybe; - proposal_id?: Maybe; + status?: Maybe; }; -/** order by sum() on columns of table "proposal_tally_result" */ -export type Proposal_Tally_Result_Sum_Order_By = { +/** order by sum() on columns of table "validator_status" */ +export type Provider_Validator_Status_Sum_Order_By = { height?: InputMaybe; - proposal_id?: InputMaybe; + status?: InputMaybe; }; /** aggregate var_pop on columns */ -export type Proposal_Tally_Result_Var_Pop_Fields = { - __typename?: 'proposal_tally_result_var_pop_fields'; +export type Provider_Validator_Status_Var_Pop_Fields = { + __typename?: 'provider_validator_status_var_pop_fields'; height?: Maybe; - proposal_id?: Maybe; + status?: Maybe; }; -/** order by var_pop() on columns of table "proposal_tally_result" */ -export type Proposal_Tally_Result_Var_Pop_Order_By = { +/** order by var_pop() on columns of table "validator_status" */ +export type Provider_Validator_Status_Var_Pop_Order_By = { height?: InputMaybe; - proposal_id?: InputMaybe; + status?: InputMaybe; }; /** aggregate var_samp on columns */ -export type Proposal_Tally_Result_Var_Samp_Fields = { - __typename?: 'proposal_tally_result_var_samp_fields'; +export type Provider_Validator_Status_Var_Samp_Fields = { + __typename?: 'provider_validator_status_var_samp_fields'; height?: Maybe; - proposal_id?: Maybe; + status?: Maybe; }; -/** order by var_samp() on columns of table "proposal_tally_result" */ -export type Proposal_Tally_Result_Var_Samp_Order_By = { +/** order by var_samp() on columns of table "validator_status" */ +export type Provider_Validator_Status_Var_Samp_Order_By = { height?: InputMaybe; - proposal_id?: InputMaybe; + status?: InputMaybe; }; /** aggregate variance on columns */ -export type Proposal_Tally_Result_Variance_Fields = { - __typename?: 'proposal_tally_result_variance_fields'; +export type Provider_Validator_Status_Variance_Fields = { + __typename?: 'provider_validator_status_variance_fields'; height?: Maybe; - proposal_id?: Maybe; + status?: Maybe; }; -/** order by variance() on columns of table "proposal_tally_result" */ -export type Proposal_Tally_Result_Variance_Order_By = { +/** order by variance() on columns of table "validator_status" */ +export type Provider_Validator_Status_Variance_Order_By = { height?: InputMaybe; - proposal_id?: InputMaybe; + status?: InputMaybe; +}; + +/** Streaming cursor of the table "validator" */ +export type Provider_Validator_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; }; -/** columns and relationships of "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot = { - __typename?: 'proposal_validator_status_snapshot'; - height: Scalars['bigint']; - id: Scalars['Int']; - jailed: Scalars['Boolean']; +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Stream_Cursor_Value_Input = { + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; +}; + +/** columns and relationships of "validator_voting_power" */ +export type Provider_Validator_Voting_Power = { + __typename?: 'provider_validator_voting_power'; /** An object relationship */ - proposal?: Maybe; - proposal_id?: Maybe; - status: Scalars['Int']; + block: Provider_Block; + height: Scalars['bigint']; /** An object relationship */ - validator: Validator; + validator: Provider_Validator; validator_address: Scalars['String']; voting_power: Scalars['bigint']; }; -/** aggregated selection of "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot_Aggregate = { - __typename?: 'proposal_validator_status_snapshot_aggregate'; - aggregate?: Maybe; - nodes: Array; +/** aggregated selection of "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Aggregate = { + __typename?: 'provider_validator_voting_power_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot_Aggregate_Fields = { - __typename?: 'proposal_validator_status_snapshot_aggregate_fields'; - avg?: Maybe; +/** aggregate fields of "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Aggregate_Fields = { + __typename?: 'provider_validator_voting_power_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 "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +/** aggregate fields of "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** order by aggregate values of table "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot_Aggregate_Order_By = { - avg?: InputMaybe; +/** order by aggregate values of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Aggregate_Order_By = { + avg?: InputMaybe; count?: InputMaybe; - max?: InputMaybe; - min?: InputMaybe; - stddev?: InputMaybe; - stddev_pop?: InputMaybe; - stddev_samp?: InputMaybe; - sum?: InputMaybe; - var_pop?: InputMaybe; - var_samp?: InputMaybe; - variance?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; }; /** aggregate avg on columns */ -export type Proposal_Validator_Status_Snapshot_Avg_Fields = { - __typename?: 'proposal_validator_status_snapshot_avg_fields'; +export type Provider_Validator_Voting_Power_Avg_Fields = { + __typename?: 'provider_validator_voting_power_avg_fields'; height?: Maybe; - id?: Maybe; - proposal_id?: Maybe; - status?: Maybe; voting_power?: Maybe; }; -/** order by avg() on columns of table "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot_Avg_Order_By = { +/** order by avg() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Avg_Order_By = { height?: InputMaybe; - id?: InputMaybe; - proposal_id?: InputMaybe; - status?: InputMaybe; voting_power?: InputMaybe; }; -/** Boolean expression to filter rows from the table "proposal_validator_status_snapshot". All fields are combined with a logical 'AND'. */ -export type Proposal_Validator_Status_Snapshot_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; +/** Boolean expression to filter rows from the table "validator_voting_power". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Voting_Power_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; height?: InputMaybe; - id?: InputMaybe; - jailed?: InputMaybe; - proposal?: InputMaybe; - proposal_id?: InputMaybe; - status?: InputMaybe; - validator?: InputMaybe; + validator?: InputMaybe; validator_address?: InputMaybe; voting_power?: InputMaybe; }; /** aggregate max on columns */ -export type Proposal_Validator_Status_Snapshot_Max_Fields = { - __typename?: 'proposal_validator_status_snapshot_max_fields'; +export type Provider_Validator_Voting_Power_Max_Fields = { + __typename?: 'provider_validator_voting_power_max_fields'; height?: Maybe; - id?: Maybe; - proposal_id?: Maybe; - status?: Maybe; validator_address?: Maybe; voting_power?: Maybe; }; -/** order by max() on columns of table "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot_Max_Order_By = { +/** order by max() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Max_Order_By = { height?: InputMaybe; - id?: InputMaybe; - proposal_id?: InputMaybe; - status?: InputMaybe; validator_address?: InputMaybe; voting_power?: InputMaybe; }; /** aggregate min on columns */ -export type Proposal_Validator_Status_Snapshot_Min_Fields = { - __typename?: 'proposal_validator_status_snapshot_min_fields'; +export type Provider_Validator_Voting_Power_Min_Fields = { + __typename?: 'provider_validator_voting_power_min_fields'; height?: Maybe; - id?: Maybe; - proposal_id?: Maybe; - status?: Maybe; validator_address?: Maybe; voting_power?: Maybe; }; -/** order by min() on columns of table "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot_Min_Order_By = { +/** order by min() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Min_Order_By = { height?: InputMaybe; - id?: InputMaybe; - proposal_id?: InputMaybe; - status?: InputMaybe; validator_address?: InputMaybe; voting_power?: InputMaybe; }; -/** Ordering options when selecting data from "proposal_validator_status_snapshot". */ -export type Proposal_Validator_Status_Snapshot_Order_By = { +/** Ordering options when selecting data from "validator_voting_power". */ +export type Provider_Validator_Voting_Power_Order_By = { + block?: InputMaybe; height?: InputMaybe; - id?: InputMaybe; - jailed?: InputMaybe; - proposal?: InputMaybe; - proposal_id?: InputMaybe; - status?: InputMaybe; - validator?: InputMaybe; + validator?: InputMaybe; validator_address?: InputMaybe; voting_power?: InputMaybe; }; -/** select columns of table "proposal_validator_status_snapshot" */ -export enum Proposal_Validator_Status_Snapshot_Select_Column { +/** select columns of table "validator_voting_power" */ +export enum Provider_Validator_Voting_Power_Select_Column { /** column name */ Height = 'height', /** column name */ - Id = 'id', - /** column name */ - Jailed = 'jailed', - /** column name */ - ProposalId = 'proposal_id', - /** column name */ - Status = 'status', - /** column name */ ValidatorAddress = 'validator_address', /** column name */ VotingPower = 'voting_power' } /** aggregate stddev on columns */ -export type Proposal_Validator_Status_Snapshot_Stddev_Fields = { - __typename?: 'proposal_validator_status_snapshot_stddev_fields'; +export type Provider_Validator_Voting_Power_Stddev_Fields = { + __typename?: 'provider_validator_voting_power_stddev_fields'; height?: Maybe; - id?: Maybe; - proposal_id?: Maybe; - status?: Maybe; voting_power?: Maybe; }; -/** order by stddev() on columns of table "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot_Stddev_Order_By = { +/** order by stddev() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Stddev_Order_By = { height?: InputMaybe; - id?: InputMaybe; - proposal_id?: InputMaybe; - status?: InputMaybe; voting_power?: InputMaybe; }; /** aggregate stddev_pop on columns */ -export type Proposal_Validator_Status_Snapshot_Stddev_Pop_Fields = { - __typename?: 'proposal_validator_status_snapshot_stddev_pop_fields'; +export type Provider_Validator_Voting_Power_Stddev_Pop_Fields = { + __typename?: 'provider_validator_voting_power_stddev_pop_fields'; height?: Maybe; - id?: Maybe; - proposal_id?: Maybe; - status?: Maybe; voting_power?: Maybe; }; -/** order by stddev_pop() on columns of table "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot_Stddev_Pop_Order_By = { +/** order by stddev_pop() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Stddev_Pop_Order_By = { height?: InputMaybe; - id?: InputMaybe; - proposal_id?: InputMaybe; - status?: InputMaybe; voting_power?: InputMaybe; }; /** aggregate stddev_samp on columns */ -export type Proposal_Validator_Status_Snapshot_Stddev_Samp_Fields = { - __typename?: 'proposal_validator_status_snapshot_stddev_samp_fields'; +export type Provider_Validator_Voting_Power_Stddev_Samp_Fields = { + __typename?: 'provider_validator_voting_power_stddev_samp_fields'; height?: Maybe; - id?: Maybe; - proposal_id?: Maybe; - status?: Maybe; voting_power?: Maybe; }; -/** order by stddev_samp() on columns of table "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot_Stddev_Samp_Order_By = { +/** order by stddev_samp() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Stddev_Samp_Order_By = { height?: InputMaybe; - id?: InputMaybe; - proposal_id?: InputMaybe; - status?: InputMaybe; voting_power?: InputMaybe; }; +/** Streaming cursor of the table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Voting_Power_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Voting_Power_Stream_Cursor_Value_Input = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + /** aggregate sum on columns */ -export type Proposal_Validator_Status_Snapshot_Sum_Fields = { - __typename?: 'proposal_validator_status_snapshot_sum_fields'; +export type Provider_Validator_Voting_Power_Sum_Fields = { + __typename?: 'provider_validator_voting_power_sum_fields'; height?: Maybe; - id?: Maybe; - proposal_id?: Maybe; - status?: Maybe; voting_power?: Maybe; }; -/** order by sum() on columns of table "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot_Sum_Order_By = { +/** order by sum() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Sum_Order_By = { height?: InputMaybe; - id?: InputMaybe; - proposal_id?: InputMaybe; - status?: InputMaybe; voting_power?: InputMaybe; }; /** aggregate var_pop on columns */ -export type Proposal_Validator_Status_Snapshot_Var_Pop_Fields = { - __typename?: 'proposal_validator_status_snapshot_var_pop_fields'; +export type Provider_Validator_Voting_Power_Var_Pop_Fields = { + __typename?: 'provider_validator_voting_power_var_pop_fields'; height?: Maybe; - id?: Maybe; - proposal_id?: Maybe; - status?: Maybe; voting_power?: Maybe; }; -/** order by var_pop() on columns of table "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot_Var_Pop_Order_By = { +/** order by var_pop() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Var_Pop_Order_By = { height?: InputMaybe; - id?: InputMaybe; - proposal_id?: InputMaybe; - status?: InputMaybe; voting_power?: InputMaybe; }; /** aggregate var_samp on columns */ -export type Proposal_Validator_Status_Snapshot_Var_Samp_Fields = { - __typename?: 'proposal_validator_status_snapshot_var_samp_fields'; +export type Provider_Validator_Voting_Power_Var_Samp_Fields = { + __typename?: 'provider_validator_voting_power_var_samp_fields'; height?: Maybe; - id?: Maybe; - proposal_id?: Maybe; - status?: Maybe; voting_power?: Maybe; }; -/** order by var_samp() on columns of table "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot_Var_Samp_Order_By = { +/** order by var_samp() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Var_Samp_Order_By = { height?: InputMaybe; - id?: InputMaybe; - proposal_id?: InputMaybe; - status?: InputMaybe; voting_power?: InputMaybe; }; /** aggregate variance on columns */ -export type Proposal_Validator_Status_Snapshot_Variance_Fields = { - __typename?: 'proposal_validator_status_snapshot_variance_fields'; +export type Provider_Validator_Voting_Power_Variance_Fields = { + __typename?: 'provider_validator_voting_power_variance_fields'; height?: Maybe; - id?: Maybe; - proposal_id?: Maybe; - status?: Maybe; voting_power?: Maybe; }; -/** order by variance() on columns of table "proposal_validator_status_snapshot" */ -export type Proposal_Validator_Status_Snapshot_Variance_Order_By = { +/** order by variance() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Variance_Order_By = { height?: InputMaybe; - id?: InputMaybe; - proposal_id?: InputMaybe; - status?: InputMaybe; voting_power?: InputMaybe; }; -/** aggregate var_pop on columns */ -export type Proposal_Var_Pop_Fields = { - __typename?: 'proposal_var_pop_fields'; - id?: Maybe; -}; - -/** order by var_pop() on columns of table "proposal" */ -export type Proposal_Var_Pop_Order_By = { - id?: InputMaybe; -}; - -/** aggregate var_samp on columns */ -export type Proposal_Var_Samp_Fields = { - __typename?: 'proposal_var_samp_fields'; - id?: Maybe; -}; - -/** order by var_samp() on columns of table "proposal" */ -export type Proposal_Var_Samp_Order_By = { - id?: InputMaybe; -}; - -/** aggregate variance on columns */ -export type Proposal_Variance_Fields = { - __typename?: 'proposal_variance_fields'; - id?: Maybe; -}; - -/** order by variance() on columns of table "proposal" */ -export type Proposal_Variance_Order_By = { - id?: InputMaybe; -}; - -/** columns and relationships of "proposal_vote" */ -export type Proposal_Vote = { - __typename?: 'proposal_vote'; - /** An object relationship */ - account: Account; - /** An object relationship */ - block: Block; - height: Scalars['bigint']; - option: Scalars['String']; +/** columns and relationships of "vesting_account" */ +export type Provider_Vesting_Account = { + __typename?: 'provider_vesting_account'; /** An object relationship */ - proposal: Proposal; - proposal_id: Scalars['Int']; - voter_address: Scalars['String']; -}; - -/** aggregated selection of "proposal_vote" */ -export type Proposal_Vote_Aggregate = { - __typename?: 'proposal_vote_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "proposal_vote" */ -export type Proposal_Vote_Aggregate_Fields = { - __typename?: 'proposal_vote_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 "proposal_vote" */ -export type Proposal_Vote_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - -/** order by aggregate values of table "proposal_vote" */ -export type Proposal_Vote_Aggregate_Order_By = { - avg?: InputMaybe; - count?: InputMaybe; - max?: InputMaybe; - min?: InputMaybe; - stddev?: InputMaybe; - stddev_pop?: InputMaybe; - stddev_samp?: InputMaybe; - sum?: InputMaybe; - var_pop?: InputMaybe; - var_samp?: InputMaybe; - variance?: InputMaybe; -}; - -/** aggregate avg on columns */ -export type Proposal_Vote_Avg_Fields = { - __typename?: 'proposal_vote_avg_fields'; - height?: Maybe; - proposal_id?: Maybe; + account: Provider_Account; + address: Scalars['String']; + end_time: Scalars['timestamp']; + original_vesting: Scalars['_coin']; + start_time?: Maybe; + type: Scalars['String']; + /** An array relationship */ + vesting_periods: Array; }; -/** order by avg() on columns of table "proposal_vote" */ -export type Proposal_Vote_Avg_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; -}; -/** Boolean expression to filter rows from the table "proposal_vote". All fields are combined with a logical 'AND'. */ -export type Proposal_Vote_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - account?: InputMaybe; - block?: InputMaybe; - height?: InputMaybe; - option?: InputMaybe; - proposal?: InputMaybe; - proposal_id?: InputMaybe; - voter_address?: InputMaybe; +/** columns and relationships of "vesting_account" */ +export type Provider_Vesting_AccountVesting_PeriodsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** aggregate max on columns */ -export type Proposal_Vote_Max_Fields = { - __typename?: 'proposal_vote_max_fields'; - height?: Maybe; - option?: Maybe; - proposal_id?: Maybe; - voter_address?: Maybe; +/** order by aggregate values of table "vesting_account" */ +export type Provider_Vesting_Account_Aggregate_Order_By = { + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; }; -/** order by max() on columns of table "proposal_vote" */ -export type Proposal_Vote_Max_Order_By = { - height?: InputMaybe; - option?: InputMaybe; - proposal_id?: InputMaybe; - voter_address?: InputMaybe; +/** Boolean expression to filter rows from the table "vesting_account". All fields are combined with a logical 'AND'. */ +export type Provider_Vesting_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe<_Coin_Comparison_Exp>; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods?: InputMaybe; }; -/** aggregate min on columns */ -export type Proposal_Vote_Min_Fields = { - __typename?: 'proposal_vote_min_fields'; - height?: Maybe; - option?: Maybe; - proposal_id?: Maybe; - voter_address?: Maybe; +/** order by max() on columns of table "vesting_account" */ +export type Provider_Vesting_Account_Max_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; }; -/** order by min() on columns of table "proposal_vote" */ -export type Proposal_Vote_Min_Order_By = { - height?: InputMaybe; - option?: InputMaybe; - proposal_id?: InputMaybe; - voter_address?: InputMaybe; +/** order by min() on columns of table "vesting_account" */ +export type Provider_Vesting_Account_Min_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; }; -/** Ordering options when selecting data from "proposal_vote". */ -export type Proposal_Vote_Order_By = { - account?: InputMaybe; - block?: InputMaybe; - height?: InputMaybe; - option?: InputMaybe; - proposal?: InputMaybe; - proposal_id?: InputMaybe; - voter_address?: InputMaybe; +/** Ordering options when selecting data from "vesting_account". */ +export type Provider_Vesting_Account_Order_By = { + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods_aggregate?: InputMaybe; }; -/** select columns of table "proposal_vote" */ -export enum Proposal_Vote_Select_Column { +/** select columns of table "vesting_account" */ +export enum Provider_Vesting_Account_Select_Column { /** column name */ - Height = 'height', + Address = 'address', /** column name */ - Option = 'option', + EndTime = 'end_time', /** column name */ - ProposalId = 'proposal_id', + OriginalVesting = 'original_vesting', /** column name */ - VoterAddress = 'voter_address' + StartTime = 'start_time', + /** column name */ + Type = 'type' } -/** aggregate stddev on columns */ -export type Proposal_Vote_Stddev_Fields = { - __typename?: 'proposal_vote_stddev_fields'; - height?: Maybe; - proposal_id?: Maybe; +/** Streaming cursor of the table "vesting_account" */ +export type Provider_Vesting_Account_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Vesting_Account_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; }; -/** order by stddev() on columns of table "proposal_vote" */ -export type Proposal_Vote_Stddev_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +/** Initial value of the column from where the streaming should start */ +export type Provider_Vesting_Account_Stream_Cursor_Value_Input = { + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; }; -/** aggregate stddev_pop on columns */ -export type Proposal_Vote_Stddev_Pop_Fields = { - __typename?: 'proposal_vote_stddev_pop_fields'; - height?: Maybe; - proposal_id?: Maybe; +/** columns and relationships of "vesting_period" */ +export type Provider_Vesting_Period = { + __typename?: 'provider_vesting_period'; + amount: Scalars['_coin']; + length: Scalars['bigint']; + period_order: Scalars['bigint']; + /** An object relationship */ + vesting_account: Provider_Vesting_Account; }; -/** order by stddev_pop() on columns of table "proposal_vote" */ -export type Proposal_Vote_Stddev_Pop_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +/** order by aggregate values of table "vesting_period" */ +export type Provider_Vesting_Period_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Proposal_Vote_Stddev_Samp_Fields = { - __typename?: 'proposal_vote_stddev_samp_fields'; - height?: Maybe; - proposal_id?: Maybe; +/** order by avg() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Avg_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; }; -/** order by stddev_samp() on columns of table "proposal_vote" */ -export type Proposal_Vote_Stddev_Samp_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +/** Boolean expression to filter rows from the table "vesting_period". All fields are combined with a logical 'AND'. */ +export type Provider_Vesting_Period_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe<_Coin_Comparison_Exp>; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; }; -/** aggregate sum on columns */ -export type Proposal_Vote_Sum_Fields = { - __typename?: 'proposal_vote_sum_fields'; - height?: Maybe; - proposal_id?: Maybe; +/** order by max() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Max_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; }; -/** order by sum() on columns of table "proposal_vote" */ -export type Proposal_Vote_Sum_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +/** order by min() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Min_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; }; -/** aggregate var_pop on columns */ -export type Proposal_Vote_Var_Pop_Fields = { - __typename?: 'proposal_vote_var_pop_fields'; - height?: Maybe; - proposal_id?: Maybe; +/** Ordering options when selecting data from "vesting_period". */ +export type Provider_Vesting_Period_Order_By = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; }; -/** order by var_pop() on columns of table "proposal_vote" */ -export type Proposal_Vote_Var_Pop_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +/** select columns of table "vesting_period" */ +export enum Provider_Vesting_Period_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + Length = 'length', + /** column name */ + PeriodOrder = 'period_order' +} + +/** order by stddev() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Stddev_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; }; -/** aggregate var_samp on columns */ -export type Proposal_Vote_Var_Samp_Fields = { - __typename?: 'proposal_vote_var_samp_fields'; - height?: Maybe; - proposal_id?: Maybe; +/** order by stddev_pop() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Stddev_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; }; -/** order by var_samp() on columns of table "proposal_vote" */ -export type Proposal_Vote_Var_Samp_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +/** order by stddev_samp() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Stddev_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; }; -/** aggregate variance on columns */ -export type Proposal_Vote_Variance_Fields = { - __typename?: 'proposal_vote_variance_fields'; - height?: Maybe; - proposal_id?: Maybe; +/** Streaming cursor of the table "vesting_period" */ +export type Provider_Vesting_Period_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Vesting_Period_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; }; -/** order by variance() on columns of table "proposal_vote" */ -export type Proposal_Vote_Variance_Order_By = { - height?: InputMaybe; - proposal_id?: InputMaybe; +/** Initial value of the column from where the streaming should start */ +export type Provider_Vesting_Period_Stream_Cursor_Value_Input = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by sum() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Sum_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by var_pop() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Var_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by var_samp() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Var_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by variance() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Variance_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; }; export type Query_Root = { __typename?: 'query_root'; /** fetch data from the table: "account" */ account: Array; - /** fetch aggregated fields from the table: "account" */ - account_aggregate: Account_Aggregate; /** fetch data from the table: "account" using primary key columns */ account_by_pk?: Maybe; action_account_balance?: Maybe; @@ -4839,80 +17281,53 @@ export type Query_Root = { action_validator_unbonding_delegations?: Maybe; /** fetch data from the table: "average_block_time_from_genesis" */ average_block_time_from_genesis: Array; - /** fetch aggregated fields from the table: "average_block_time_from_genesis" */ - average_block_time_from_genesis_aggregate: Average_Block_Time_From_Genesis_Aggregate; /** fetch data from the table: "average_block_time_per_day" */ average_block_time_per_day: Array; - /** fetch aggregated fields from the table: "average_block_time_per_day" */ - average_block_time_per_day_aggregate: Average_Block_Time_Per_Day_Aggregate; /** fetch data from the table: "average_block_time_per_hour" */ average_block_time_per_hour: Array; - /** fetch aggregated fields from the table: "average_block_time_per_hour" */ - average_block_time_per_hour_aggregate: Average_Block_Time_Per_Hour_Aggregate; /** fetch data from the table: "average_block_time_per_minute" */ average_block_time_per_minute: Array; - /** fetch aggregated fields from the table: "average_block_time_per_minute" */ - average_block_time_per_minute_aggregate: Average_Block_Time_Per_Minute_Aggregate; + bdjuno_provider?: Maybe; /** fetch data from the table: "block" */ block: Array; - /** fetch aggregated fields from the table: "block" */ - block_aggregate: Block_Aggregate; /** fetch data from the table: "block" using primary key columns */ block_by_pk?: Maybe; + /** fetch data from the table: "ccv_validator" */ + ccv_validator: Array; + /** fetch aggregated fields from the table: "ccv_validator" */ + ccv_validator_aggregate: Ccv_Validator_Aggregate; + /** fetch data from the table: "ccv_validator" using primary key columns */ + ccv_validator_by_pk?: Maybe; /** fetch data from the table: "community_pool" */ community_pool: Array; - /** fetch aggregated fields from the table: "community_pool" */ - community_pool_aggregate: Community_Pool_Aggregate; /** fetch data from the table: "distribution_params" */ distribution_params: Array; - /** fetch aggregated fields from the table: "distribution_params" */ - distribution_params_aggregate: Distribution_Params_Aggregate; - /** fetch data from the table: "distribution_params" using primary key columns */ - distribution_params_by_pk?: Maybe; /** fetch data from the table: "double_sign_evidence" */ double_sign_evidence: Array; - /** fetch aggregated fields from the table: "double_sign_evidence" */ - double_sign_evidence_aggregate: Double_Sign_Evidence_Aggregate; /** fetch data from the table: "double_sign_vote" */ double_sign_vote: Array; - /** fetch aggregated fields from the table: "double_sign_vote" */ - double_sign_vote_aggregate: Double_Sign_Vote_Aggregate; - /** fetch data from the table: "double_sign_vote" using primary key columns */ - double_sign_vote_by_pk?: Maybe; /** fetch data from the table: "fee_grant_allowance" */ fee_grant_allowance: Array; - /** fetch aggregated fields from the table: "fee_grant_allowance" */ - fee_grant_allowance_aggregate: Fee_Grant_Allowance_Aggregate; - /** fetch data from the table: "fee_grant_allowance" using primary key columns */ - fee_grant_allowance_by_pk?: Maybe; /** fetch data from the table: "genesis" */ genesis: Array; - /** fetch aggregated fields from the table: "genesis" */ - genesis_aggregate: Genesis_Aggregate; /** fetch data from the table: "gov_params" */ gov_params: Array; - /** fetch aggregated fields from the table: "gov_params" */ - gov_params_aggregate: Gov_Params_Aggregate; - /** fetch data from the table: "gov_params" using primary key columns */ - gov_params_by_pk?: Maybe; + /** fetch data from the table: "inflation" */ + inflation: Array; + /** fetch aggregated fields from the table: "inflation" */ + inflation_aggregate: Inflation_Aggregate; + /** fetch data from the table: "inflation" using primary key columns */ + inflation_by_pk?: Maybe; /** fetch data from the table: "message" */ message: Array; - /** fetch aggregated fields from the table: "message" */ - message_aggregate: Message_Aggregate; /** execute function "messages_by_address" which returns "message" */ messages_by_address: Array; - /** execute function "messages_by_address" and query aggregates on result of table type "message" */ - messages_by_address_aggregate: Message_Aggregate; + /** execute function "messages_by_single_address" which returns "message" */ + messages_by_single_address: Array; /** fetch data from the table: "mint_params" */ mint_params: Array; - /** fetch aggregated fields from the table: "mint_params" */ - mint_params_aggregate: Mint_Params_Aggregate; - /** fetch data from the table: "mint_params" using primary key columns */ - mint_params_by_pk?: Maybe; /** fetch data from the table: "modules" */ modules: Array; - /** fetch aggregated fields from the table: "modules" */ - modules_aggregate: Modules_Aggregate; /** fetch data from the table: "modules" using primary key columns */ modules_by_pk?: Maybe; /** fetch data from the table: "pre_commit" */ @@ -4927,100 +17342,59 @@ export type Query_Root = { proposal_by_pk?: Maybe; /** fetch data from the table: "proposal_deposit" */ proposal_deposit: Array; - /** fetch aggregated fields from the table: "proposal_deposit" */ - proposal_deposit_aggregate: Proposal_Deposit_Aggregate; /** fetch data from the table: "proposal_staking_pool_snapshot" */ proposal_staking_pool_snapshot: Array; - /** fetch aggregated fields from the table: "proposal_staking_pool_snapshot" */ - proposal_staking_pool_snapshot_aggregate: Proposal_Staking_Pool_Snapshot_Aggregate; /** fetch data from the table: "proposal_staking_pool_snapshot" using primary key columns */ proposal_staking_pool_snapshot_by_pk?: Maybe; /** fetch data from the table: "proposal_tally_result" */ proposal_tally_result: Array; - /** fetch aggregated fields from the table: "proposal_tally_result" */ - proposal_tally_result_aggregate: Proposal_Tally_Result_Aggregate; /** fetch data from the table: "proposal_tally_result" using primary key columns */ proposal_tally_result_by_pk?: Maybe; /** fetch data from the table: "proposal_validator_status_snapshot" */ proposal_validator_status_snapshot: Array; - /** fetch aggregated fields from the table: "proposal_validator_status_snapshot" */ - proposal_validator_status_snapshot_aggregate: Proposal_Validator_Status_Snapshot_Aggregate; - /** fetch data from the table: "proposal_validator_status_snapshot" using primary key columns */ - proposal_validator_status_snapshot_by_pk?: Maybe; /** fetch data from the table: "proposal_vote" */ proposal_vote: Array; - /** fetch aggregated fields from the table: "proposal_vote" */ - proposal_vote_aggregate: Proposal_Vote_Aggregate; + provider?: Maybe; /** fetch data from the table: "slashing_params" */ slashing_params: Array; - /** fetch aggregated fields from the table: "slashing_params" */ - slashing_params_aggregate: Slashing_Params_Aggregate; - /** fetch data from the table: "slashing_params" using primary key columns */ - slashing_params_by_pk?: Maybe; + /** fetch data from the table: "software_upgrade_plan" */ + software_upgrade_plan: Array; + /** fetch aggregated fields from the table: "software_upgrade_plan" */ + software_upgrade_plan_aggregate: Software_Upgrade_Plan_Aggregate; /** fetch data from the table: "staking_params" */ staking_params: Array; - /** fetch aggregated fields from the table: "staking_params" */ - staking_params_aggregate: Staking_Params_Aggregate; - /** fetch data from the table: "staking_params" using primary key columns */ - staking_params_by_pk?: Maybe; /** fetch data from the table: "staking_pool" */ staking_pool: Array; - /** fetch aggregated fields from the table: "staking_pool" */ - staking_pool_aggregate: Staking_Pool_Aggregate; /** fetch data from the table: "supply" */ supply: Array; - /** fetch aggregated fields from the table: "supply" */ - supply_aggregate: Supply_Aggregate; /** fetch data from the table: "token" */ token: Array; - /** fetch aggregated fields from the table: "token" */ - token_aggregate: Token_Aggregate; /** fetch data from the table: "token_price" */ token_price: Array; - /** fetch aggregated fields from the table: "token_price" */ - token_price_aggregate: Token_Price_Aggregate; - /** fetch data from the table: "token_price" using primary key columns */ - token_price_by_pk?: Maybe; /** fetch data from the table: "token_price_history" */ token_price_history: Array; - /** fetch aggregated fields from the table: "token_price_history" */ - token_price_history_aggregate: Token_Price_History_Aggregate; /** fetch data from the table: "token_unit" */ token_unit: Array; - /** fetch aggregated fields from the table: "token_unit" */ - token_unit_aggregate: Token_Unit_Aggregate; /** fetch data from the table: "transaction" */ transaction: Array; - /** fetch aggregated fields from the table: "transaction" */ - transaction_aggregate: Transaction_Aggregate; /** fetch data from the table: "validator" */ validator: Array; - /** fetch aggregated fields from the table: "validator" */ - validator_aggregate: Validator_Aggregate; /** fetch data from the table: "validator" using primary key columns */ validator_by_pk?: Maybe; /** fetch data from the table: "validator_commission" */ validator_commission: Array; - /** fetch aggregated fields from the table: "validator_commission" */ - validator_commission_aggregate: Validator_Commission_Aggregate; /** fetch data from the table: "validator_commission" using primary key columns */ validator_commission_by_pk?: Maybe; /** fetch data from the table: "validator_description" */ validator_description: Array; - /** fetch aggregated fields from the table: "validator_description" */ - validator_description_aggregate: Validator_Description_Aggregate; /** fetch data from the table: "validator_description" using primary key columns */ validator_description_by_pk?: Maybe; /** fetch data from the table: "validator_info" */ validator_info: Array; - /** fetch aggregated fields from the table: "validator_info" */ - validator_info_aggregate: Validator_Info_Aggregate; /** fetch data from the table: "validator_info" using primary key columns */ validator_info_by_pk?: Maybe; /** fetch data from the table: "validator_signing_info" */ validator_signing_info: Array; - /** fetch aggregated fields from the table: "validator_signing_info" */ - validator_signing_info_aggregate: Validator_Signing_Info_Aggregate; /** fetch data from the table: "validator_signing_info" using primary key columns */ validator_signing_info_by_pk?: Maybe; /** fetch data from the table: "validator_status" */ @@ -5037,14 +17411,8 @@ export type Query_Root = { validator_voting_power_by_pk?: Maybe; /** fetch data from the table: "vesting_account" */ vesting_account: Array; - /** fetch aggregated fields from the table: "vesting_account" */ - vesting_account_aggregate: Vesting_Account_Aggregate; - /** fetch data from the table: "vesting_account" using primary key columns */ - vesting_account_by_pk?: Maybe; /** fetch data from the table: "vesting_period" */ vesting_period: Array; - /** fetch aggregated fields from the table: "vesting_period" */ - vesting_period_aggregate: Vesting_Period_Aggregate; }; @@ -5057,15 +17425,6 @@ export type Query_RootAccountArgs = { }; -export type Query_RootAccount_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootAccount_By_PkArgs = { address: Scalars['String']; }; @@ -5166,15 +17525,6 @@ export type Query_RootAverage_Block_Time_From_GenesisArgs = { }; -export type Query_RootAverage_Block_Time_From_Genesis_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootAverage_Block_Time_Per_DayArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5184,15 +17534,6 @@ export type Query_RootAverage_Block_Time_Per_DayArgs = { }; -export type Query_RootAverage_Block_Time_Per_Day_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootAverage_Block_Time_Per_HourArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5202,15 +17543,6 @@ export type Query_RootAverage_Block_Time_Per_HourArgs = { }; -export type Query_RootAverage_Block_Time_Per_Hour_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootAverage_Block_Time_Per_MinuteArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5220,15 +17552,6 @@ export type Query_RootAverage_Block_Time_Per_MinuteArgs = { }; -export type Query_RootAverage_Block_Time_Per_Minute_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootBlockArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5238,71 +17561,53 @@ export type Query_RootBlockArgs = { }; -export type Query_RootBlock_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootBlock_By_PkArgs = { height: Scalars['bigint']; }; -export type Query_RootCommunity_PoolArgs = { - distinct_on?: InputMaybe>; +export type Query_RootCcv_ValidatorArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -export type Query_RootCommunity_Pool_AggregateArgs = { - distinct_on?: InputMaybe>; +export type Query_RootCcv_Validator_AggregateArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -export type Query_RootDistribution_ParamsArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Query_RootCcv_Validator_By_PkArgs = { + consumer_consensus_address: Scalars['String']; }; -export type Query_RootDistribution_Params_AggregateArgs = { - distinct_on?: InputMaybe>; +export type Query_RootCommunity_PoolArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - -export type Query_RootDistribution_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; + order_by?: InputMaybe>; + where?: InputMaybe; }; - -export type Query_RootDouble_Sign_EvidenceArgs = { - distinct_on?: InputMaybe>; + +export type Query_RootDistribution_ParamsArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -export type Query_RootDouble_Sign_Evidence_AggregateArgs = { +export type Query_RootDouble_Sign_EvidenceArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -5320,20 +17625,6 @@ export type Query_RootDouble_Sign_VoteArgs = { }; -export type Query_RootDouble_Sign_Vote_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - -export type Query_RootDouble_Sign_Vote_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Query_RootFee_Grant_AllowanceArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5343,20 +17634,6 @@ export type Query_RootFee_Grant_AllowanceArgs = { }; -export type Query_RootFee_Grant_Allowance_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - -export type Query_RootFee_Grant_Allowance_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Query_RootGenesisArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5366,15 +17643,6 @@ export type Query_RootGenesisArgs = { }; -export type Query_RootGenesis_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootGov_ParamsArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5384,30 +17652,30 @@ export type Query_RootGov_ParamsArgs = { }; -export type Query_RootGov_Params_AggregateArgs = { - distinct_on?: InputMaybe>; +export type Query_RootInflationArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -export type Query_RootGov_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; +export type Query_RootInflation_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -export type Query_RootMessageArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Query_RootInflation_By_PkArgs = { + one_row_id: Scalars['Boolean']; }; -export type Query_RootMessage_AggregateArgs = { +export type Query_RootMessageArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -5426,8 +17694,8 @@ export type Query_RootMessages_By_AddressArgs = { }; -export type Query_RootMessages_By_Address_AggregateArgs = { - args: Messages_By_Address_Args; +export type Query_RootMessages_By_Single_AddressArgs = { + args: Messages_By_Single_Address_Args; distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -5445,20 +17713,6 @@ export type Query_RootMint_ParamsArgs = { }; -export type Query_RootMint_Params_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - -export type Query_RootMint_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; -}; - - export type Query_RootModulesArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5468,15 +17722,6 @@ export type Query_RootModulesArgs = { }; -export type Query_RootModules_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootModules_By_PkArgs = { module_name: Scalars['String']; }; @@ -5532,15 +17777,6 @@ export type Query_RootProposal_DepositArgs = { }; -export type Query_RootProposal_Deposit_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootProposal_Staking_Pool_SnapshotArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5550,15 +17786,6 @@ export type Query_RootProposal_Staking_Pool_SnapshotArgs = { }; -export type Query_RootProposal_Staking_Pool_Snapshot_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootProposal_Staking_Pool_Snapshot_By_PkArgs = { proposal_id: Scalars['Int']; }; @@ -5573,15 +17800,6 @@ export type Query_RootProposal_Tally_ResultArgs = { }; -export type Query_RootProposal_Tally_Result_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootProposal_Tally_Result_By_PkArgs = { proposal_id: Scalars['Int']; }; @@ -5596,20 +17814,6 @@ export type Query_RootProposal_Validator_Status_SnapshotArgs = { }; -export type Query_RootProposal_Validator_Status_Snapshot_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - -export type Query_RootProposal_Validator_Status_Snapshot_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Query_RootProposal_VoteArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5619,15 +17823,6 @@ export type Query_RootProposal_VoteArgs = { }; -export type Query_RootProposal_Vote_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootSlashing_ParamsArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5637,30 +17832,25 @@ export type Query_RootSlashing_ParamsArgs = { }; -export type Query_RootSlashing_Params_AggregateArgs = { - distinct_on?: InputMaybe>; +export type Query_RootSoftware_Upgrade_PlanArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - -export type Query_RootSlashing_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; + order_by?: InputMaybe>; + where?: InputMaybe; }; -export type Query_RootStaking_ParamsArgs = { - distinct_on?: InputMaybe>; +export type Query_RootSoftware_Upgrade_Plan_AggregateArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -export type Query_RootStaking_Params_AggregateArgs = { +export type Query_RootStaking_ParamsArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -5669,11 +17859,6 @@ export type Query_RootStaking_Params_AggregateArgs = { }; -export type Query_RootStaking_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; -}; - - export type Query_RootStaking_PoolArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5683,15 +17868,6 @@ export type Query_RootStaking_PoolArgs = { }; -export type Query_RootStaking_Pool_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootSupplyArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5701,15 +17877,6 @@ export type Query_RootSupplyArgs = { }; -export type Query_RootSupply_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootTokenArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5719,15 +17886,6 @@ export type Query_RootTokenArgs = { }; -export type Query_RootToken_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootToken_PriceArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5737,20 +17895,6 @@ export type Query_RootToken_PriceArgs = { }; -export type Query_RootToken_Price_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - -export type Query_RootToken_Price_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Query_RootToken_Price_HistoryArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5760,15 +17904,6 @@ export type Query_RootToken_Price_HistoryArgs = { }; -export type Query_RootToken_Price_History_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootToken_UnitArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5778,15 +17913,6 @@ export type Query_RootToken_UnitArgs = { }; -export type Query_RootToken_Unit_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootTransactionArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5796,15 +17922,6 @@ export type Query_RootTransactionArgs = { }; -export type Query_RootTransaction_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootValidatorArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5814,15 +17931,6 @@ export type Query_RootValidatorArgs = { }; -export type Query_RootValidator_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootValidator_By_PkArgs = { consensus_address: Scalars['String']; }; @@ -5837,15 +17945,6 @@ export type Query_RootValidator_CommissionArgs = { }; -export type Query_RootValidator_Commission_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootValidator_Commission_By_PkArgs = { validator_address: Scalars['String']; }; @@ -5860,15 +17959,6 @@ export type Query_RootValidator_DescriptionArgs = { }; -export type Query_RootValidator_Description_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootValidator_Description_By_PkArgs = { validator_address: Scalars['String']; }; @@ -5883,15 +17973,6 @@ export type Query_RootValidator_InfoArgs = { }; -export type Query_RootValidator_Info_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootValidator_Info_By_PkArgs = { consensus_address: Scalars['String']; }; @@ -5906,15 +17987,6 @@ export type Query_RootValidator_Signing_InfoArgs = { }; -export type Query_RootValidator_Signing_Info_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootValidator_Signing_Info_By_PkArgs = { validator_address: Scalars['String']; }; @@ -5970,35 +18042,12 @@ export type Query_RootVesting_AccountArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - -export type Query_RootVesting_Account_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - -export type Query_RootVesting_Account_By_PkArgs = { - id: Scalars['Int']; -}; - - -export type Query_RootVesting_PeriodArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -export type Query_RootVesting_Period_AggregateArgs = { +export type Query_RootVesting_PeriodArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -6010,7 +18059,6 @@ export type Query_RootVesting_Period_AggregateArgs = { export type Slashing_Params = { __typename?: 'slashing_params'; height: Scalars['bigint']; - one_row_id: Scalars['Boolean']; params: Scalars['jsonb']; }; @@ -6020,68 +18068,18 @@ export type Slashing_ParamsParamsArgs = { path?: InputMaybe; }; -/** aggregated selection of "slashing_params" */ -export type Slashing_Params_Aggregate = { - __typename?: 'slashing_params_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "slashing_params" */ -export type Slashing_Params_Aggregate_Fields = { - __typename?: 'slashing_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 "slashing_params" */ -export type Slashing_Params_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - -/** aggregate avg on columns */ -export type Slashing_Params_Avg_Fields = { - __typename?: 'slashing_params_avg_fields'; - height?: Maybe; -}; - /** Boolean expression to filter rows from the table "slashing_params". All fields are combined with a logical 'AND'. */ export type Slashing_Params_Bool_Exp = { _and?: InputMaybe>; _not?: InputMaybe; _or?: InputMaybe>; height?: InputMaybe; - one_row_id?: InputMaybe; params?: InputMaybe; }; -/** aggregate max on columns */ -export type Slashing_Params_Max_Fields = { - __typename?: 'slashing_params_max_fields'; - height?: Maybe; -}; - -/** aggregate min on columns */ -export type Slashing_Params_Min_Fields = { - __typename?: 'slashing_params_min_fields'; - height?: Maybe; -}; - /** Ordering options when selecting data from "slashing_params". */ export type Slashing_Params_Order_By = { height?: InputMaybe; - one_row_id?: InputMaybe; params?: InputMaybe; }; @@ -6090,51 +18088,21 @@ export enum Slashing_Params_Select_Column { /** column name */ Height = 'height', /** column name */ - OneRowId = 'one_row_id', - /** column name */ Params = 'params' } -/** aggregate stddev on columns */ -export type Slashing_Params_Stddev_Fields = { - __typename?: 'slashing_params_stddev_fields'; - height?: Maybe; -}; - -/** aggregate stddev_pop on columns */ -export type Slashing_Params_Stddev_Pop_Fields = { - __typename?: 'slashing_params_stddev_pop_fields'; - height?: Maybe; -}; - -/** aggregate stddev_samp on columns */ -export type Slashing_Params_Stddev_Samp_Fields = { - __typename?: 'slashing_params_stddev_samp_fields'; - height?: Maybe; -}; - -/** aggregate sum on columns */ -export type Slashing_Params_Sum_Fields = { - __typename?: 'slashing_params_sum_fields'; - height?: Maybe; -}; - -/** aggregate var_pop on columns */ -export type Slashing_Params_Var_Pop_Fields = { - __typename?: 'slashing_params_var_pop_fields'; - height?: Maybe; -}; - -/** aggregate var_samp on columns */ -export type Slashing_Params_Var_Samp_Fields = { - __typename?: 'slashing_params_var_samp_fields'; - height?: Maybe; +/** Streaming cursor of the table "slashing_params" */ +export type Slashing_Params_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Slashing_Params_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; }; -/** aggregate variance on columns */ -export type Slashing_Params_Variance_Fields = { - __typename?: 'slashing_params_variance_fields'; - height?: Maybe; +/** Initial value of the column from where the streaming should start */ +export type Slashing_Params_Stream_Cursor_Value_Input = { + height?: InputMaybe; + params?: InputMaybe; }; /** Boolean expression to compare columns of type "smallint". All fields are combined with logical 'AND'. */ @@ -6150,181 +18118,244 @@ export type Smallint_Comparison_Exp = { _nin?: InputMaybe>; }; -/** columns and relationships of "staking_params" */ -export type Staking_Params = { - __typename?: 'staking_params'; +/** columns and relationships of "software_upgrade_plan" */ +export type Software_Upgrade_Plan = { + __typename?: 'software_upgrade_plan'; height: Scalars['bigint']; - one_row_id: Scalars['Boolean']; - params: Scalars['jsonb']; -}; - - -/** columns and relationships of "staking_params" */ -export type Staking_ParamsParamsArgs = { - path?: InputMaybe; + info: Scalars['String']; + plan_name: Scalars['String']; + /** An object relationship */ + proposal?: Maybe; + proposal_id?: Maybe; + upgrade_height: Scalars['bigint']; }; -/** aggregated selection of "staking_params" */ -export type Staking_Params_Aggregate = { - __typename?: 'staking_params_aggregate'; - aggregate?: Maybe; - nodes: Array; +/** aggregated selection of "software_upgrade_plan" */ +export type Software_Upgrade_Plan_Aggregate = { + __typename?: 'software_upgrade_plan_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "staking_params" */ -export type Staking_Params_Aggregate_Fields = { - __typename?: 'staking_params_aggregate_fields'; - avg?: Maybe; +/** aggregate fields of "software_upgrade_plan" */ +export type Software_Upgrade_Plan_Aggregate_Fields = { + __typename?: 'software_upgrade_plan_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 "staking_params" */ -export type Staking_Params_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +/** aggregate fields of "software_upgrade_plan" */ +export type Software_Upgrade_Plan_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; /** aggregate avg on columns */ -export type Staking_Params_Avg_Fields = { - __typename?: 'staking_params_avg_fields'; +export type Software_Upgrade_Plan_Avg_Fields = { + __typename?: 'software_upgrade_plan_avg_fields'; height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; }; -/** Boolean expression to filter rows from the table "staking_params". All fields are combined with a logical 'AND'. */ -export type Staking_Params_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; +/** Boolean expression to filter rows from the table "software_upgrade_plan". All fields are combined with a logical 'AND'. */ +export type Software_Upgrade_Plan_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; height?: InputMaybe; - one_row_id?: InputMaybe; - params?: InputMaybe; + info?: InputMaybe; + plan_name?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + upgrade_height?: InputMaybe; }; /** aggregate max on columns */ -export type Staking_Params_Max_Fields = { - __typename?: 'staking_params_max_fields'; +export type Software_Upgrade_Plan_Max_Fields = { + __typename?: 'software_upgrade_plan_max_fields'; height?: Maybe; + info?: Maybe; + plan_name?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; }; /** aggregate min on columns */ -export type Staking_Params_Min_Fields = { - __typename?: 'staking_params_min_fields'; +export type Software_Upgrade_Plan_Min_Fields = { + __typename?: 'software_upgrade_plan_min_fields'; height?: Maybe; + info?: Maybe; + plan_name?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; }; -/** Ordering options when selecting data from "staking_params". */ -export type Staking_Params_Order_By = { +/** Ordering options when selecting data from "software_upgrade_plan". */ +export type Software_Upgrade_Plan_Order_By = { height?: InputMaybe; - one_row_id?: InputMaybe; - params?: InputMaybe; + info?: InputMaybe; + plan_name?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + upgrade_height?: InputMaybe; }; -/** select columns of table "staking_params" */ -export enum Staking_Params_Select_Column { +/** select columns of table "software_upgrade_plan" */ +export enum Software_Upgrade_Plan_Select_Column { /** column name */ Height = 'height', /** column name */ - OneRowId = 'one_row_id', + Info = 'info', /** column name */ - Params = 'params' + PlanName = 'plan_name', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + UpgradeHeight = 'upgrade_height' } /** aggregate stddev on columns */ -export type Staking_Params_Stddev_Fields = { - __typename?: 'staking_params_stddev_fields'; +export type Software_Upgrade_Plan_Stddev_Fields = { + __typename?: 'software_upgrade_plan_stddev_fields'; height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; }; /** aggregate stddev_pop on columns */ -export type Staking_Params_Stddev_Pop_Fields = { - __typename?: 'staking_params_stddev_pop_fields'; +export type Software_Upgrade_Plan_Stddev_Pop_Fields = { + __typename?: 'software_upgrade_plan_stddev_pop_fields'; height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; }; /** aggregate stddev_samp on columns */ -export type Staking_Params_Stddev_Samp_Fields = { - __typename?: 'staking_params_stddev_samp_fields'; +export type Software_Upgrade_Plan_Stddev_Samp_Fields = { + __typename?: 'software_upgrade_plan_stddev_samp_fields'; height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +/** Streaming cursor of the table "software_upgrade_plan" */ +export type Software_Upgrade_Plan_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Software_Upgrade_Plan_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Software_Upgrade_Plan_Stream_Cursor_Value_Input = { + height?: InputMaybe; + info?: InputMaybe; + plan_name?: InputMaybe; + proposal_id?: InputMaybe; + upgrade_height?: InputMaybe; }; /** aggregate sum on columns */ -export type Staking_Params_Sum_Fields = { - __typename?: 'staking_params_sum_fields'; +export type Software_Upgrade_Plan_Sum_Fields = { + __typename?: 'software_upgrade_plan_sum_fields'; height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; }; /** aggregate var_pop on columns */ -export type Staking_Params_Var_Pop_Fields = { - __typename?: 'staking_params_var_pop_fields'; +export type Software_Upgrade_Plan_Var_Pop_Fields = { + __typename?: 'software_upgrade_plan_var_pop_fields'; height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; }; /** aggregate var_samp on columns */ -export type Staking_Params_Var_Samp_Fields = { - __typename?: 'staking_params_var_samp_fields'; +export type Software_Upgrade_Plan_Var_Samp_Fields = { + __typename?: 'software_upgrade_plan_var_samp_fields'; height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; }; /** aggregate variance on columns */ -export type Staking_Params_Variance_Fields = { - __typename?: 'staking_params_variance_fields'; +export type Software_Upgrade_Plan_Variance_Fields = { + __typename?: 'software_upgrade_plan_variance_fields'; height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; }; -/** columns and relationships of "staking_pool" */ -export type Staking_Pool = { - __typename?: 'staking_pool'; - bonded_tokens: Scalars['String']; +/** columns and relationships of "staking_params" */ +export type Staking_Params = { + __typename?: 'staking_params'; height: Scalars['bigint']; - not_bonded_tokens: Scalars['String']; - staked_not_bonded_tokens: Scalars['String']; - unbonding_tokens: Scalars['String']; + params: Scalars['jsonb']; }; -/** aggregated selection of "staking_pool" */ -export type Staking_Pool_Aggregate = { - __typename?: 'staking_pool_aggregate'; - aggregate?: Maybe; - nodes: Array; + +/** columns and relationships of "staking_params" */ +export type Staking_ParamsParamsArgs = { + path?: InputMaybe; }; -/** aggregate fields of "staking_pool" */ -export type Staking_Pool_Aggregate_Fields = { - __typename?: 'staking_pool_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; +/** Boolean expression to filter rows from the table "staking_params". All fields are combined with a logical 'AND'. */ +export type Staking_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + params?: InputMaybe; }; +/** Ordering options when selecting data from "staking_params". */ +export type Staking_Params_Order_By = { + height?: InputMaybe; + params?: InputMaybe; +}; -/** aggregate fields of "staking_pool" */ -export type Staking_Pool_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; +/** select columns of table "staking_params" */ +export enum Staking_Params_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Params = 'params' +} + +/** Streaming cursor of the table "staking_params" */ +export type Staking_Params_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Staking_Params_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; }; -/** aggregate avg on columns */ -export type Staking_Pool_Avg_Fields = { - __typename?: 'staking_pool_avg_fields'; - height?: Maybe; +/** Initial value of the column from where the streaming should start */ +export type Staking_Params_Stream_Cursor_Value_Input = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** columns and relationships of "staking_pool" */ +export type Staking_Pool = { + __typename?: 'staking_pool'; + bonded_tokens: Scalars['String']; + height: Scalars['bigint']; + not_bonded_tokens: Scalars['String']; + staked_not_bonded_tokens: Scalars['String']; + unbonding_tokens: Scalars['String']; }; /** Boolean expression to filter rows from the table "staking_pool". All fields are combined with a logical 'AND'. */ @@ -6339,26 +18370,6 @@ export type Staking_Pool_Bool_Exp = { unbonding_tokens?: InputMaybe; }; -/** aggregate max on columns */ -export type Staking_Pool_Max_Fields = { - __typename?: 'staking_pool_max_fields'; - bonded_tokens?: Maybe; - height?: Maybe; - not_bonded_tokens?: Maybe; - staked_not_bonded_tokens?: Maybe; - unbonding_tokens?: Maybe; -}; - -/** aggregate min on columns */ -export type Staking_Pool_Min_Fields = { - __typename?: 'staking_pool_min_fields'; - bonded_tokens?: Maybe; - height?: Maybe; - not_bonded_tokens?: Maybe; - staked_not_bonded_tokens?: Maybe; - unbonding_tokens?: Maybe; -}; - /** Ordering options when selecting data from "staking_pool". */ export type Staking_Pool_Order_By = { bonded_tokens?: InputMaybe; @@ -6382,138 +18393,121 @@ export enum Staking_Pool_Select_Column { UnbondingTokens = 'unbonding_tokens' } -/** aggregate stddev on columns */ -export type Staking_Pool_Stddev_Fields = { - __typename?: 'staking_pool_stddev_fields'; - height?: Maybe; -}; - -/** aggregate stddev_pop on columns */ -export type Staking_Pool_Stddev_Pop_Fields = { - __typename?: 'staking_pool_stddev_pop_fields'; - height?: Maybe; -}; - -/** aggregate stddev_samp on columns */ -export type Staking_Pool_Stddev_Samp_Fields = { - __typename?: 'staking_pool_stddev_samp_fields'; - height?: Maybe; -}; - -/** aggregate sum on columns */ -export type Staking_Pool_Sum_Fields = { - __typename?: 'staking_pool_sum_fields'; - height?: Maybe; -}; - -/** aggregate var_pop on columns */ -export type Staking_Pool_Var_Pop_Fields = { - __typename?: 'staking_pool_var_pop_fields'; - height?: Maybe; -}; - -/** aggregate var_samp on columns */ -export type Staking_Pool_Var_Samp_Fields = { - __typename?: 'staking_pool_var_samp_fields'; - height?: Maybe; +/** Streaming cursor of the table "staking_pool" */ +export type Staking_Pool_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Staking_Pool_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; }; -/** aggregate variance on columns */ -export type Staking_Pool_Variance_Fields = { - __typename?: 'staking_pool_variance_fields'; - height?: Maybe; +/** Initial value of the column from where the streaming should start */ +export type Staking_Pool_Stream_Cursor_Value_Input = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + staked_not_bonded_tokens?: InputMaybe; + unbonding_tokens?: InputMaybe; }; export type Subscription_Root = { __typename?: 'subscription_root'; /** fetch data from the table: "account" */ account: Array; - /** fetch aggregated fields from the table: "account" */ - account_aggregate: Account_Aggregate; /** fetch data from the table: "account" using primary key columns */ account_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "account" */ + account_stream: Array; /** fetch data from the table: "average_block_time_from_genesis" */ average_block_time_from_genesis: Array; - /** fetch aggregated fields from the table: "average_block_time_from_genesis" */ - average_block_time_from_genesis_aggregate: Average_Block_Time_From_Genesis_Aggregate; + /** fetch data from the table in a streaming manner: "average_block_time_from_genesis" */ + average_block_time_from_genesis_stream: Array; /** fetch data from the table: "average_block_time_per_day" */ average_block_time_per_day: Array; - /** fetch aggregated fields from the table: "average_block_time_per_day" */ - average_block_time_per_day_aggregate: Average_Block_Time_Per_Day_Aggregate; + /** fetch data from the table in a streaming manner: "average_block_time_per_day" */ + average_block_time_per_day_stream: Array; /** fetch data from the table: "average_block_time_per_hour" */ average_block_time_per_hour: Array; - /** fetch aggregated fields from the table: "average_block_time_per_hour" */ - average_block_time_per_hour_aggregate: Average_Block_Time_Per_Hour_Aggregate; + /** fetch data from the table in a streaming manner: "average_block_time_per_hour" */ + average_block_time_per_hour_stream: Array; /** fetch data from the table: "average_block_time_per_minute" */ average_block_time_per_minute: Array; - /** fetch aggregated fields from the table: "average_block_time_per_minute" */ - average_block_time_per_minute_aggregate: Average_Block_Time_Per_Minute_Aggregate; + /** fetch data from the table in a streaming manner: "average_block_time_per_minute" */ + average_block_time_per_minute_stream: Array; /** fetch data from the table: "block" */ block: Array; - /** fetch aggregated fields from the table: "block" */ - block_aggregate: Block_Aggregate; /** fetch data from the table: "block" using primary key columns */ block_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "block" */ + block_stream: Array; + /** fetch data from the table: "ccv_validator" */ + ccv_validator: Array; + /** fetch aggregated fields from the table: "ccv_validator" */ + ccv_validator_aggregate: Ccv_Validator_Aggregate; + /** fetch data from the table: "ccv_validator" using primary key columns */ + ccv_validator_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "ccv_validator" */ + ccv_validator_stream: Array; /** fetch data from the table: "community_pool" */ community_pool: Array; - /** fetch aggregated fields from the table: "community_pool" */ - community_pool_aggregate: Community_Pool_Aggregate; + /** fetch data from the table in a streaming manner: "community_pool" */ + community_pool_stream: Array; /** fetch data from the table: "distribution_params" */ distribution_params: Array; - /** fetch aggregated fields from the table: "distribution_params" */ - distribution_params_aggregate: Distribution_Params_Aggregate; - /** fetch data from the table: "distribution_params" using primary key columns */ - distribution_params_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "distribution_params" */ + distribution_params_stream: Array; /** fetch data from the table: "double_sign_evidence" */ double_sign_evidence: Array; - /** fetch aggregated fields from the table: "double_sign_evidence" */ - double_sign_evidence_aggregate: Double_Sign_Evidence_Aggregate; + /** fetch data from the table in a streaming manner: "double_sign_evidence" */ + double_sign_evidence_stream: Array; /** fetch data from the table: "double_sign_vote" */ double_sign_vote: Array; - /** fetch aggregated fields from the table: "double_sign_vote" */ - double_sign_vote_aggregate: Double_Sign_Vote_Aggregate; - /** fetch data from the table: "double_sign_vote" using primary key columns */ - double_sign_vote_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "double_sign_vote" */ + double_sign_vote_stream: Array; /** fetch data from the table: "fee_grant_allowance" */ fee_grant_allowance: Array; - /** fetch aggregated fields from the table: "fee_grant_allowance" */ - fee_grant_allowance_aggregate: Fee_Grant_Allowance_Aggregate; - /** fetch data from the table: "fee_grant_allowance" using primary key columns */ - fee_grant_allowance_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "fee_grant_allowance" */ + fee_grant_allowance_stream: Array; /** fetch data from the table: "genesis" */ genesis: Array; - /** fetch aggregated fields from the table: "genesis" */ - genesis_aggregate: Genesis_Aggregate; + /** fetch data from the table in a streaming manner: "genesis" */ + genesis_stream: Array; /** fetch data from the table: "gov_params" */ gov_params: Array; - /** fetch aggregated fields from the table: "gov_params" */ - gov_params_aggregate: Gov_Params_Aggregate; - /** fetch data from the table: "gov_params" using primary key columns */ - gov_params_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "gov_params" */ + gov_params_stream: Array; + /** fetch data from the table: "inflation" */ + inflation: Array; + /** fetch aggregated fields from the table: "inflation" */ + inflation_aggregate: Inflation_Aggregate; + /** fetch data from the table: "inflation" using primary key columns */ + inflation_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "inflation" */ + inflation_stream: Array; /** fetch data from the table: "message" */ message: Array; - /** fetch aggregated fields from the table: "message" */ - message_aggregate: Message_Aggregate; + /** fetch data from the table in a streaming manner: "message" */ + message_stream: Array; /** execute function "messages_by_address" which returns "message" */ messages_by_address: Array; - /** execute function "messages_by_address" and query aggregates on result of table type "message" */ - messages_by_address_aggregate: Message_Aggregate; + /** execute function "messages_by_single_address" which returns "message" */ + messages_by_single_address: Array; /** fetch data from the table: "mint_params" */ mint_params: Array; - /** fetch aggregated fields from the table: "mint_params" */ - mint_params_aggregate: Mint_Params_Aggregate; - /** fetch data from the table: "mint_params" using primary key columns */ - mint_params_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "mint_params" */ + mint_params_stream: Array; /** fetch data from the table: "modules" */ modules: Array; - /** fetch aggregated fields from the table: "modules" */ - modules_aggregate: Modules_Aggregate; /** fetch data from the table: "modules" using primary key columns */ modules_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "modules" */ + modules_stream: Array; /** fetch data from the table: "pre_commit" */ pre_commit: Array; /** fetch aggregated fields from the table: "pre_commit" */ pre_commit_aggregate: Pre_Commit_Aggregate; + /** fetch data from the table in a streaming manner: "pre_commit" */ + pre_commit_stream: Array; /** fetch data from the table: "proposal" */ proposal: Array; /** fetch aggregated fields from the table: "proposal" */ @@ -6522,124 +18516,127 @@ export type Subscription_Root = { proposal_by_pk?: Maybe; /** fetch data from the table: "proposal_deposit" */ proposal_deposit: Array; - /** fetch aggregated fields from the table: "proposal_deposit" */ - proposal_deposit_aggregate: Proposal_Deposit_Aggregate; + /** fetch data from the table in a streaming manner: "proposal_deposit" */ + proposal_deposit_stream: Array; /** fetch data from the table: "proposal_staking_pool_snapshot" */ proposal_staking_pool_snapshot: Array; - /** fetch aggregated fields from the table: "proposal_staking_pool_snapshot" */ - proposal_staking_pool_snapshot_aggregate: Proposal_Staking_Pool_Snapshot_Aggregate; /** fetch data from the table: "proposal_staking_pool_snapshot" using primary key columns */ proposal_staking_pool_snapshot_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "proposal_staking_pool_snapshot" */ + proposal_staking_pool_snapshot_stream: Array; + /** fetch data from the table in a streaming manner: "proposal" */ + proposal_stream: Array; /** fetch data from the table: "proposal_tally_result" */ proposal_tally_result: Array; - /** fetch aggregated fields from the table: "proposal_tally_result" */ - proposal_tally_result_aggregate: Proposal_Tally_Result_Aggregate; /** fetch data from the table: "proposal_tally_result" using primary key columns */ proposal_tally_result_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "proposal_tally_result" */ + proposal_tally_result_stream: Array; /** fetch data from the table: "proposal_validator_status_snapshot" */ proposal_validator_status_snapshot: Array; - /** fetch aggregated fields from the table: "proposal_validator_status_snapshot" */ - proposal_validator_status_snapshot_aggregate: Proposal_Validator_Status_Snapshot_Aggregate; - /** fetch data from the table: "proposal_validator_status_snapshot" using primary key columns */ - proposal_validator_status_snapshot_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "proposal_validator_status_snapshot" */ + proposal_validator_status_snapshot_stream: Array; /** fetch data from the table: "proposal_vote" */ proposal_vote: Array; - /** fetch aggregated fields from the table: "proposal_vote" */ - proposal_vote_aggregate: Proposal_Vote_Aggregate; + /** fetch data from the table in a streaming manner: "proposal_vote" */ + proposal_vote_stream: Array; + provider?: Maybe; /** fetch data from the table: "slashing_params" */ slashing_params: Array; - /** fetch aggregated fields from the table: "slashing_params" */ - slashing_params_aggregate: Slashing_Params_Aggregate; - /** fetch data from the table: "slashing_params" using primary key columns */ - slashing_params_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "slashing_params" */ + slashing_params_stream: Array; + /** fetch data from the table: "software_upgrade_plan" */ + software_upgrade_plan: Array; + /** fetch aggregated fields from the table: "software_upgrade_plan" */ + software_upgrade_plan_aggregate: Software_Upgrade_Plan_Aggregate; + /** fetch data from the table in a streaming manner: "software_upgrade_plan" */ + software_upgrade_plan_stream: Array; /** fetch data from the table: "staking_params" */ staking_params: Array; - /** fetch aggregated fields from the table: "staking_params" */ - staking_params_aggregate: Staking_Params_Aggregate; - /** fetch data from the table: "staking_params" using primary key columns */ - staking_params_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "staking_params" */ + staking_params_stream: Array; /** fetch data from the table: "staking_pool" */ staking_pool: Array; - /** fetch aggregated fields from the table: "staking_pool" */ - staking_pool_aggregate: Staking_Pool_Aggregate; + /** fetch data from the table in a streaming manner: "staking_pool" */ + staking_pool_stream: Array; /** fetch data from the table: "supply" */ supply: Array; - /** fetch aggregated fields from the table: "supply" */ - supply_aggregate: Supply_Aggregate; + /** fetch data from the table in a streaming manner: "supply" */ + supply_stream: Array; /** fetch data from the table: "token" */ token: Array; - /** fetch aggregated fields from the table: "token" */ - token_aggregate: Token_Aggregate; /** fetch data from the table: "token_price" */ token_price: Array; - /** fetch aggregated fields from the table: "token_price" */ - token_price_aggregate: Token_Price_Aggregate; - /** fetch data from the table: "token_price" using primary key columns */ - token_price_by_pk?: Maybe; /** fetch data from the table: "token_price_history" */ token_price_history: Array; - /** fetch aggregated fields from the table: "token_price_history" */ - token_price_history_aggregate: Token_Price_History_Aggregate; + /** fetch data from the table in a streaming manner: "token_price_history" */ + token_price_history_stream: Array; + /** fetch data from the table in a streaming manner: "token_price" */ + token_price_stream: Array; + /** fetch data from the table in a streaming manner: "token" */ + token_stream: Array; /** fetch data from the table: "token_unit" */ token_unit: Array; - /** fetch aggregated fields from the table: "token_unit" */ - token_unit_aggregate: Token_Unit_Aggregate; + /** fetch data from the table in a streaming manner: "token_unit" */ + token_unit_stream: Array; /** fetch data from the table: "transaction" */ transaction: Array; - /** fetch aggregated fields from the table: "transaction" */ - transaction_aggregate: Transaction_Aggregate; + /** fetch data from the table in a streaming manner: "transaction" */ + transaction_stream: Array; /** fetch data from the table: "validator" */ validator: Array; - /** fetch aggregated fields from the table: "validator" */ - validator_aggregate: Validator_Aggregate; /** fetch data from the table: "validator" using primary key columns */ validator_by_pk?: Maybe; /** fetch data from the table: "validator_commission" */ validator_commission: Array; - /** fetch aggregated fields from the table: "validator_commission" */ - validator_commission_aggregate: Validator_Commission_Aggregate; /** fetch data from the table: "validator_commission" using primary key columns */ validator_commission_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_commission" */ + validator_commission_stream: Array; /** fetch data from the table: "validator_description" */ validator_description: Array; - /** fetch aggregated fields from the table: "validator_description" */ - validator_description_aggregate: Validator_Description_Aggregate; /** fetch data from the table: "validator_description" using primary key columns */ validator_description_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_description" */ + validator_description_stream: Array; /** fetch data from the table: "validator_info" */ validator_info: Array; - /** fetch aggregated fields from the table: "validator_info" */ - validator_info_aggregate: Validator_Info_Aggregate; /** fetch data from the table: "validator_info" using primary key columns */ validator_info_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_info" */ + validator_info_stream: Array; /** fetch data from the table: "validator_signing_info" */ validator_signing_info: Array; - /** fetch aggregated fields from the table: "validator_signing_info" */ - validator_signing_info_aggregate: Validator_Signing_Info_Aggregate; /** fetch data from the table: "validator_signing_info" using primary key columns */ validator_signing_info_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_signing_info" */ + validator_signing_info_stream: Array; /** fetch data from the table: "validator_status" */ validator_status: Array; /** fetch aggregated fields from the table: "validator_status" */ validator_status_aggregate: Validator_Status_Aggregate; /** fetch data from the table: "validator_status" using primary key columns */ validator_status_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_status" */ + validator_status_stream: Array; + /** fetch data from the table in a streaming manner: "validator" */ + validator_stream: Array; /** fetch data from the table: "validator_voting_power" */ validator_voting_power: Array; /** fetch aggregated fields from the table: "validator_voting_power" */ validator_voting_power_aggregate: Validator_Voting_Power_Aggregate; /** fetch data from the table: "validator_voting_power" using primary key columns */ validator_voting_power_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_voting_power" */ + validator_voting_power_stream: Array; /** fetch data from the table: "vesting_account" */ vesting_account: Array; - /** fetch aggregated fields from the table: "vesting_account" */ - vesting_account_aggregate: Vesting_Account_Aggregate; - /** fetch data from the table: "vesting_account" using primary key columns */ - vesting_account_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "vesting_account" */ + vesting_account_stream: Array; /** fetch data from the table: "vesting_period" */ vesting_period: Array; - /** fetch aggregated fields from the table: "vesting_period" */ - vesting_period_aggregate: Vesting_Period_Aggregate; + /** fetch data from the table in a streaming manner: "vesting_period" */ + vesting_period_stream: Array; }; @@ -6652,17 +18649,15 @@ export type Subscription_RootAccountArgs = { }; -export type Subscription_RootAccount_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Subscription_RootAccount_By_PkArgs = { + address: Scalars['String']; }; -export type Subscription_RootAccount_By_PkArgs = { - address: Scalars['String']; +export type Subscription_RootAccount_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; @@ -6675,11 +18670,9 @@ export type Subscription_RootAverage_Block_Time_From_GenesisArgs = { }; -export type Subscription_RootAverage_Block_Time_From_Genesis_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootAverage_Block_Time_From_Genesis_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; @@ -6693,11 +18686,9 @@ export type Subscription_RootAverage_Block_Time_Per_DayArgs = { }; -export type Subscription_RootAverage_Block_Time_Per_Day_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootAverage_Block_Time_Per_Day_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; @@ -6711,11 +18702,9 @@ export type Subscription_RootAverage_Block_Time_Per_HourArgs = { }; -export type Subscription_RootAverage_Block_Time_Per_Hour_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootAverage_Block_Time_Per_Hour_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; @@ -6729,11 +18718,9 @@ export type Subscription_RootAverage_Block_Time_Per_MinuteArgs = { }; -export type Subscription_RootAverage_Block_Time_Per_Minute_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootAverage_Block_Time_Per_Minute_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; @@ -6747,48 +18734,65 @@ export type Subscription_RootBlockArgs = { }; -export type Subscription_RootBlock_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Subscription_RootBlock_By_PkArgs = { + height: Scalars['bigint']; }; -export type Subscription_RootBlock_By_PkArgs = { - height: Scalars['bigint']; +export type Subscription_RootBlock_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; -export type Subscription_RootCommunity_PoolArgs = { - distinct_on?: InputMaybe>; +export type Subscription_RootCcv_ValidatorArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -export type Subscription_RootCommunity_Pool_AggregateArgs = { - distinct_on?: InputMaybe>; +export type Subscription_RootCcv_Validator_AggregateArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -export type Subscription_RootDistribution_ParamsArgs = { - distinct_on?: InputMaybe>; +export type Subscription_RootCcv_Validator_By_PkArgs = { + consumer_consensus_address: Scalars['String']; +}; + + +export type Subscription_RootCcv_Validator_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootCommunity_PoolArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootCommunity_Pool_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; -export type Subscription_RootDistribution_Params_AggregateArgs = { +export type Subscription_RootDistribution_ParamsArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -6797,8 +18801,10 @@ export type Subscription_RootDistribution_Params_AggregateArgs = { }; -export type Subscription_RootDistribution_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; +export type Subscription_RootDistribution_Params_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; @@ -6811,11 +18817,9 @@ export type Subscription_RootDouble_Sign_EvidenceArgs = { }; -export type Subscription_RootDouble_Sign_Evidence_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootDouble_Sign_Evidence_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; @@ -6829,20 +18833,13 @@ export type Subscription_RootDouble_Sign_VoteArgs = { }; -export type Subscription_RootDouble_Sign_Vote_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootDouble_Sign_Vote_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; -export type Subscription_RootDouble_Sign_Vote_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Subscription_RootFee_Grant_AllowanceArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -6852,20 +18849,13 @@ export type Subscription_RootFee_Grant_AllowanceArgs = { }; -export type Subscription_RootFee_Grant_Allowance_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootFee_Grant_Allowance_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; -export type Subscription_RootFee_Grant_Allowance_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Subscription_RootGenesisArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -6875,11 +18865,9 @@ export type Subscription_RootGenesisArgs = { }; -export type Subscription_RootGenesis_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootGenesis_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; @@ -6893,20 +18881,43 @@ export type Subscription_RootGov_ParamsArgs = { }; -export type Subscription_RootGov_Params_AggregateArgs = { - distinct_on?: InputMaybe>; +export type Subscription_RootGov_Params_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootInflationArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootInflation_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -export type Subscription_RootGov_Params_By_PkArgs = { +export type Subscription_RootInflation_By_PkArgs = { one_row_id: Scalars['Boolean']; }; +export type Subscription_RootInflation_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + export type Subscription_RootMessageArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -6916,11 +18927,9 @@ export type Subscription_RootMessageArgs = { }; -export type Subscription_RootMessage_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootMessage_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; @@ -6935,8 +18944,8 @@ export type Subscription_RootMessages_By_AddressArgs = { }; -export type Subscription_RootMessages_By_Address_AggregateArgs = { - args: Messages_By_Address_Args; +export type Subscription_RootMessages_By_Single_AddressArgs = { + args: Messages_By_Single_Address_Args; distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -6954,20 +18963,13 @@ export type Subscription_RootMint_ParamsArgs = { }; -export type Subscription_RootMint_Params_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootMint_Params_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; -export type Subscription_RootMint_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; -}; - - export type Subscription_RootModulesArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -6977,17 +18979,15 @@ export type Subscription_RootModulesArgs = { }; -export type Subscription_RootModules_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Subscription_RootModules_By_PkArgs = { + module_name: Scalars['String']; }; -export type Subscription_RootModules_By_PkArgs = { - module_name: Scalars['String']; +export type Subscription_RootModules_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; @@ -7009,6 +19009,13 @@ export type Subscription_RootPre_Commit_AggregateArgs = { }; +export type Subscription_RootPre_Commit_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + export type Subscription_RootProposalArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -7041,11 +19048,9 @@ export type Subscription_RootProposal_DepositArgs = { }; -export type Subscription_RootProposal_Deposit_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootProposal_Deposit_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; @@ -7059,30 +19064,26 @@ export type Subscription_RootProposal_Staking_Pool_SnapshotArgs = { }; -export type Subscription_RootProposal_Staking_Pool_Snapshot_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Subscription_RootProposal_Staking_Pool_Snapshot_By_PkArgs = { + proposal_id: Scalars['Int']; }; -export type Subscription_RootProposal_Staking_Pool_Snapshot_By_PkArgs = { - proposal_id: Scalars['Int']; +export type Subscription_RootProposal_Staking_Pool_Snapshot_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; -export type Subscription_RootProposal_Tally_ResultArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Subscription_RootProposal_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; -export type Subscription_RootProposal_Tally_Result_AggregateArgs = { +export type Subscription_RootProposal_Tally_ResultArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -7096,16 +19097,14 @@ export type Subscription_RootProposal_Tally_Result_By_PkArgs = { }; -export type Subscription_RootProposal_Validator_Status_SnapshotArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Subscription_RootProposal_Tally_Result_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; -export type Subscription_RootProposal_Validator_Status_Snapshot_AggregateArgs = { +export type Subscription_RootProposal_Validator_Status_SnapshotArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -7114,8 +19113,10 @@ export type Subscription_RootProposal_Validator_Status_Snapshot_AggregateArgs = }; -export type Subscription_RootProposal_Validator_Status_Snapshot_By_PkArgs = { - id: Scalars['Int']; +export type Subscription_RootProposal_Validator_Status_Snapshot_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; @@ -7128,11 +19129,9 @@ export type Subscription_RootProposal_VoteArgs = { }; -export type Subscription_RootProposal_Vote_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootProposal_Vote_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; @@ -7146,30 +19145,39 @@ export type Subscription_RootSlashing_ParamsArgs = { }; -export type Subscription_RootSlashing_Params_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootSlashing_Params_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; -export type Subscription_RootSlashing_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; +export type Subscription_RootSoftware_Upgrade_PlanArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -export type Subscription_RootStaking_ParamsArgs = { - distinct_on?: InputMaybe>; +export type Subscription_RootSoftware_Upgrade_Plan_AggregateArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootSoftware_Upgrade_Plan_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; -export type Subscription_RootStaking_Params_AggregateArgs = { +export type Subscription_RootStaking_ParamsArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -7178,8 +19186,10 @@ export type Subscription_RootStaking_Params_AggregateArgs = { }; -export type Subscription_RootStaking_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; +export type Subscription_RootStaking_Params_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; @@ -7192,11 +19202,9 @@ export type Subscription_RootStaking_PoolArgs = { }; -export type Subscription_RootStaking_Pool_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootStaking_Pool_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; @@ -7210,11 +19218,9 @@ export type Subscription_RootSupplyArgs = { }; -export type Subscription_RootSupply_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootSupply_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; @@ -7228,15 +19234,6 @@ export type Subscription_RootTokenArgs = { }; -export type Subscription_RootToken_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Subscription_RootToken_PriceArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -7246,35 +19243,33 @@ export type Subscription_RootToken_PriceArgs = { }; -export type Subscription_RootToken_Price_AggregateArgs = { - distinct_on?: InputMaybe>; +export type Subscription_RootToken_Price_HistoryArgs = { + distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -export type Subscription_RootToken_Price_By_PkArgs = { - id: Scalars['Int']; +export type Subscription_RootToken_Price_History_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; -export type Subscription_RootToken_Price_HistoryArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Subscription_RootToken_Price_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; -export type Subscription_RootToken_Price_History_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Subscription_RootToken_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; @@ -7287,11 +19282,9 @@ export type Subscription_RootToken_UnitArgs = { }; -export type Subscription_RootToken_Unit_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootToken_Unit_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; @@ -7305,11 +19298,9 @@ export type Subscription_RootTransactionArgs = { }; -export type Subscription_RootTransaction_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootTransaction_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; @@ -7323,15 +19314,6 @@ export type Subscription_RootValidatorArgs = { }; -export type Subscription_RootValidator_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Subscription_RootValidator_By_PkArgs = { consensus_address: Scalars['String']; }; @@ -7346,30 +19328,19 @@ export type Subscription_RootValidator_CommissionArgs = { }; -export type Subscription_RootValidator_Commission_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Subscription_RootValidator_Commission_By_PkArgs = { validator_address: Scalars['String']; }; -export type Subscription_RootValidator_DescriptionArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Subscription_RootValidator_Commission_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; -export type Subscription_RootValidator_Description_AggregateArgs = { +export type Subscription_RootValidator_DescriptionArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -7383,16 +19354,14 @@ export type Subscription_RootValidator_Description_By_PkArgs = { }; -export type Subscription_RootValidator_InfoArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Subscription_RootValidator_Description_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; -export type Subscription_RootValidator_Info_AggregateArgs = { +export type Subscription_RootValidator_InfoArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -7406,16 +19375,14 @@ export type Subscription_RootValidator_Info_By_PkArgs = { }; -export type Subscription_RootValidator_Signing_InfoArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Subscription_RootValidator_Info_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; -export type Subscription_RootValidator_Signing_Info_AggregateArgs = { +export type Subscription_RootValidator_Signing_InfoArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -7429,6 +19396,13 @@ export type Subscription_RootValidator_Signing_Info_By_PkArgs = { }; +export type Subscription_RootValidator_Signing_Info_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + export type Subscription_RootValidator_StatusArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -7452,6 +19426,20 @@ export type Subscription_RootValidator_Status_By_PkArgs = { }; +export type Subscription_RootValidator_Status_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + export type Subscription_RootValidator_Voting_PowerArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -7475,16 +19463,14 @@ export type Subscription_RootValidator_Voting_Power_By_PkArgs = { }; -export type Subscription_RootVesting_AccountArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; +export type Subscription_RootValidator_Voting_Power_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; -export type Subscription_RootVesting_Account_AggregateArgs = { +export type Subscription_RootVesting_AccountArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -7493,8 +19479,10 @@ export type Subscription_RootVesting_Account_AggregateArgs = { }; -export type Subscription_RootVesting_Account_By_PkArgs = { - id: Scalars['Int']; +export type Subscription_RootVesting_Account_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; }; @@ -7507,55 +19495,17 @@ export type Subscription_RootVesting_PeriodArgs = { }; -export type Subscription_RootVesting_Period_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; +export type Subscription_RootVesting_Period_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; where?: InputMaybe; }; - -/** columns and relationships of "supply" */ -export type Supply = { - __typename?: 'supply'; - coins: Scalars['_coin']; - height: Scalars['bigint']; -}; - -/** aggregated selection of "supply" */ -export type Supply_Aggregate = { - __typename?: 'supply_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "supply" */ -export type Supply_Aggregate_Fields = { - __typename?: 'supply_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 "supply" */ -export type Supply_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - -/** aggregate avg on columns */ -export type Supply_Avg_Fields = { - __typename?: 'supply_avg_fields'; - height?: Maybe; + +/** columns and relationships of "supply" */ +export type Supply = { + __typename?: 'supply'; + coins: Scalars['_coin']; + height: Scalars['bigint']; }; /** Boolean expression to filter rows from the table "supply". All fields are combined with a logical 'AND'. */ @@ -7567,18 +19517,6 @@ export type Supply_Bool_Exp = { height?: InputMaybe; }; -/** aggregate max on columns */ -export type Supply_Max_Fields = { - __typename?: 'supply_max_fields'; - height?: Maybe; -}; - -/** aggregate min on columns */ -export type Supply_Min_Fields = { - __typename?: 'supply_min_fields'; - height?: Maybe; -}; - /** Ordering options when selecting data from "supply". */ export type Supply_Order_By = { coins?: InputMaybe; @@ -7593,46 +19531,18 @@ export enum Supply_Select_Column { Height = 'height' } -/** aggregate stddev on columns */ -export type Supply_Stddev_Fields = { - __typename?: 'supply_stddev_fields'; - height?: Maybe; -}; - -/** aggregate stddev_pop on columns */ -export type Supply_Stddev_Pop_Fields = { - __typename?: 'supply_stddev_pop_fields'; - height?: Maybe; -}; - -/** aggregate stddev_samp on columns */ -export type Supply_Stddev_Samp_Fields = { - __typename?: 'supply_stddev_samp_fields'; - height?: Maybe; -}; - -/** aggregate sum on columns */ -export type Supply_Sum_Fields = { - __typename?: 'supply_sum_fields'; - height?: Maybe; -}; - -/** aggregate var_pop on columns */ -export type Supply_Var_Pop_Fields = { - __typename?: 'supply_var_pop_fields'; - height?: Maybe; -}; - -/** aggregate var_samp on columns */ -export type Supply_Var_Samp_Fields = { - __typename?: 'supply_var_samp_fields'; - height?: Maybe; +/** Streaming cursor of the table "supply" */ +export type Supply_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Supply_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; }; -/** aggregate variance on columns */ -export type Supply_Variance_Fields = { - __typename?: 'supply_variance_fields'; - height?: Maybe; +/** Initial value of the column from where the streaming should start */ +export type Supply_Stream_Cursor_Value_Input = { + coins?: InputMaybe; + height?: InputMaybe; }; /** Boolean expression to compare columns of type "timestamp". All fields are combined with logical 'AND'. */ @@ -7648,14 +19558,25 @@ export type Timestamp_Comparison_Exp = { _nin?: InputMaybe>; }; +/** Boolean expression to compare columns of type "timestamptz". All fields are combined with logical 'AND'. */ +export type Timestamptz_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + /** columns and relationships of "token" */ export type Token = { __typename?: 'token'; name: Scalars['String']; /** An array relationship */ token_units: Array; - /** An aggregate relationship */ - token_units_aggregate: Token_Unit_Aggregate; }; @@ -7668,38 +19589,6 @@ export type TokenToken_UnitsArgs = { where?: InputMaybe; }; - -/** columns and relationships of "token" */ -export type TokenToken_Units_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - -/** aggregated selection of "token" */ -export type Token_Aggregate = { - __typename?: 'token_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "token" */ -export type Token_Aggregate_Fields = { - __typename?: 'token_aggregate_fields'; - count: Scalars['Int']; - max?: Maybe; - min?: Maybe; -}; - - -/** aggregate fields of "token" */ -export type Token_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - /** Boolean expression to filter rows from the table "token". All fields are combined with a logical 'AND'. */ export type Token_Bool_Exp = { _and?: InputMaybe>; @@ -7709,18 +19598,6 @@ export type Token_Bool_Exp = { token_units?: InputMaybe; }; -/** aggregate max on columns */ -export type Token_Max_Fields = { - __typename?: 'token_max_fields'; - name?: Maybe; -}; - -/** aggregate min on columns */ -export type Token_Min_Fields = { - __typename?: 'token_min_fields'; - name?: Maybe; -}; - /** Ordering options when selecting data from "token". */ export type Token_Order_By = { name?: InputMaybe; @@ -7730,7 +19607,6 @@ export type Token_Order_By = { /** columns and relationships of "token_price" */ export type Token_Price = { __typename?: 'token_price'; - id: Scalars['Int']; market_cap: Scalars['bigint']; price: Scalars['numeric']; timestamp: Scalars['timestamp']; @@ -7739,36 +19615,6 @@ export type Token_Price = { unit_name: Scalars['String']; }; -/** aggregated selection of "token_price" */ -export type Token_Price_Aggregate = { - __typename?: 'token_price_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "token_price" */ -export type Token_Price_Aggregate_Fields = { - __typename?: 'token_price_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 "token_price" */ -export type Token_Price_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - /** order by aggregate values of table "token_price" */ export type Token_Price_Aggregate_Order_By = { avg?: InputMaybe; @@ -7784,17 +19630,8 @@ export type Token_Price_Aggregate_Order_By = { variance?: InputMaybe; }; -/** aggregate avg on columns */ -export type Token_Price_Avg_Fields = { - __typename?: 'token_price_avg_fields'; - id?: Maybe; - market_cap?: Maybe; - price?: Maybe; -}; - /** order by avg() on columns of table "token_price" */ export type Token_Price_Avg_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; @@ -7804,7 +19641,6 @@ export type Token_Price_Bool_Exp = { _and?: InputMaybe>; _not?: InputMaybe; _or?: InputMaybe>; - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; timestamp?: InputMaybe; @@ -7823,36 +19659,6 @@ export type Token_Price_History = { unit_name: Scalars['String']; }; -/** aggregated selection of "token_price_history" */ -export type Token_Price_History_Aggregate = { - __typename?: 'token_price_history_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "token_price_history" */ -export type Token_Price_History_Aggregate_Fields = { - __typename?: 'token_price_history_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 "token_price_history" */ -export type Token_Price_History_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - /** order by aggregate values of table "token_price_history" */ export type Token_Price_History_Aggregate_Order_By = { avg?: InputMaybe; @@ -7868,13 +19674,6 @@ export type Token_Price_History_Aggregate_Order_By = { variance?: InputMaybe; }; -/** aggregate avg on columns */ -export type Token_Price_History_Avg_Fields = { - __typename?: 'token_price_history_avg_fields'; - market_cap?: Maybe; - price?: Maybe; -}; - /** order by avg() on columns of table "token_price_history" */ export type Token_Price_History_Avg_Order_By = { market_cap?: InputMaybe; @@ -7893,15 +19692,6 @@ export type Token_Price_History_Bool_Exp = { unit_name?: InputMaybe; }; -/** aggregate max on columns */ -export type Token_Price_History_Max_Fields = { - __typename?: 'token_price_history_max_fields'; - market_cap?: Maybe; - price?: Maybe; - timestamp?: Maybe; - unit_name?: Maybe; -}; - /** order by max() on columns of table "token_price_history" */ export type Token_Price_History_Max_Order_By = { market_cap?: InputMaybe; @@ -7910,15 +19700,6 @@ export type Token_Price_History_Max_Order_By = { unit_name?: InputMaybe; }; -/** aggregate min on columns */ -export type Token_Price_History_Min_Fields = { - __typename?: 'token_price_history_min_fields'; - market_cap?: Maybe; - price?: Maybe; - timestamp?: Maybe; - unit_name?: Maybe; -}; - /** order by min() on columns of table "token_price_history" */ export type Token_Price_History_Min_Order_By = { market_cap?: InputMaybe; @@ -7948,50 +19729,38 @@ export enum Token_Price_History_Select_Column { UnitName = 'unit_name' } -/** aggregate stddev on columns */ -export type Token_Price_History_Stddev_Fields = { - __typename?: 'token_price_history_stddev_fields'; - market_cap?: Maybe; - price?: Maybe; -}; - /** order by stddev() on columns of table "token_price_history" */ export type Token_Price_History_Stddev_Order_By = { market_cap?: InputMaybe; price?: InputMaybe; }; -/** aggregate stddev_pop on columns */ -export type Token_Price_History_Stddev_Pop_Fields = { - __typename?: 'token_price_history_stddev_pop_fields'; - market_cap?: Maybe; - price?: Maybe; -}; - /** order by stddev_pop() on columns of table "token_price_history" */ export type Token_Price_History_Stddev_Pop_Order_By = { market_cap?: InputMaybe; price?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Token_Price_History_Stddev_Samp_Fields = { - __typename?: 'token_price_history_stddev_samp_fields'; - market_cap?: Maybe; - price?: Maybe; -}; - /** order by stddev_samp() on columns of table "token_price_history" */ export type Token_Price_History_Stddev_Samp_Order_By = { market_cap?: InputMaybe; price?: InputMaybe; }; -/** aggregate sum on columns */ -export type Token_Price_History_Sum_Fields = { - __typename?: 'token_price_history_sum_fields'; - market_cap?: Maybe; - price?: Maybe; +/** Streaming cursor of the table "token_price_history" */ +export type Token_Price_History_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Token_Price_History_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Token_Price_History_Stream_Cursor_Value_Input = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; }; /** order by sum() on columns of table "token_price_history" */ @@ -8000,77 +19769,34 @@ export type Token_Price_History_Sum_Order_By = { price?: InputMaybe; }; -/** aggregate var_pop on columns */ -export type Token_Price_History_Var_Pop_Fields = { - __typename?: 'token_price_history_var_pop_fields'; - market_cap?: Maybe; - price?: Maybe; -}; - /** order by var_pop() on columns of table "token_price_history" */ export type Token_Price_History_Var_Pop_Order_By = { market_cap?: InputMaybe; price?: InputMaybe; }; -/** aggregate var_samp on columns */ -export type Token_Price_History_Var_Samp_Fields = { - __typename?: 'token_price_history_var_samp_fields'; - market_cap?: Maybe; - price?: Maybe; -}; - /** order by var_samp() on columns of table "token_price_history" */ export type Token_Price_History_Var_Samp_Order_By = { market_cap?: InputMaybe; price?: InputMaybe; }; -/** aggregate variance on columns */ -export type Token_Price_History_Variance_Fields = { - __typename?: 'token_price_history_variance_fields'; - market_cap?: Maybe; - price?: Maybe; -}; - /** order by variance() on columns of table "token_price_history" */ export type Token_Price_History_Variance_Order_By = { market_cap?: InputMaybe; price?: InputMaybe; }; -/** aggregate max on columns */ -export type Token_Price_Max_Fields = { - __typename?: 'token_price_max_fields'; - id?: Maybe; - market_cap?: Maybe; - price?: Maybe; - timestamp?: Maybe; - unit_name?: Maybe; -}; - /** order by max() on columns of table "token_price" */ export type Token_Price_Max_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; timestamp?: InputMaybe; unit_name?: InputMaybe; }; -/** aggregate min on columns */ -export type Token_Price_Min_Fields = { - __typename?: 'token_price_min_fields'; - id?: Maybe; - market_cap?: Maybe; - price?: Maybe; - timestamp?: Maybe; - unit_name?: Maybe; -}; - /** order by min() on columns of table "token_price" */ export type Token_Price_Min_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; timestamp?: InputMaybe; @@ -8079,7 +19805,6 @@ export type Token_Price_Min_Order_By = { /** Ordering options when selecting data from "token_price". */ export type Token_Price_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; timestamp?: InputMaybe; @@ -8089,8 +19814,6 @@ export type Token_Price_Order_By = { /** select columns of table "token_price" */ export enum Token_Price_Select_Column { - /** column name */ - Id = 'id', /** column name */ MarketCap = 'market_cap', /** column name */ @@ -8101,107 +19824,60 @@ export enum Token_Price_Select_Column { UnitName = 'unit_name' } -/** aggregate stddev on columns */ -export type Token_Price_Stddev_Fields = { - __typename?: 'token_price_stddev_fields'; - id?: Maybe; - market_cap?: Maybe; - price?: Maybe; -}; - /** order by stddev() on columns of table "token_price" */ export type Token_Price_Stddev_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; -/** aggregate stddev_pop on columns */ -export type Token_Price_Stddev_Pop_Fields = { - __typename?: 'token_price_stddev_pop_fields'; - id?: Maybe; - market_cap?: Maybe; - price?: Maybe; -}; - /** order by stddev_pop() on columns of table "token_price" */ export type Token_Price_Stddev_Pop_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Token_Price_Stddev_Samp_Fields = { - __typename?: 'token_price_stddev_samp_fields'; - id?: Maybe; - market_cap?: Maybe; - price?: Maybe; -}; - /** order by stddev_samp() on columns of table "token_price" */ export type Token_Price_Stddev_Samp_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; -/** aggregate sum on columns */ -export type Token_Price_Sum_Fields = { - __typename?: 'token_price_sum_fields'; - id?: Maybe; - market_cap?: Maybe; - price?: Maybe; +/** Streaming cursor of the table "token_price" */ +export type Token_Price_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Token_Price_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Token_Price_Stream_Cursor_Value_Input = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; }; /** order by sum() on columns of table "token_price" */ export type Token_Price_Sum_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; -/** aggregate var_pop on columns */ -export type Token_Price_Var_Pop_Fields = { - __typename?: 'token_price_var_pop_fields'; - id?: Maybe; - market_cap?: Maybe; - price?: Maybe; -}; - /** order by var_pop() on columns of table "token_price" */ export type Token_Price_Var_Pop_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; -/** aggregate var_samp on columns */ -export type Token_Price_Var_Samp_Fields = { - __typename?: 'token_price_var_samp_fields'; - id?: Maybe; - market_cap?: Maybe; - price?: Maybe; -}; - /** order by var_samp() on columns of table "token_price" */ export type Token_Price_Var_Samp_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; -/** aggregate variance on columns */ -export type Token_Price_Variance_Fields = { - __typename?: 'token_price_variance_fields'; - id?: Maybe; - market_cap?: Maybe; - price?: Maybe; -}; - /** order by variance() on columns of table "token_price" */ export type Token_Price_Variance_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; @@ -8212,6 +19888,19 @@ export enum Token_Select_Column { Name = 'name' } +/** Streaming cursor of the table "token" */ +export type Token_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Token_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Token_Stream_Cursor_Value_Input = { + name?: InputMaybe; +}; + /** columns and relationships of "token_unit" */ export type Token_Unit = { __typename?: 'token_unit'; @@ -8226,12 +19915,8 @@ export type Token_Unit = { token_price?: Maybe; /** An array relationship */ token_price_histories: Array; - /** An aggregate relationship */ - token_price_histories_aggregate: Token_Price_History_Aggregate; /** An array relationship */ token_prices: Array; - /** An aggregate relationship */ - token_prices_aggregate: Token_Price_Aggregate; }; @@ -8245,16 +19930,6 @@ export type Token_UnitToken_Price_HistoriesArgs = { }; -/** columns and relationships of "token_unit" */ -export type Token_UnitToken_Price_Histories_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - /** columns and relationships of "token_unit" */ export type Token_UnitToken_PricesArgs = { distinct_on?: InputMaybe>; @@ -8264,46 +19939,6 @@ export type Token_UnitToken_PricesArgs = { where?: InputMaybe; }; - -/** columns and relationships of "token_unit" */ -export type Token_UnitToken_Prices_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - -/** aggregated selection of "token_unit" */ -export type Token_Unit_Aggregate = { - __typename?: 'token_unit_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "token_unit" */ -export type Token_Unit_Aggregate_Fields = { - __typename?: 'token_unit_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 "token_unit" */ -export type Token_Unit_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - /** order by aggregate values of table "token_unit" */ export type Token_Unit_Aggregate_Order_By = { avg?: InputMaybe; @@ -8319,12 +19954,6 @@ export type Token_Unit_Aggregate_Order_By = { variance?: InputMaybe; }; -/** aggregate avg on columns */ -export type Token_Unit_Avg_Fields = { - __typename?: 'token_unit_avg_fields'; - exponent?: Maybe; -}; - /** order by avg() on columns of table "token_unit" */ export type Token_Unit_Avg_Order_By = { exponent?: InputMaybe; @@ -8340,19 +19969,10 @@ export type Token_Unit_Bool_Exp = { exponent?: InputMaybe; price_id?: InputMaybe; token?: InputMaybe; - token_name?: InputMaybe; - token_price?: InputMaybe; - token_price_histories?: InputMaybe; - token_prices?: InputMaybe; -}; - -/** aggregate max on columns */ -export type Token_Unit_Max_Fields = { - __typename?: 'token_unit_max_fields'; - denom?: Maybe; - exponent?: Maybe; - price_id?: Maybe; - token_name?: Maybe; + token_name?: InputMaybe; + token_price?: InputMaybe; + token_price_histories?: InputMaybe; + token_prices?: InputMaybe; }; /** order by max() on columns of table "token_unit" */ @@ -8363,15 +19983,6 @@ export type Token_Unit_Max_Order_By = { token_name?: InputMaybe; }; -/** aggregate min on columns */ -export type Token_Unit_Min_Fields = { - __typename?: 'token_unit_min_fields'; - denom?: Maybe; - exponent?: Maybe; - price_id?: Maybe; - token_name?: Maybe; -}; - /** order by min() on columns of table "token_unit" */ export type Token_Unit_Min_Order_By = { denom?: InputMaybe; @@ -8407,43 +20018,36 @@ export enum Token_Unit_Select_Column { TokenName = 'token_name' } -/** aggregate stddev on columns */ -export type Token_Unit_Stddev_Fields = { - __typename?: 'token_unit_stddev_fields'; - exponent?: Maybe; -}; - /** order by stddev() on columns of table "token_unit" */ export type Token_Unit_Stddev_Order_By = { exponent?: InputMaybe; }; -/** aggregate stddev_pop on columns */ -export type Token_Unit_Stddev_Pop_Fields = { - __typename?: 'token_unit_stddev_pop_fields'; - exponent?: Maybe; -}; - /** order by stddev_pop() on columns of table "token_unit" */ export type Token_Unit_Stddev_Pop_Order_By = { exponent?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Token_Unit_Stddev_Samp_Fields = { - __typename?: 'token_unit_stddev_samp_fields'; - exponent?: Maybe; -}; - /** order by stddev_samp() on columns of table "token_unit" */ export type Token_Unit_Stddev_Samp_Order_By = { exponent?: InputMaybe; }; -/** aggregate sum on columns */ -export type Token_Unit_Sum_Fields = { - __typename?: 'token_unit_sum_fields'; - exponent?: Maybe; +/** Streaming cursor of the table "token_unit" */ +export type Token_Unit_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Token_Unit_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Token_Unit_Stream_Cursor_Value_Input = { + aliases?: InputMaybe; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; }; /** order by sum() on columns of table "token_unit" */ @@ -8451,34 +20055,16 @@ export type Token_Unit_Sum_Order_By = { exponent?: InputMaybe; }; -/** aggregate var_pop on columns */ -export type Token_Unit_Var_Pop_Fields = { - __typename?: 'token_unit_var_pop_fields'; - exponent?: Maybe; -}; - /** order by var_pop() on columns of table "token_unit" */ export type Token_Unit_Var_Pop_Order_By = { exponent?: InputMaybe; }; -/** aggregate var_samp on columns */ -export type Token_Unit_Var_Samp_Fields = { - __typename?: 'token_unit_var_samp_fields'; - exponent?: Maybe; -}; - /** order by var_samp() on columns of table "token_unit" */ export type Token_Unit_Var_Samp_Order_By = { exponent?: InputMaybe; }; -/** aggregate variance on columns */ -export type Token_Unit_Variance_Fields = { - __typename?: 'token_unit_variance_fields'; - exponent?: Maybe; -}; - /** order by variance() on columns of table "token_unit" */ export type Token_Unit_Variance_Order_By = { exponent?: InputMaybe; @@ -8497,7 +20083,8 @@ export type Transaction = { logs?: Maybe; memo?: Maybe; messages: Scalars['jsonb']; - partition_id: Scalars['bigint']; + /** An array relationship */ + messagesByTransactionHashPartitionId: Array; raw_log?: Maybe; signatures: Scalars['_text']; signer_infos: Scalars['jsonb']; @@ -8524,38 +20111,18 @@ export type TransactionMessagesArgs = { /** columns and relationships of "transaction" */ -export type TransactionSigner_InfosArgs = { - path?: InputMaybe; -}; - -/** aggregated selection of "transaction" */ -export type Transaction_Aggregate = { - __typename?: 'transaction_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "transaction" */ -export type Transaction_Aggregate_Fields = { - __typename?: 'transaction_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; +export type TransactionMessagesByTransactionHashPartitionIdArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** aggregate fields of "transaction" */ -export type Transaction_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; +/** columns and relationships of "transaction" */ +export type TransactionSigner_InfosArgs = { + path?: InputMaybe; }; /** order by aggregate values of table "transaction" */ @@ -8573,21 +20140,11 @@ export type Transaction_Aggregate_Order_By = { variance?: InputMaybe; }; -/** aggregate avg on columns */ -export type Transaction_Avg_Fields = { - __typename?: 'transaction_avg_fields'; - gas_used?: Maybe; - gas_wanted?: Maybe; - height?: Maybe; - partition_id?: Maybe; -}; - /** order by avg() on columns of table "transaction" */ export type Transaction_Avg_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; }; /** Boolean expression to filter rows from the table "transaction". All fields are combined with a logical 'AND'. */ @@ -8604,25 +20161,13 @@ export type Transaction_Bool_Exp = { logs?: InputMaybe; memo?: InputMaybe; messages?: InputMaybe; - partition_id?: InputMaybe; + messagesByTransactionHashPartitionId?: InputMaybe; raw_log?: InputMaybe; signatures?: InputMaybe<_Text_Comparison_Exp>; signer_infos?: InputMaybe; success?: InputMaybe; }; -/** aggregate max on columns */ -export type Transaction_Max_Fields = { - __typename?: 'transaction_max_fields'; - gas_used?: Maybe; - gas_wanted?: Maybe; - hash?: Maybe; - height?: Maybe; - memo?: Maybe; - partition_id?: Maybe; - raw_log?: Maybe; -}; - /** order by max() on columns of table "transaction" */ export type Transaction_Max_Order_By = { gas_used?: InputMaybe; @@ -8630,22 +20175,9 @@ export type Transaction_Max_Order_By = { hash?: InputMaybe; height?: InputMaybe; memo?: InputMaybe; - partition_id?: InputMaybe; raw_log?: InputMaybe; }; -/** aggregate min on columns */ -export type Transaction_Min_Fields = { - __typename?: 'transaction_min_fields'; - gas_used?: Maybe; - gas_wanted?: Maybe; - hash?: Maybe; - height?: Maybe; - memo?: Maybe; - partition_id?: Maybe; - raw_log?: Maybe; -}; - /** order by min() on columns of table "transaction" */ export type Transaction_Min_Order_By = { gas_used?: InputMaybe; @@ -8653,7 +20185,6 @@ export type Transaction_Min_Order_By = { hash?: InputMaybe; height?: InputMaybe; memo?: InputMaybe; - partition_id?: InputMaybe; raw_log?: InputMaybe; }; @@ -8668,7 +20199,7 @@ export type Transaction_Order_By = { logs?: InputMaybe; memo?: InputMaybe; messages?: InputMaybe; - partition_id?: InputMaybe; + messagesByTransactionHashPartitionId_aggregate?: InputMaybe; raw_log?: InputMaybe; signatures?: InputMaybe; signer_infos?: InputMaybe; @@ -8694,8 +20225,6 @@ export enum Transaction_Select_Column { /** column name */ Messages = 'messages', /** column name */ - PartitionId = 'partition_id', - /** column name */ RawLog = 'raw_log', /** column name */ Signatures = 'signatures', @@ -8705,30 +20234,11 @@ export enum Transaction_Select_Column { Success = 'success' } -/** aggregate stddev on columns */ -export type Transaction_Stddev_Fields = { - __typename?: 'transaction_stddev_fields'; - gas_used?: Maybe; - gas_wanted?: Maybe; - height?: Maybe; - partition_id?: Maybe; -}; - /** order by stddev() on columns of table "transaction" */ export type Transaction_Stddev_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; -}; - -/** aggregate stddev_pop on columns */ -export type Transaction_Stddev_Pop_Fields = { - __typename?: 'transaction_stddev_pop_fields'; - gas_used?: Maybe; - gas_wanted?: Maybe; - height?: Maybe; - partition_id?: Maybe; }; /** order by stddev_pop() on columns of table "transaction" */ @@ -8736,16 +20246,6 @@ export type Transaction_Stddev_Pop_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; -}; - -/** aggregate stddev_samp on columns */ -export type Transaction_Stddev_Samp_Fields = { - __typename?: 'transaction_stddev_samp_fields'; - gas_used?: Maybe; - gas_wanted?: Maybe; - height?: Maybe; - partition_id?: Maybe; }; /** order by stddev_samp() on columns of table "transaction" */ @@ -8753,16 +20253,30 @@ export type Transaction_Stddev_Samp_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; }; -/** aggregate sum on columns */ -export type Transaction_Sum_Fields = { - __typename?: 'transaction_sum_fields'; - gas_used?: Maybe; - gas_wanted?: Maybe; - height?: Maybe; - partition_id?: Maybe; +/** Streaming cursor of the table "transaction" */ +export type Transaction_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Transaction_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Transaction_Stream_Cursor_Value_Input = { + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; }; /** order by sum() on columns of table "transaction" */ @@ -8770,16 +20284,6 @@ export type Transaction_Sum_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; -}; - -/** aggregate var_pop on columns */ -export type Transaction_Var_Pop_Fields = { - __typename?: 'transaction_var_pop_fields'; - gas_used?: Maybe; - gas_wanted?: Maybe; - height?: Maybe; - partition_id?: Maybe; }; /** order by var_pop() on columns of table "transaction" */ @@ -8787,16 +20291,6 @@ export type Transaction_Var_Pop_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; -}; - -/** aggregate var_samp on columns */ -export type Transaction_Var_Samp_Fields = { - __typename?: 'transaction_var_samp_fields'; - gas_used?: Maybe; - gas_wanted?: Maybe; - height?: Maybe; - partition_id?: Maybe; }; /** order by var_samp() on columns of table "transaction" */ @@ -8804,16 +20298,6 @@ export type Transaction_Var_Samp_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; -}; - -/** aggregate variance on columns */ -export type Transaction_Variance_Fields = { - __typename?: 'transaction_variance_fields'; - gas_used?: Maybe; - gas_wanted?: Maybe; - height?: Maybe; - partition_id?: Maybe; }; /** order by variance() on columns of table "transaction" */ @@ -8821,7 +20305,6 @@ export type Transaction_Variance_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; }; /** columns and relationships of "validator" */ @@ -8829,14 +20312,12 @@ export type Validator = { __typename?: 'validator'; /** An array relationship */ blocks: Array; - /** An aggregate relationship */ - blocks_aggregate: Block_Aggregate; + /** An object relationship */ + ccv_validator?: Maybe; consensus_address: Scalars['String']; consensus_pubkey: Scalars['String']; /** An array relationship */ double_sign_votes: Array; - /** An aggregate relationship */ - double_sign_votes_aggregate: Double_Sign_Vote_Aggregate; /** An array relationship */ pre_commits: Array; /** An aggregate relationship */ @@ -8845,26 +20326,16 @@ export type Validator = { proposal_validator_status_snapshot?: Maybe; /** An array relationship */ proposal_validator_status_snapshots: Array; - /** An aggregate relationship */ - proposal_validator_status_snapshots_aggregate: Proposal_Validator_Status_Snapshot_Aggregate; /** An array relationship */ validator_commissions: Array; - /** An aggregate relationship */ - validator_commissions_aggregate: Validator_Commission_Aggregate; /** An array relationship */ validator_descriptions: Array; - /** An aggregate relationship */ - validator_descriptions_aggregate: Validator_Description_Aggregate; /** An object relationship */ validator_info?: Maybe; /** An array relationship */ validator_infos: Array; - /** An aggregate relationship */ - validator_infos_aggregate: Validator_Info_Aggregate; /** An array relationship */ validator_signing_infos: Array; - /** An aggregate relationship */ - validator_signing_infos_aggregate: Validator_Signing_Info_Aggregate; /** An array relationship */ validator_statuses: Array; /** An aggregate relationship */ @@ -8886,16 +20357,6 @@ export type ValidatorBlocksArgs = { }; -/** columns and relationships of "validator" */ -export type ValidatorBlocks_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - /** columns and relationships of "validator" */ export type ValidatorDouble_Sign_VotesArgs = { distinct_on?: InputMaybe>; @@ -8906,16 +20367,6 @@ export type ValidatorDouble_Sign_VotesArgs = { }; -/** columns and relationships of "validator" */ -export type ValidatorDouble_Sign_Votes_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - /** columns and relationships of "validator" */ export type ValidatorPre_CommitsArgs = { distinct_on?: InputMaybe>; @@ -8946,16 +20397,6 @@ export type ValidatorProposal_Validator_Status_SnapshotsArgs = { }; -/** columns and relationships of "validator" */ -export type ValidatorProposal_Validator_Status_Snapshots_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - /** columns and relationships of "validator" */ export type ValidatorValidator_CommissionsArgs = { distinct_on?: InputMaybe>; @@ -8966,16 +20407,6 @@ export type ValidatorValidator_CommissionsArgs = { }; -/** columns and relationships of "validator" */ -export type ValidatorValidator_Commissions_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - /** columns and relationships of "validator" */ export type ValidatorValidator_DescriptionsArgs = { distinct_on?: InputMaybe>; @@ -8986,16 +20417,6 @@ export type ValidatorValidator_DescriptionsArgs = { }; -/** columns and relationships of "validator" */ -export type ValidatorValidator_Descriptions_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - /** columns and relationships of "validator" */ export type ValidatorValidator_InfosArgs = { distinct_on?: InputMaybe>; @@ -9006,16 +20427,6 @@ export type ValidatorValidator_InfosArgs = { }; -/** columns and relationships of "validator" */ -export type ValidatorValidator_Infos_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - /** columns and relationships of "validator" */ export type ValidatorValidator_Signing_InfosArgs = { distinct_on?: InputMaybe>; @@ -9026,16 +20437,6 @@ export type ValidatorValidator_Signing_InfosArgs = { }; -/** columns and relationships of "validator" */ -export type ValidatorValidator_Signing_Infos_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - /** columns and relationships of "validator" */ export type ValidatorValidator_StatusesArgs = { distinct_on?: InputMaybe>; @@ -9075,38 +20476,18 @@ export type ValidatorValidator_Voting_Powers_AggregateArgs = { where?: InputMaybe; }; -/** aggregated selection of "validator" */ -export type Validator_Aggregate = { - __typename?: 'validator_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "validator" */ -export type Validator_Aggregate_Fields = { - __typename?: 'validator_aggregate_fields'; - count: Scalars['Int']; - max?: Maybe; - min?: Maybe; -}; - - -/** aggregate fields of "validator" */ -export type Validator_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - /** Boolean expression to filter rows from the table "validator". All fields are combined with a logical 'AND'. */ export type Validator_Bool_Exp = { _and?: InputMaybe>; _not?: InputMaybe; _or?: InputMaybe>; blocks?: InputMaybe; + ccv_validator?: InputMaybe; consensus_address?: InputMaybe; consensus_pubkey?: InputMaybe; double_sign_votes?: InputMaybe; pre_commits?: InputMaybe; + pre_commits_aggregate?: InputMaybe; proposal_validator_status_snapshot?: InputMaybe; proposal_validator_status_snapshots?: InputMaybe; validator_commissions?: InputMaybe; @@ -9115,7 +20496,9 @@ export type Validator_Bool_Exp = { validator_infos?: InputMaybe; validator_signing_infos?: InputMaybe; validator_statuses?: InputMaybe; + validator_statuses_aggregate?: InputMaybe; validator_voting_powers?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; }; /** columns and relationships of "validator_commission" */ @@ -9129,36 +20512,6 @@ export type Validator_Commission = { validator_address: Scalars['String']; }; -/** aggregated selection of "validator_commission" */ -export type Validator_Commission_Aggregate = { - __typename?: 'validator_commission_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "validator_commission" */ -export type Validator_Commission_Aggregate_Fields = { - __typename?: 'validator_commission_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 "validator_commission" */ -export type Validator_Commission_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - /** order by aggregate values of table "validator_commission" */ export type Validator_Commission_Aggregate_Order_By = { avg?: InputMaybe; @@ -9174,14 +20527,6 @@ export type Validator_Commission_Aggregate_Order_By = { variance?: InputMaybe; }; -/** aggregate avg on columns */ -export type Validator_Commission_Avg_Fields = { - __typename?: 'validator_commission_avg_fields'; - commission?: Maybe; - height?: Maybe; - min_self_delegation?: Maybe; -}; - /** order by avg() on columns of table "validator_commission" */ export type Validator_Commission_Avg_Order_By = { commission?: InputMaybe; @@ -9201,15 +20546,6 @@ export type Validator_Commission_Bool_Exp = { validator_address?: InputMaybe; }; -/** aggregate max on columns */ -export type Validator_Commission_Max_Fields = { - __typename?: 'validator_commission_max_fields'; - commission?: Maybe; - height?: Maybe; - min_self_delegation?: Maybe; - validator_address?: Maybe; -}; - /** order by max() on columns of table "validator_commission" */ export type Validator_Commission_Max_Order_By = { commission?: InputMaybe; @@ -9218,15 +20554,6 @@ export type Validator_Commission_Max_Order_By = { validator_address?: InputMaybe; }; -/** aggregate min on columns */ -export type Validator_Commission_Min_Fields = { - __typename?: 'validator_commission_min_fields'; - commission?: Maybe; - height?: Maybe; - min_self_delegation?: Maybe; - validator_address?: Maybe; -}; - /** order by min() on columns of table "validator_commission" */ export type Validator_Commission_Min_Order_By = { commission?: InputMaybe; @@ -9256,27 +20583,11 @@ export enum Validator_Commission_Select_Column { ValidatorAddress = 'validator_address' } -/** aggregate stddev on columns */ -export type Validator_Commission_Stddev_Fields = { - __typename?: 'validator_commission_stddev_fields'; - commission?: Maybe; - height?: Maybe; - min_self_delegation?: Maybe; -}; - -/** order by stddev() on columns of table "validator_commission" */ -export type Validator_Commission_Stddev_Order_By = { - commission?: InputMaybe; - height?: InputMaybe; - min_self_delegation?: InputMaybe; -}; - -/** aggregate stddev_pop on columns */ -export type Validator_Commission_Stddev_Pop_Fields = { - __typename?: 'validator_commission_stddev_pop_fields'; - commission?: Maybe; - height?: Maybe; - min_self_delegation?: Maybe; +/** order by stddev() on columns of table "validator_commission" */ +export type Validator_Commission_Stddev_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; }; /** order by stddev_pop() on columns of table "validator_commission" */ @@ -9286,14 +20597,6 @@ export type Validator_Commission_Stddev_Pop_Order_By = { min_self_delegation?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Validator_Commission_Stddev_Samp_Fields = { - __typename?: 'validator_commission_stddev_samp_fields'; - commission?: Maybe; - height?: Maybe; - min_self_delegation?: Maybe; -}; - /** order by stddev_samp() on columns of table "validator_commission" */ export type Validator_Commission_Stddev_Samp_Order_By = { commission?: InputMaybe; @@ -9301,12 +20604,20 @@ export type Validator_Commission_Stddev_Samp_Order_By = { min_self_delegation?: InputMaybe; }; -/** aggregate sum on columns */ -export type Validator_Commission_Sum_Fields = { - __typename?: 'validator_commission_sum_fields'; - commission?: Maybe; - height?: Maybe; - min_self_delegation?: Maybe; +/** Streaming cursor of the table "validator_commission" */ +export type Validator_Commission_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Validator_Commission_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Validator_Commission_Stream_Cursor_Value_Input = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; }; /** order by sum() on columns of table "validator_commission" */ @@ -9316,14 +20627,6 @@ export type Validator_Commission_Sum_Order_By = { min_self_delegation?: InputMaybe; }; -/** aggregate var_pop on columns */ -export type Validator_Commission_Var_Pop_Fields = { - __typename?: 'validator_commission_var_pop_fields'; - commission?: Maybe; - height?: Maybe; - min_self_delegation?: Maybe; -}; - /** order by var_pop() on columns of table "validator_commission" */ export type Validator_Commission_Var_Pop_Order_By = { commission?: InputMaybe; @@ -9331,14 +20634,6 @@ export type Validator_Commission_Var_Pop_Order_By = { min_self_delegation?: InputMaybe; }; -/** aggregate var_samp on columns */ -export type Validator_Commission_Var_Samp_Fields = { - __typename?: 'validator_commission_var_samp_fields'; - commission?: Maybe; - height?: Maybe; - min_self_delegation?: Maybe; -}; - /** order by var_samp() on columns of table "validator_commission" */ export type Validator_Commission_Var_Samp_Order_By = { commission?: InputMaybe; @@ -9346,14 +20641,6 @@ export type Validator_Commission_Var_Samp_Order_By = { min_self_delegation?: InputMaybe; }; -/** aggregate variance on columns */ -export type Validator_Commission_Variance_Fields = { - __typename?: 'validator_commission_variance_fields'; - commission?: Maybe; - height?: Maybe; - min_self_delegation?: Maybe; -}; - /** order by variance() on columns of table "validator_commission" */ export type Validator_Commission_Variance_Order_By = { commission?: InputMaybe; @@ -9376,36 +20663,6 @@ export type Validator_Description = { website?: Maybe; }; -/** aggregated selection of "validator_description" */ -export type Validator_Description_Aggregate = { - __typename?: 'validator_description_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "validator_description" */ -export type Validator_Description_Aggregate_Fields = { - __typename?: 'validator_description_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 "validator_description" */ -export type Validator_Description_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - /** order by aggregate values of table "validator_description" */ export type Validator_Description_Aggregate_Order_By = { avg?: InputMaybe; @@ -9421,12 +20678,6 @@ export type Validator_Description_Aggregate_Order_By = { variance?: InputMaybe; }; -/** aggregate avg on columns */ -export type Validator_Description_Avg_Fields = { - __typename?: 'validator_description_avg_fields'; - height?: Maybe; -}; - /** order by avg() on columns of table "validator_description" */ export type Validator_Description_Avg_Order_By = { height?: InputMaybe; @@ -9448,19 +20699,6 @@ export type Validator_Description_Bool_Exp = { website?: InputMaybe; }; -/** aggregate max on columns */ -export type Validator_Description_Max_Fields = { - __typename?: 'validator_description_max_fields'; - avatar_url?: Maybe; - details?: Maybe; - height?: Maybe; - identity?: Maybe; - moniker?: Maybe; - security_contact?: Maybe; - validator_address?: Maybe; - website?: Maybe; -}; - /** order by max() on columns of table "validator_description" */ export type Validator_Description_Max_Order_By = { avatar_url?: InputMaybe; @@ -9473,19 +20711,6 @@ export type Validator_Description_Max_Order_By = { website?: InputMaybe; }; -/** aggregate min on columns */ -export type Validator_Description_Min_Fields = { - __typename?: 'validator_description_min_fields'; - avatar_url?: Maybe; - details?: Maybe; - height?: Maybe; - identity?: Maybe; - moniker?: Maybe; - security_contact?: Maybe; - validator_address?: Maybe; - website?: Maybe; -}; - /** order by min() on columns of table "validator_description" */ export type Validator_Description_Min_Order_By = { avatar_url?: InputMaybe; @@ -9531,43 +20756,39 @@ export enum Validator_Description_Select_Column { Website = 'website' } -/** aggregate stddev on columns */ -export type Validator_Description_Stddev_Fields = { - __typename?: 'validator_description_stddev_fields'; - height?: Maybe; -}; - /** order by stddev() on columns of table "validator_description" */ export type Validator_Description_Stddev_Order_By = { height?: InputMaybe; }; -/** aggregate stddev_pop on columns */ -export type Validator_Description_Stddev_Pop_Fields = { - __typename?: 'validator_description_stddev_pop_fields'; - height?: Maybe; -}; - /** order by stddev_pop() on columns of table "validator_description" */ export type Validator_Description_Stddev_Pop_Order_By = { height?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Validator_Description_Stddev_Samp_Fields = { - __typename?: 'validator_description_stddev_samp_fields'; - height?: Maybe; -}; - /** order by stddev_samp() on columns of table "validator_description" */ export type Validator_Description_Stddev_Samp_Order_By = { height?: InputMaybe; }; -/** aggregate sum on columns */ -export type Validator_Description_Sum_Fields = { - __typename?: 'validator_description_sum_fields'; - height?: Maybe; +/** Streaming cursor of the table "validator_description" */ +export type Validator_Description_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Validator_Description_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Validator_Description_Stream_Cursor_Value_Input = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; }; /** order by sum() on columns of table "validator_description" */ @@ -9575,34 +20796,16 @@ export type Validator_Description_Sum_Order_By = { height?: InputMaybe; }; -/** aggregate var_pop on columns */ -export type Validator_Description_Var_Pop_Fields = { - __typename?: 'validator_description_var_pop_fields'; - height?: Maybe; -}; - /** order by var_pop() on columns of table "validator_description" */ export type Validator_Description_Var_Pop_Order_By = { height?: InputMaybe; }; -/** aggregate var_samp on columns */ -export type Validator_Description_Var_Samp_Fields = { - __typename?: 'validator_description_var_samp_fields'; - height?: Maybe; -}; - /** order by var_samp() on columns of table "validator_description" */ export type Validator_Description_Var_Samp_Order_By = { height?: InputMaybe; }; -/** aggregate variance on columns */ -export type Validator_Description_Variance_Fields = { - __typename?: 'validator_description_variance_fields'; - height?: Maybe; -}; - /** order by variance() on columns of table "validator_description" */ export type Validator_Description_Variance_Order_By = { height?: InputMaybe; @@ -9622,28 +20825,6 @@ export type Validator_Info = { validator: Validator; }; -/** aggregated selection of "validator_info" */ -export type Validator_Info_Aggregate = { - __typename?: 'validator_info_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "validator_info" */ -export type Validator_Info_Aggregate_Fields = { - __typename?: 'validator_info_aggregate_fields'; - count: Scalars['Int']; - max?: Maybe; - min?: Maybe; -}; - - -/** aggregate fields of "validator_info" */ -export type Validator_Info_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - /** order by aggregate values of table "validator_info" */ export type Validator_Info_Aggregate_Order_By = { count?: InputMaybe; @@ -9665,16 +20846,6 @@ export type Validator_Info_Bool_Exp = { validator?: InputMaybe; }; -/** aggregate max on columns */ -export type Validator_Info_Max_Fields = { - __typename?: 'validator_info_max_fields'; - consensus_address?: Maybe; - max_change_rate?: Maybe; - max_rate?: Maybe; - operator_address?: Maybe; - self_delegate_address?: Maybe; -}; - /** order by max() on columns of table "validator_info" */ export type Validator_Info_Max_Order_By = { consensus_address?: InputMaybe; @@ -9684,16 +20855,6 @@ export type Validator_Info_Max_Order_By = { self_delegate_address?: InputMaybe; }; -/** aggregate min on columns */ -export type Validator_Info_Min_Fields = { - __typename?: 'validator_info_min_fields'; - consensus_address?: Maybe; - max_change_rate?: Maybe; - max_rate?: Maybe; - operator_address?: Maybe; - self_delegate_address?: Maybe; -}; - /** order by min() on columns of table "validator_info" */ export type Validator_Info_Min_Order_By = { consensus_address?: InputMaybe; @@ -9728,23 +20889,27 @@ export enum Validator_Info_Select_Column { SelfDelegateAddress = 'self_delegate_address' } -/** aggregate max on columns */ -export type Validator_Max_Fields = { - __typename?: 'validator_max_fields'; - consensus_address?: Maybe; - consensus_pubkey?: Maybe; +/** Streaming cursor of the table "validator_info" */ +export type Validator_Info_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Validator_Info_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; }; -/** aggregate min on columns */ -export type Validator_Min_Fields = { - __typename?: 'validator_min_fields'; - consensus_address?: Maybe; - consensus_pubkey?: Maybe; +/** Initial value of the column from where the streaming should start */ +export type Validator_Info_Stream_Cursor_Value_Input = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; }; /** Ordering options when selecting data from "validator". */ export type Validator_Order_By = { blocks_aggregate?: InputMaybe; + ccv_validator?: InputMaybe; consensus_address?: InputMaybe; consensus_pubkey?: InputMaybe; double_sign_votes_aggregate?: InputMaybe; @@ -9780,36 +20945,6 @@ export type Validator_Signing_Info = { validator_address: Scalars['String']; }; -/** aggregated selection of "validator_signing_info" */ -export type Validator_Signing_Info_Aggregate = { - __typename?: 'validator_signing_info_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "validator_signing_info" */ -export type Validator_Signing_Info_Aggregate_Fields = { - __typename?: 'validator_signing_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 "validator_signing_info" */ -export type Validator_Signing_Info_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - /** order by aggregate values of table "validator_signing_info" */ export type Validator_Signing_Info_Aggregate_Order_By = { avg?: InputMaybe; @@ -9825,15 +20960,6 @@ export type Validator_Signing_Info_Aggregate_Order_By = { variance?: InputMaybe; }; -/** aggregate avg on columns */ -export type Validator_Signing_Info_Avg_Fields = { - __typename?: 'validator_signing_info_avg_fields'; - height?: Maybe; - index_offset?: Maybe; - missed_blocks_counter?: Maybe; - start_height?: Maybe; -}; - /** order by avg() on columns of table "validator_signing_info" */ export type Validator_Signing_Info_Avg_Order_By = { height?: InputMaybe; @@ -9856,17 +20982,6 @@ export type Validator_Signing_Info_Bool_Exp = { validator_address?: InputMaybe; }; -/** aggregate max on columns */ -export type Validator_Signing_Info_Max_Fields = { - __typename?: 'validator_signing_info_max_fields'; - height?: Maybe; - index_offset?: Maybe; - jailed_until?: Maybe; - missed_blocks_counter?: Maybe; - start_height?: Maybe; - validator_address?: Maybe; -}; - /** order by max() on columns of table "validator_signing_info" */ export type Validator_Signing_Info_Max_Order_By = { height?: InputMaybe; @@ -9877,17 +20992,6 @@ export type Validator_Signing_Info_Max_Order_By = { validator_address?: InputMaybe; }; -/** aggregate min on columns */ -export type Validator_Signing_Info_Min_Fields = { - __typename?: 'validator_signing_info_min_fields'; - height?: Maybe; - index_offset?: Maybe; - jailed_until?: Maybe; - missed_blocks_counter?: Maybe; - start_height?: Maybe; - validator_address?: Maybe; -}; - /** order by min() on columns of table "validator_signing_info" */ export type Validator_Signing_Info_Min_Order_By = { height?: InputMaybe; @@ -9927,15 +21031,6 @@ export enum Validator_Signing_Info_Select_Column { ValidatorAddress = 'validator_address' } -/** aggregate stddev on columns */ -export type Validator_Signing_Info_Stddev_Fields = { - __typename?: 'validator_signing_info_stddev_fields'; - height?: Maybe; - index_offset?: Maybe; - missed_blocks_counter?: Maybe; - start_height?: Maybe; -}; - /** order by stddev() on columns of table "validator_signing_info" */ export type Validator_Signing_Info_Stddev_Order_By = { height?: InputMaybe; @@ -9944,15 +21039,6 @@ export type Validator_Signing_Info_Stddev_Order_By = { start_height?: InputMaybe; }; -/** aggregate stddev_pop on columns */ -export type Validator_Signing_Info_Stddev_Pop_Fields = { - __typename?: 'validator_signing_info_stddev_pop_fields'; - height?: Maybe; - index_offset?: Maybe; - missed_blocks_counter?: Maybe; - start_height?: Maybe; -}; - /** order by stddev_pop() on columns of table "validator_signing_info" */ export type Validator_Signing_Info_Stddev_Pop_Order_By = { height?: InputMaybe; @@ -9961,15 +21047,6 @@ export type Validator_Signing_Info_Stddev_Pop_Order_By = { start_height?: InputMaybe; }; -/** aggregate stddev_samp on columns */ -export type Validator_Signing_Info_Stddev_Samp_Fields = { - __typename?: 'validator_signing_info_stddev_samp_fields'; - height?: Maybe; - index_offset?: Maybe; - missed_blocks_counter?: Maybe; - start_height?: Maybe; -}; - /** order by stddev_samp() on columns of table "validator_signing_info" */ export type Validator_Signing_Info_Stddev_Samp_Order_By = { height?: InputMaybe; @@ -9978,13 +21055,23 @@ export type Validator_Signing_Info_Stddev_Samp_Order_By = { start_height?: InputMaybe; }; -/** aggregate sum on columns */ -export type Validator_Signing_Info_Sum_Fields = { - __typename?: 'validator_signing_info_sum_fields'; - height?: Maybe; - index_offset?: Maybe; - missed_blocks_counter?: Maybe; - start_height?: Maybe; +/** Streaming cursor of the table "validator_signing_info" */ +export type Validator_Signing_Info_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Validator_Signing_Info_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Validator_Signing_Info_Stream_Cursor_Value_Input = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; }; /** order by sum() on columns of table "validator_signing_info" */ @@ -9995,15 +21082,6 @@ export type Validator_Signing_Info_Sum_Order_By = { start_height?: InputMaybe; }; -/** aggregate var_pop on columns */ -export type Validator_Signing_Info_Var_Pop_Fields = { - __typename?: 'validator_signing_info_var_pop_fields'; - height?: Maybe; - index_offset?: Maybe; - missed_blocks_counter?: Maybe; - start_height?: Maybe; -}; - /** order by var_pop() on columns of table "validator_signing_info" */ export type Validator_Signing_Info_Var_Pop_Order_By = { height?: InputMaybe; @@ -10012,15 +21090,6 @@ export type Validator_Signing_Info_Var_Pop_Order_By = { start_height?: InputMaybe; }; -/** aggregate var_samp on columns */ -export type Validator_Signing_Info_Var_Samp_Fields = { - __typename?: 'validator_signing_info_var_samp_fields'; - height?: Maybe; - index_offset?: Maybe; - missed_blocks_counter?: Maybe; - start_height?: Maybe; -}; - /** order by var_samp() on columns of table "validator_signing_info" */ export type Validator_Signing_Info_Var_Samp_Order_By = { height?: InputMaybe; @@ -10029,15 +21098,6 @@ export type Validator_Signing_Info_Var_Samp_Order_By = { start_height?: InputMaybe; }; -/** aggregate variance on columns */ -export type Validator_Signing_Info_Variance_Fields = { - __typename?: 'validator_signing_info_variance_fields'; - height?: Maybe; - index_offset?: Maybe; - missed_blocks_counter?: Maybe; - start_height?: Maybe; -}; - /** order by variance() on columns of table "validator_signing_info" */ export type Validator_Signing_Info_Variance_Order_By = { height?: InputMaybe; @@ -10064,6 +21124,33 @@ export type Validator_Status_Aggregate = { nodes: Array; }; +export type Validator_Status_Aggregate_Bool_Exp = { + bool_and?: InputMaybe; + bool_or?: InputMaybe; + count?: InputMaybe; +}; + +export type Validator_Status_Aggregate_Bool_Exp_Bool_And = { + arguments: Validator_Status_Select_Column_Validator_Status_Aggregate_Bool_Exp_Bool_And_Arguments_Columns; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Boolean_Comparison_Exp; +}; + +export type Validator_Status_Aggregate_Bool_Exp_Bool_Or = { + arguments: Validator_Status_Select_Column_Validator_Status_Aggregate_Bool_Exp_Bool_Or_Arguments_Columns; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Boolean_Comparison_Exp; +}; + +export type Validator_Status_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + /** aggregate fields of "validator_status" */ export type Validator_Status_Aggregate_Fields = { __typename?: 'validator_status_aggregate_fields'; @@ -10178,6 +21265,18 @@ export enum Validator_Status_Select_Column { ValidatorAddress = 'validator_address' } +/** select "validator_status_aggregate_bool_exp_bool_and_arguments_columns" columns of table "validator_status" */ +export enum Validator_Status_Select_Column_Validator_Status_Aggregate_Bool_Exp_Bool_And_Arguments_Columns { + /** column name */ + Jailed = 'jailed' +} + +/** select "validator_status_aggregate_bool_exp_bool_or_arguments_columns" columns of table "validator_status" */ +export enum Validator_Status_Select_Column_Validator_Status_Aggregate_Bool_Exp_Bool_Or_Arguments_Columns { + /** column name */ + Jailed = 'jailed' +} + /** aggregate stddev on columns */ export type Validator_Status_Stddev_Fields = { __typename?: 'validator_status_stddev_fields'; @@ -10217,6 +21316,22 @@ export type Validator_Status_Stddev_Samp_Order_By = { status?: InputMaybe; }; +/** Streaming cursor of the table "validator_status" */ +export type Validator_Status_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Validator_Status_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Validator_Status_Stream_Cursor_Value_Input = { + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + /** aggregate sum on columns */ export type Validator_Status_Sum_Fields = { __typename?: 'validator_status_sum_fields'; @@ -10269,6 +21384,20 @@ export type Validator_Status_Variance_Order_By = { status?: InputMaybe; }; +/** Streaming cursor of the table "validator" */ +export type Validator_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Validator_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Validator_Stream_Cursor_Value_Input = { + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; +}; + /** columns and relationships of "validator_voting_power" */ export type Validator_Voting_Power = { __typename?: 'validator_voting_power'; @@ -10288,6 +21417,17 @@ export type Validator_Voting_Power_Aggregate = { nodes: Array; }; +export type Validator_Voting_Power_Aggregate_Bool_Exp = { + count?: InputMaybe; +}; + +export type Validator_Voting_Power_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + /** aggregate fields of "validator_voting_power" */ export type Validator_Voting_Power_Aggregate_Fields = { __typename?: 'validator_voting_power_aggregate_fields'; @@ -10439,6 +21579,21 @@ export type Validator_Voting_Power_Stddev_Samp_Order_By = { voting_power?: InputMaybe; }; +/** Streaming cursor of the table "validator_voting_power" */ +export type Validator_Voting_Power_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Validator_Voting_Power_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Validator_Voting_Power_Stream_Cursor_Value_Input = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + /** aggregate sum on columns */ export type Validator_Voting_Power_Sum_Fields = { __typename?: 'validator_voting_power_sum_fields'; @@ -10497,30 +21652,17 @@ export type Vesting_Account = { /** An object relationship */ account: Account; address: Scalars['String']; - end_time: Scalars['timestamp']; - id: Scalars['Int']; - original_vesting: Scalars['_coin']; - start_time?: Maybe; - type: Scalars['String']; - /** An array relationship */ - vesting_periods: Array; - /** An aggregate relationship */ - vesting_periods_aggregate: Vesting_Period_Aggregate; -}; - - -/** columns and relationships of "vesting_account" */ -export type Vesting_AccountVesting_PeriodsArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; + end_time: Scalars['timestamp']; + original_vesting: Scalars['_coin']; + start_time?: Maybe; + type: Scalars['String']; + /** An array relationship */ + vesting_periods: Array; }; /** columns and relationships of "vesting_account" */ -export type Vesting_AccountVesting_Periods_AggregateArgs = { +export type Vesting_AccountVesting_PeriodsArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -10528,60 +21670,11 @@ export type Vesting_AccountVesting_Periods_AggregateArgs = { where?: InputMaybe; }; -/** aggregated selection of "vesting_account" */ -export type Vesting_Account_Aggregate = { - __typename?: 'vesting_account_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "vesting_account" */ -export type Vesting_Account_Aggregate_Fields = { - __typename?: 'vesting_account_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 "vesting_account" */ -export type Vesting_Account_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - /** order by aggregate values of table "vesting_account" */ export type Vesting_Account_Aggregate_Order_By = { - avg?: InputMaybe; count?: InputMaybe; max?: InputMaybe; min?: InputMaybe; - stddev?: InputMaybe; - stddev_pop?: InputMaybe; - stddev_samp?: InputMaybe; - sum?: InputMaybe; - var_pop?: InputMaybe; - var_samp?: InputMaybe; - variance?: InputMaybe; -}; - -/** aggregate avg on columns */ -export type Vesting_Account_Avg_Fields = { - __typename?: 'vesting_account_avg_fields'; - id?: Maybe; -}; - -/** order by avg() on columns of table "vesting_account" */ -export type Vesting_Account_Avg_Order_By = { - id?: InputMaybe; }; /** Boolean expression to filter rows from the table "vesting_account". All fields are combined with a logical 'AND'. */ @@ -10592,47 +21685,24 @@ export type Vesting_Account_Bool_Exp = { account?: InputMaybe; address?: InputMaybe; end_time?: InputMaybe; - id?: InputMaybe; original_vesting?: InputMaybe<_Coin_Comparison_Exp>; start_time?: InputMaybe; type?: InputMaybe; vesting_periods?: InputMaybe; }; -/** aggregate max on columns */ -export type Vesting_Account_Max_Fields = { - __typename?: 'vesting_account_max_fields'; - address?: Maybe; - end_time?: Maybe; - id?: Maybe; - start_time?: Maybe; - type?: Maybe; -}; - /** order by max() on columns of table "vesting_account" */ export type Vesting_Account_Max_Order_By = { address?: InputMaybe; end_time?: InputMaybe; - id?: InputMaybe; start_time?: InputMaybe; type?: InputMaybe; }; -/** aggregate min on columns */ -export type Vesting_Account_Min_Fields = { - __typename?: 'vesting_account_min_fields'; - address?: Maybe; - end_time?: Maybe; - id?: Maybe; - start_time?: Maybe; - type?: Maybe; -}; - /** order by min() on columns of table "vesting_account" */ export type Vesting_Account_Min_Order_By = { address?: InputMaybe; end_time?: InputMaybe; - id?: InputMaybe; start_time?: InputMaybe; type?: InputMaybe; }; @@ -10642,7 +21712,6 @@ export type Vesting_Account_Order_By = { account?: InputMaybe; address?: InputMaybe; end_time?: InputMaybe; - id?: InputMaybe; original_vesting?: InputMaybe; start_time?: InputMaybe; type?: InputMaybe; @@ -10656,8 +21725,6 @@ export enum Vesting_Account_Select_Column { /** column name */ EndTime = 'end_time', /** column name */ - Id = 'id', - /** column name */ OriginalVesting = 'original_vesting', /** column name */ StartTime = 'start_time', @@ -10665,81 +21732,21 @@ export enum Vesting_Account_Select_Column { Type = 'type' } -/** aggregate stddev on columns */ -export type Vesting_Account_Stddev_Fields = { - __typename?: 'vesting_account_stddev_fields'; - id?: Maybe; -}; - -/** order by stddev() on columns of table "vesting_account" */ -export type Vesting_Account_Stddev_Order_By = { - id?: InputMaybe; -}; - -/** aggregate stddev_pop on columns */ -export type Vesting_Account_Stddev_Pop_Fields = { - __typename?: 'vesting_account_stddev_pop_fields'; - id?: Maybe; -}; - -/** order by stddev_pop() on columns of table "vesting_account" */ -export type Vesting_Account_Stddev_Pop_Order_By = { - id?: InputMaybe; -}; - -/** aggregate stddev_samp on columns */ -export type Vesting_Account_Stddev_Samp_Fields = { - __typename?: 'vesting_account_stddev_samp_fields'; - id?: Maybe; -}; - -/** order by stddev_samp() on columns of table "vesting_account" */ -export type Vesting_Account_Stddev_Samp_Order_By = { - id?: InputMaybe; -}; - -/** aggregate sum on columns */ -export type Vesting_Account_Sum_Fields = { - __typename?: 'vesting_account_sum_fields'; - id?: Maybe; -}; - -/** order by sum() on columns of table "vesting_account" */ -export type Vesting_Account_Sum_Order_By = { - id?: InputMaybe; -}; - -/** aggregate var_pop on columns */ -export type Vesting_Account_Var_Pop_Fields = { - __typename?: 'vesting_account_var_pop_fields'; - id?: Maybe; -}; - -/** order by var_pop() on columns of table "vesting_account" */ -export type Vesting_Account_Var_Pop_Order_By = { - id?: InputMaybe; -}; - -/** aggregate var_samp on columns */ -export type Vesting_Account_Var_Samp_Fields = { - __typename?: 'vesting_account_var_samp_fields'; - id?: Maybe; +/** Streaming cursor of the table "vesting_account" */ +export type Vesting_Account_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Vesting_Account_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; }; -/** order by var_samp() on columns of table "vesting_account" */ -export type Vesting_Account_Var_Samp_Order_By = { - id?: InputMaybe; -}; - -/** aggregate variance on columns */ -export type Vesting_Account_Variance_Fields = { - __typename?: 'vesting_account_variance_fields'; - id?: Maybe; -}; - -/** order by variance() on columns of table "vesting_account" */ -export type Vesting_Account_Variance_Order_By = { - id?: InputMaybe; +/** Initial value of the column from where the streaming should start */ +export type Vesting_Account_Stream_Cursor_Value_Input = { + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; }; /** columns and relationships of "vesting_period" */ @@ -10750,37 +21757,6 @@ export type Vesting_Period = { period_order: Scalars['bigint']; /** An object relationship */ vesting_account: Vesting_Account; - vesting_account_id: Scalars['bigint']; -}; - -/** aggregated selection of "vesting_period" */ -export type Vesting_Period_Aggregate = { - __typename?: 'vesting_period_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "vesting_period" */ -export type Vesting_Period_Aggregate_Fields = { - __typename?: 'vesting_period_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 "vesting_period" */ -export type Vesting_Period_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; }; /** order by aggregate values of table "vesting_period" */ @@ -10798,19 +21774,10 @@ export type Vesting_Period_Aggregate_Order_By = { variance?: InputMaybe; }; -/** aggregate avg on columns */ -export type Vesting_Period_Avg_Fields = { - __typename?: 'vesting_period_avg_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; -}; - /** order by avg() on columns of table "vesting_period" */ export type Vesting_Period_Avg_Order_By = { length?: InputMaybe; period_order?: InputMaybe; - vesting_account_id?: InputMaybe; }; /** Boolean expression to filter rows from the table "vesting_period". All fields are combined with a logical 'AND'. */ @@ -10822,37 +21789,18 @@ export type Vesting_Period_Bool_Exp = { length?: InputMaybe; period_order?: InputMaybe; vesting_account?: InputMaybe; - vesting_account_id?: InputMaybe; -}; - -/** aggregate max on columns */ -export type Vesting_Period_Max_Fields = { - __typename?: 'vesting_period_max_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; }; /** order by max() on columns of table "vesting_period" */ export type Vesting_Period_Max_Order_By = { length?: InputMaybe; period_order?: InputMaybe; - vesting_account_id?: InputMaybe; -}; - -/** aggregate min on columns */ -export type Vesting_Period_Min_Fields = { - __typename?: 'vesting_period_min_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; }; /** order by min() on columns of table "vesting_period" */ export type Vesting_Period_Min_Order_By = { length?: InputMaybe; period_order?: InputMaybe; - vesting_account_id?: InputMaybe; }; /** Ordering options when selecting data from "vesting_period". */ @@ -10861,7 +21809,6 @@ export type Vesting_Period_Order_By = { length?: InputMaybe; period_order?: InputMaybe; vesting_account?: InputMaybe; - vesting_account_id?: InputMaybe; }; /** select columns of table "vesting_period" */ @@ -10871,114 +21818,64 @@ export enum Vesting_Period_Select_Column { /** column name */ Length = 'length', /** column name */ - PeriodOrder = 'period_order', - /** column name */ - VestingAccountId = 'vesting_account_id' + PeriodOrder = 'period_order' } -/** aggregate stddev on columns */ -export type Vesting_Period_Stddev_Fields = { - __typename?: 'vesting_period_stddev_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; -}; - /** order by stddev() on columns of table "vesting_period" */ export type Vesting_Period_Stddev_Order_By = { length?: InputMaybe; period_order?: InputMaybe; - vesting_account_id?: InputMaybe; -}; - -/** aggregate stddev_pop on columns */ -export type Vesting_Period_Stddev_Pop_Fields = { - __typename?: 'vesting_period_stddev_pop_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; }; /** order by stddev_pop() on columns of table "vesting_period" */ export type Vesting_Period_Stddev_Pop_Order_By = { length?: InputMaybe; period_order?: InputMaybe; - vesting_account_id?: InputMaybe; -}; - -/** aggregate stddev_samp on columns */ -export type Vesting_Period_Stddev_Samp_Fields = { - __typename?: 'vesting_period_stddev_samp_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; }; /** order by stddev_samp() on columns of table "vesting_period" */ export type Vesting_Period_Stddev_Samp_Order_By = { length?: InputMaybe; period_order?: InputMaybe; - vesting_account_id?: InputMaybe; }; -/** aggregate sum on columns */ -export type Vesting_Period_Sum_Fields = { - __typename?: 'vesting_period_sum_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; +/** Streaming cursor of the table "vesting_period" */ +export type Vesting_Period_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Vesting_Period_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Vesting_Period_Stream_Cursor_Value_Input = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; }; /** order by sum() on columns of table "vesting_period" */ export type Vesting_Period_Sum_Order_By = { length?: InputMaybe; period_order?: InputMaybe; - vesting_account_id?: InputMaybe; -}; - -/** aggregate var_pop on columns */ -export type Vesting_Period_Var_Pop_Fields = { - __typename?: 'vesting_period_var_pop_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; }; /** order by var_pop() on columns of table "vesting_period" */ export type Vesting_Period_Var_Pop_Order_By = { length?: InputMaybe; period_order?: InputMaybe; - vesting_account_id?: InputMaybe; -}; - -/** aggregate var_samp on columns */ -export type Vesting_Period_Var_Samp_Fields = { - __typename?: 'vesting_period_var_samp_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; }; /** order by var_samp() on columns of table "vesting_period" */ export type Vesting_Period_Var_Samp_Order_By = { length?: InputMaybe; period_order?: InputMaybe; - vesting_account_id?: InputMaybe; -}; - -/** aggregate variance on columns */ -export type Vesting_Period_Variance_Fields = { - __typename?: 'vesting_period_variance_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; }; /** order by variance() on columns of table "vesting_period" */ export type Vesting_Period_Variance_Order_By = { length?: InputMaybe; period_order?: InputMaybe; - vesting_account_id?: InputMaybe; }; export type AccountCommissionQueryVariables = Exact<{ @@ -11091,7 +21988,7 @@ export type BlocksListenerSubscriptionVariables = Exact<{ }>; -export type BlocksListenerSubscription = { blocks: Array<{ __typename?: 'block', height: any, hash: string, timestamp: any, txs?: number | null, validator?: { __typename?: 'validator', validatorInfo?: { __typename?: 'validator_info', operatorAddress: string } | null } | null }> }; +export type BlocksListenerSubscription = { blocks: Array<{ __typename?: 'block', height: any, hash: string, timestamp: any, txs?: number | null, validator?: { __typename?: 'ccv_validator', consumerOperatorAddress: string, providerOperatorAddress: string } | null }> }; export type BlocksQueryVariables = Exact<{ limit?: InputMaybe; @@ -11099,7 +21996,7 @@ export type BlocksQueryVariables = Exact<{ }>; -export type BlocksQuery = { blocks: Array<{ __typename?: 'block', height: any, hash: string, timestamp: any, txs?: number | null, validator?: { __typename?: 'validator', validatorInfo?: { __typename?: 'validator_info', self_delegate_address?: string | null, operatorAddress: string } | null, validatorDescriptions: Array<{ __typename?: 'validator_description', moniker?: string | null, identity?: string | null }> } | null }> }; +export type BlocksQuery = { blocks: Array<{ __typename?: 'block', height: any, hash: string, timestamp: any, txs?: number | null, ccv_validator?: { __typename?: 'ccv_validator', consumerOperatorAddress: string, providerOperatorAddress: string, consumerSelfDelegateAddress: string, providerSelfDelegateAddress: string, validator?: { __typename?: 'validator', validatorDescriptions: Array<{ __typename?: 'validator_description', moniker?: string | null, identity?: string | null }> } | null } | null }> }; export type ChainIdQueryVariables = Exact<{ [key: string]: never; }>; @@ -11174,7 +22071,7 @@ export type TokenPriceListenerSubscriptionVariables = Exact<{ }>; -export type TokenPriceListenerSubscription = { tokenPrice: Array<{ __typename?: 'token_price', id: number, price: any, timestamp: any, marketCap: any, unitName: string }> }; +export type TokenPriceListenerSubscription = { tokenPrice: Array<{ __typename?: 'token_price', price: any, timestamp: any, marketCap: any, unitName: string }> }; export type TokenPriceHistoryQueryVariables = Exact<{ denom?: InputMaybe; @@ -11266,7 +22163,21 @@ export type ValidatorUndelegationsQuery = { undelegations?: { __typename?: 'Acti export type ValidatorsQueryVariables = Exact<{ [key: string]: never; }>; -export type ValidatorsQuery = { stakingPool: Array<{ __typename?: 'staking_pool', bondedTokens: string }>, validator: Array<{ __typename?: 'validator', validatorStatuses: Array<{ __typename?: 'validator_status', status: number, jailed: boolean, height: any }>, validatorSigningInfos: Array<{ __typename?: 'validator_signing_info', tombstoned: boolean, missedBlocksCounter: any }>, validatorInfo?: { __typename?: 'validator_info', operatorAddress: string, selfDelegateAddress?: string | null } | null, validatorVotingPowers: Array<{ __typename?: 'validator_voting_power', votingPower: any }>, validatorCommissions: Array<{ __typename?: 'validator_commission', commission: any }> }>, slashingParams: Array<{ __typename?: 'slashing_params', params: any }> }; +export type ValidatorsQuery = { stakingPool: Array<{ __typename?: 'staking_pool', bondedTokens: string }>, validator: Array<{ __typename?: 'validator', validatorStatuses: Array<{ __typename?: 'validator_status', status: number, jailed: boolean, height: any }>, validatorSigningInfos: Array<{ __typename?: 'validator_signing_info', tombstoned: boolean, missedBlocksCounter: any }>, ccv_validator?: { __typename?: 'ccv_validator', providerOperatorAddress: string } | null, validatorDescriptions: Array<{ __typename?: 'validator_description', moniker?: string | null, avatar_url?: string | null, validator_address: string, website?: string | null, details?: string | null }>, validatorInfo?: { __typename?: 'validator_info', operatorAddress: string, selfDelegateAddress?: string | null } | null, validatorVotingPowers: Array<{ __typename?: 'validator_voting_power', votingPower: any }>, validatorCommissions: Array<{ __typename?: 'validator_commission', commission: any }> }>, slashingParams: Array<{ __typename?: 'slashing_params', params: any }> }; + +export type ConsumerCustomValidatorQueryVariables = Exact<{ + consumerAddress?: InputMaybe; +}>; + + +export type ConsumerCustomValidatorQuery = { validatorInfo: Array<{ __typename?: 'validator_info', validator: { __typename?: 'validator', validatorDescriptions: Array<{ __typename?: 'validator_description', moniker?: string | null, avatar_url?: string | null, validator_address: string, website?: string | null, details?: string | null }> } }> }; + +export type ProviderCustomValidatorQueryVariables = Exact<{ + providerAddress?: InputMaybe; +}>; + + +export type ProviderCustomValidatorQuery = { ccv_validator: Array<{ __typename?: 'ccv_validator', ccv_validator_info?: { __typename?: 'provider_validator_info', operator_address: string, validator: { __typename?: 'provider_validator', validatorDescriptions: Array<{ __typename?: 'provider_validator_description', moniker?: string | null, avatar_url?: string | null, validator_address: string, website?: string | null, details?: string | null }> } } | null }> }; export type ValidatorsAddressListQueryVariables = Exact<{ [key: string]: never; }>; @@ -11278,6 +22189,11 @@ export type ValidatorAddressesQueryVariables = Exact<{ [key: string]: never; }>; export type ValidatorAddressesQuery = { validator: Array<{ __typename?: 'validator', validatorInfo?: { __typename?: 'validator_info', operatorAddress: string, selfDelegateAddress?: string | null, consensusAddress: string } | null, validatorDescriptions: Array<{ __typename?: 'validator_description', moniker?: string | null, avatarUrl?: string | null }> }> }; +export type ValidatorConsumerProviderAddressesQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ValidatorConsumerProviderAddressesQuery = { ccv_validator: Array<{ __typename?: 'ccv_validator', consumerOperatorAddress: string, providerOperatorAddress: string, providerSelfDelegateAddress: string, validator?: { __typename?: 'validator', validatorDescriptions: Array<{ __typename?: 'validator_description', moniker?: string | null, details?: string | null, website?: string | null, avatarUrl?: string | null }> } | null }> }; + export const AccountCommissionDocument = gql` query AccountCommission($validatorAddress: String!) { @@ -11844,10 +22760,9 @@ export const BlocksListenerDocument = gql` txs: num_txs hash timestamp - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - } + validator: ccv_validator { + consumerOperatorAddress: consumer_operator_address + providerOperatorAddress: provider_operator_address } } } @@ -11883,17 +22798,19 @@ export const BlocksDocument = gql` txs: num_txs hash timestamp - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - self_delegate_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity + ccv_validator { + consumerOperatorAddress: consumer_operator_address + providerOperatorAddress: provider_operator_address + consumerSelfDelegateAddress: consumer_self_delegate_address + providerSelfDelegateAddress: provider_self_delegate_address + validator { + validatorDescriptions: validator_descriptions( + limit: 1 + order_by: {height: desc} + ) { + moniker + identity + } } } } @@ -12390,7 +23307,6 @@ export type ProposalsQueryResult = Apollo.QueryResult; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; +export const ConsumerCustomValidatorDocument = gql` + query ConsumerCustomValidator($consumerAddress: String) { + validatorInfo: validator_info( + where: {operator_address: {_eq: $consumerAddress}} + ) { + validator { + validatorDescriptions: validator_descriptions { + moniker + avatar_url + validator_address + website + details + } + } + } +} + `; + +/** + * __useConsumerCustomValidatorQuery__ + * + * To run a query within a React component, call `useConsumerCustomValidatorQuery` and pass it any options that fit your needs. + * When your component renders, `useConsumerCustomValidatorQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useConsumerCustomValidatorQuery({ + * variables: { + * consumerAddress: // value for 'consumerAddress' + * }, + * }); + */ +export function useConsumerCustomValidatorQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ConsumerCustomValidatorDocument, options); + } +export function useConsumerCustomValidatorLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ConsumerCustomValidatorDocument, options); + } +export type ConsumerCustomValidatorQueryHookResult = ReturnType; +export type ConsumerCustomValidatorLazyQueryHookResult = ReturnType; +export type ConsumerCustomValidatorQueryResult = Apollo.QueryResult; +export const ProviderCustomValidatorDocument = gql` + query ProviderCustomValidator($providerAddress: String) { + ccv_validator(where: {provider_operator_address: {_eq: $providerAddress}}) { + ccv_validator_info { + operator_address + validator { + validatorDescriptions: validator_descriptions { + moniker + avatar_url + validator_address + website + details + } + } + } + } +} + `; + +/** + * __useProviderCustomValidatorQuery__ + * + * To run a query within a React component, call `useProviderCustomValidatorQuery` and pass it any options that fit your needs. + * When your component renders, `useProviderCustomValidatorQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useProviderCustomValidatorQuery({ + * variables: { + * providerAddress: // value for 'providerAddress' + * }, + * }); + */ +export function useProviderCustomValidatorQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ProviderCustomValidatorDocument, options); + } +export function useProviderCustomValidatorLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ProviderCustomValidatorDocument, options); + } +export type ProviderCustomValidatorQueryHookResult = ReturnType; +export type ProviderCustomValidatorLazyQueryHookResult = ReturnType; +export type ProviderCustomValidatorQueryResult = Apollo.QueryResult; export const ValidatorsAddressListDocument = gql` query ValidatorsAddressList { validator { @@ -13088,4 +24105,53 @@ export function useValidatorAddressesLazyQuery(baseOptions?: Apollo.LazyQueryHoo } export type ValidatorAddressesQueryHookResult = ReturnType; export type ValidatorAddressesLazyQueryHookResult = ReturnType; -export type ValidatorAddressesQueryResult = Apollo.QueryResult; \ No newline at end of file +export type ValidatorAddressesQueryResult = Apollo.QueryResult; +export const ValidatorConsumerProviderAddressesDocument = gql` + query ValidatorConsumerProviderAddresses { + ccv_validator( + where: {consumer_consensus_address: {_is_null: false}, provider_consensus_address: {_is_null: false}} + ) { + consumerOperatorAddress: consumer_operator_address + providerOperatorAddress: provider_operator_address + providerSelfDelegateAddress: provider_self_delegate_address + validator { + validatorDescriptions: validator_descriptions( + limit: 1 + order_by: {height: desc} + ) { + moniker + avatarUrl: avatar_url + details + website + } + } + } +} + `; + +/** + * __useValidatorConsumerProviderAddressesQuery__ + * + * To run a query within a React component, call `useValidatorConsumerProviderAddressesQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorConsumerProviderAddressesQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorConsumerProviderAddressesQuery({ + * variables: { + * }, + * }); + */ +export function useValidatorConsumerProviderAddressesQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorConsumerProviderAddressesDocument, options); + } +export function useValidatorConsumerProviderAddressesLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorConsumerProviderAddressesDocument, options); + } +export type ValidatorConsumerProviderAddressesQueryHookResult = ReturnType; +export type ValidatorConsumerProviderAddressesLazyQueryHookResult = ReturnType; +export type ValidatorConsumerProviderAddressesQueryResult = Apollo.QueryResult; \ No newline at end of file diff --git a/apps/web-stride/src/hooks/useConsumerCustomValidator/index.ts b/apps/web-stride/src/hooks/useConsumerCustomValidator/index.ts new file mode 100644 index 0000000000..1ccca95d00 --- /dev/null +++ b/apps/web-stride/src/hooks/useConsumerCustomValidator/index.ts @@ -0,0 +1,62 @@ +import { useEffect, useState } from 'react'; +import { useRecoilCallback } from 'recoil'; +import * as R from 'ramda'; +import { writeProfile } from '@/recoil/profiles/selectors'; +import { useConsumerCustomValidatorQuery } from '@/graphql/types/general_types'; + +type Profile = { + name: string; + address: string; + imageUrl: string; + bio: string; + website: string; +}; + +interface consumerAddressProfileResult { + profile: Profile | undefined; + loading: boolean; +} + +/** + * Accepts consumerAddress address and returns the appropriate profile + * @param validator - the consumer operator address of the validator + * @returns The return value is an object with the following properties: + * name, address, imageUrl + */ +const useConsumerCustomValidator = (validator: string): consumerAddressProfileResult => { + const { data, loading } = useConsumerCustomValidatorQuery({ + variables: { consumerAddress: validator }, + }); + const [profile, setProfile] = useState(); + const setAvatarName = useRecoilCallback( + ({ set }) => + (address: string, avatarName: AvatarName | null) => + set(writeProfile(address), (prevState) => + R.equals(prevState, avatarName) ? prevState : avatarName + ), + [] + ); + useEffect(() => { + if (data && data.validatorInfo.length > 0) { + const validatorDescription = data.validatorInfo[0].validator.validatorDescriptions[0]; + const name = validatorDescription.moniker ?? ''; + const imageUrl = validatorDescription.avatar_url ?? ''; + const bio = validatorDescription.details ?? ''; + const website = validatorDescription.website ?? ''; + const address = validator; + const res: Profile = { + name, + address, + imageUrl, + bio, + website, + }; + setProfile(res); + setAvatarName(address, res); + } + }, [data, loading, setAvatarName, validator]); + + return { profile, loading }; +}; + +export default useConsumerCustomValidator; diff --git a/apps/web-stride/src/hooks/useCustomProfile/index.ts b/apps/web-stride/src/hooks/useCustomProfile/index.ts new file mode 100644 index 0000000000..fc312164f6 --- /dev/null +++ b/apps/web-stride/src/hooks/useCustomProfile/index.ts @@ -0,0 +1,47 @@ +import { useEffect, useState } from 'react'; +import { ValidatorType } from '@/screens/validators/components/list/types'; + +interface AvatarName { + className?: string; + imageUrl: string | ''; + address: string; + name: string; + href?: (address: string) => string; + image?: React.ReactNode; + target?: JSX.IntrinsicElements['a']['target']; +} + +/** + * Accepts a list of state items and returns the appropriate profiles + * @param item + * @return a loading state and a list of profiles + */ +const useCustomProfile = (item: ValidatorType[]) => { + const [loading, setLoading] = useState(true); + const [profiles, setProfiles] = useState([]); + + useEffect(() => { + if (item.length) { + const data = item.map((x) => { + const address = x.validator ?? x.moniker[0].validator_address ?? ''; + const name = x.moniker[0].moniker ?? ''; + const imageUrl = x.moniker[0].avatar_url ?? ''; + const bio = x.moniker[0].details ?? ''; + const website = x.moniker[0].website ?? ''; + return { + address, + name, + imageUrl, + bio, + website, + }; + }); + setProfiles(data); + setLoading(false); + } + }, [item, loading]); + + return { profiles, loading }; +}; + +export default useCustomProfile; diff --git a/apps/web-stride/src/hooks/useProviderCustomValidator/index.ts b/apps/web-stride/src/hooks/useProviderCustomValidator/index.ts new file mode 100644 index 0000000000..c6de96b584 --- /dev/null +++ b/apps/web-stride/src/hooks/useProviderCustomValidator/index.ts @@ -0,0 +1,63 @@ +import { useEffect, useState } from 'react'; +import { useRecoilCallback } from 'recoil'; +import * as R from 'ramda'; +import { writeProfile } from '@/recoil/profiles/selectors'; +import { useProviderCustomValidatorQuery } from '@/graphql/types/general_types'; + +type Profile = { + name: string; + address: string; + imageUrl: string; + bio: string; + website: string; +}; + +interface providerAddressProfileResult { + profile: Profile | undefined; + loading: boolean; +} + +/** + * Accepts provider operator address and returns the appropriate profile + * @param validator - the provider operator address of the validator + * @returns The return value is an object with the following properties: + * name, address, imageUrl + */ +const useProviderCustomValidator = (validator: string): providerAddressProfileResult => { + const { data, loading } = useProviderCustomValidatorQuery({ + variables: { providerAddress: validator }, + }); + const [profile, setProfile] = useState(); + const setAvatarName = useRecoilCallback( + ({ set }) => + (address: string, avatarName: AvatarName | null) => + set(writeProfile(address), (prevState) => + R.equals(prevState, avatarName) ? prevState : avatarName + ), + [] + ); + useEffect(() => { + if (data && data.ccv_validator.length > 0) { + const validatorDescription = + data.ccv_validator[0].ccv_validator_info?.validator.validatorDescriptions[0]; + const name = validatorDescription?.moniker ?? ''; + const imageUrl = validatorDescription?.avatar_url ?? ''; + const bio = validatorDescription?.details ?? ''; + const website = validatorDescription?.website ?? ''; + const address = validator; + const res: Profile = { + name, + address, + imageUrl, + bio, + website, + }; + setProfile(res); + setAvatarName(address, res); + } + }, [data, loading, setAvatarName, validator]); + + return { profile, loading }; +}; + +export default useProviderCustomValidator; diff --git a/apps/web-stride/src/screens/account_details/components/staking/hooks.ts b/apps/web-stride/src/screens/account_details/components/staking/hooks.ts new file mode 100644 index 0000000000..30b5ac5604 --- /dev/null +++ b/apps/web-stride/src/screens/account_details/components/staking/hooks.ts @@ -0,0 +1,359 @@ +import Big from 'big.js'; +import { useRouter } from 'next/router'; +import numeral from 'numeral'; +import * as R from 'ramda'; +import { SyntheticEvent, useCallback, useEffect, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { + useAccountDelegationsQuery, + useAccountRedelegationsQuery, + useAccountUndelegationsQuery, + useValidatorAddressesQuery, + useValidatorConsumerProviderAddressesQuery, + useValidatorsQuery, + ValidatorsQuery, +} from '@/graphql/types/general_types'; +import type { + DelegationType, + RedelegationType, + StakingState, +} from '@/screens/account_details/components/staking/types'; +import type { RewardsType } from '@/screens/account_details/types'; +import { ValidatorType } from '@/screens/validators/components/list/types'; +import { formatToken } from '@/utils/format_token'; +import { getDenom } from '@/utils/get_denom'; + +const { primaryTokenUnit, prefix } = chainConfig(); + +export const ROWS_PER_PAGE = 10; + +export const formatDelegations = ( + data: Array<{ + validator_address?: string; + coins?: MsgCoin[]; + }>, + validatorsCommission: Pick[], + rewards: RewardsType +) => + data + .map((x): DelegationType => { + const validator = x?.validator_address ?? ''; + const delegation = getDenom(x.coins, primaryTokenUnit); + return { + validator, + commission: + numeral( + validatorsCommission.find((val) => val.validator === validator)?.commission?.toFixed(3) + ).value() ?? 0, + amount: formatToken(delegation.amount, delegation.denom), + reward: rewards[validator], + }; + }) + .sort((a, b) => (Big(a.amount?.value).gt(b.amount?.value) ? -1 : 1)); + +export const formatRedelegations = ( + data: Array<{ + entries?: Array<{ balance: string | number; completion_time?: string }>; + validator_src_address?: string; + validator_dst_address?: string; + }> +) => { + const results: RedelegationType[] = []; + data.forEach((x) => { + x.entries?.forEach((y) => { + results.push({ + from: x?.validator_src_address ?? '', + to: x?.validator_dst_address ?? '', + amount: formatToken(y.balance, primaryTokenUnit), + completionTime: y?.completion_time ?? '', + }); + }); + }); + + results.sort((a, b) => (a.completionTime < b.completionTime ? -1 : 1)); + + return results; +}; + +export const formatUnbondings = ( + data: Array<{ + entries?: Array<{ balance: string | number; completion_time?: string }>; + validator_address?: string; + }> +) => { + const results: Array<{ validator: string; amount: TokenUnit; completionTime: string }> = []; + data.forEach((x) => { + x?.entries?.forEach((y) => { + results.push({ + validator: x?.validator_address ?? '', + amount: formatToken(y.balance, primaryTokenUnit), + completionTime: y?.completion_time ?? '', + }); + }); + }); + + results.sort((a, b) => (a.completionTime < b.completionTime ? -1 : 1)); + + return results; +}; + +export const useStaking = ( + rewards: RewardsType, + delegationsPage: number, + redelegationsPage: number, + unbondingsPage: number +) => { + const router = useRouter(); + const [state, setState] = useState({ + tab: 0, + }); + + const [validatorsCommission, setValidatorsCommission] = useState< + Pick[] + >([]); + + // ========================== + // Fetch Data + // ========================== + useValidatorsQuery({ + onCompleted: (data) => { + formatValidators(data); + }, + }); + + // return a list of all validators with their address and commission rate + const formatValidators = useCallback( + (data: ValidatorsQuery): { items: Pick[] } => { + const formattedItems: Pick[] = data.validator + .filter((x) => x.validatorInfo) + .map((x) => ({ + validator: x.validatorInfo?.operatorAddress ?? '', + commission: (x.validatorCommissions?.[0]?.commission ?? 0) * 100, + })); + + setValidatorsCommission(formattedItems); + + return { + items: formattedItems, + }; + }, + [] + ); + + const { data: valAddressesInfo } = useValidatorAddressesQuery(); + + const { data: valAllAddresses } = useValidatorConsumerProviderAddressesQuery(); + + const address = Array.isArray(router?.query?.address) + ? router.query.address[0] + : router?.query?.address ?? ''; + + const [providerAddress, setProviderAddress] = useState(address); + + useEffect(() => { + let provider = ''; + if (valAllAddresses) { + if (providerAddress.startsWith(prefix.validator)) { + const matchingValidator = valAllAddresses.ccv_validator.find( + (x) => x.consumerOperatorAddress === providerAddress + ); + if (matchingValidator) { + provider = matchingValidator.providerSelfDelegateAddress ?? ''; + } else { + provider = address; + } + setProviderAddress(provider); + } + } + }, [address, providerAddress, valAddressesInfo, valAllAddresses]); + + // ===================================== + // delegations + // ===================================== + const { + data: delegationsData, + loading: delegationsLoading, + error: delegationsError, + refetch: delegationsRefetch, + } = useAccountDelegationsQuery({ + variables: { + address: providerAddress, + limit: ROWS_PER_PAGE, + offset: delegationsPage * ROWS_PER_PAGE, + }, + }); + useEffect(() => { + if (delegationsLoading) return; + if (delegationsError) { + delegationsRefetch({ pagination: false }); + } + }, [delegationsError, delegationsLoading, delegationsRefetch]); + useAccountDelegationsQuery({ + variables: { + address: providerAddress, + limit: ROWS_PER_PAGE, + offset: (delegationsPage + 1) * ROWS_PER_PAGE, + }, + }); + + const [delegationsPagination, setDelegationsPagination] = useState(); + const { + data: dData, + error: dError, + refetch: dRefetch, + } = useAccountDelegationsQuery({ + variables: { + address: providerAddress, + limit: 0, + offset: 0, + pagination: true, + }, + skip: delegationsPagination !== undefined, + }); + useEffect(() => { + if (dError) { + dRefetch(); + } else if (dData) { + setDelegationsPagination(dData?.delegations?.pagination?.total ?? 0); + } + }, [dData, dError, dRefetch]); + + // ===================================== + // redelegations + // ===================================== + const { + data: redelegationsData, + loading: redelegationsLoading, + error: redelegationsError, + refetch: redelegationsRefetch, + } = useAccountRedelegationsQuery({ + variables: { + address: providerAddress, + limit: ROWS_PER_PAGE, + offset: redelegationsPage * ROWS_PER_PAGE, + }, + }); + useEffect(() => { + if (redelegationsLoading) return; + if (redelegationsError) { + redelegationsRefetch({ pagination: false }); + } + }, [redelegationsError, redelegationsLoading, redelegationsRefetch]); + useAccountRedelegationsQuery({ + variables: { + address: providerAddress, + limit: ROWS_PER_PAGE, + offset: (redelegationsPage + 1) * ROWS_PER_PAGE, + }, + }); + + const [redelegationsPagination, setRedelegationsPagination] = useState(); + const { + data: rData, + error: rError, + refetch: rRefetch, + } = useAccountRedelegationsQuery({ + variables: { + address: providerAddress, + limit: 0, + offset: 0, + pagination: true, + }, + skip: redelegationsPagination !== undefined, + }); + useEffect(() => { + if (rError) { + rRefetch(); + } else if (rData) { + setRedelegationsPagination(rData?.redelegations?.pagination?.total ?? 0); + } + }, [rData, rError, rRefetch]); + + // ===================================== + // unbondings + // ===================================== + const { + data: undelegationsData, + loading: undelegationsLoading, + error: undelegationsError, + refetch: undelegationsRefetch, + } = useAccountUndelegationsQuery({ + variables: { + address: providerAddress, + limit: ROWS_PER_PAGE, + offset: unbondingsPage * ROWS_PER_PAGE, + }, + }); + useEffect(() => { + if (undelegationsLoading) return; + if (undelegationsError) { + undelegationsRefetch({ pagination: false }); + } + }, [undelegationsError, undelegationsLoading, undelegationsRefetch]); + useAccountUndelegationsQuery({ + variables: { + address: providerAddress, + limit: ROWS_PER_PAGE, + offset: (unbondingsPage + 1) * ROWS_PER_PAGE, + }, + }); + + const [undelegationsPagination, setUndelegationsPagination] = useState(); + const { + data: uData, + error: uError, + refetch: uRefetch, + } = useAccountUndelegationsQuery({ + variables: { + address: providerAddress, + limit: 0, + offset: 0, + pagination: true, + }, + skip: undelegationsPagination !== undefined, + }); + useEffect(() => { + if (uError) { + uRefetch(); + } else if (uData) { + setUndelegationsPagination(uData?.undelegations?.pagination?.total ?? 0); + } + }, [uData, uError, uRefetch]); + + const handleTabChange = useCallback( + (_event: SyntheticEvent, newValue: number) => { + setState((prevState) => { + const newState = { ...prevState, tab: newValue }; + return R.equals(prevState, newState) ? prevState : newState; + }); + }, + [] + ); + + return { + state, + delegations: { + loading: delegationsLoading, + count: delegationsPagination, + data: formatDelegations( + delegationsData?.delegations?.delegations ?? [], + validatorsCommission, + rewards + ), + error: delegationsError, + }, + redelegations: { + loading: redelegationsLoading, + count: redelegationsPagination, + data: formatRedelegations(redelegationsData?.redelegations?.redelegations ?? []), + error: redelegationsError, + }, + unbondings: { + loading: undelegationsLoading, + count: undelegationsPagination, + data: formatUnbondings(undelegationsData?.undelegations?.undelegations ?? []), + error: undelegationsError, + }, + handleTabChange, + }; +}; diff --git a/apps/web-stride/src/screens/account_details/hooks.ts b/apps/web-stride/src/screens/account_details/hooks.ts new file mode 100644 index 0000000000..dcafcf61d6 --- /dev/null +++ b/apps/web-stride/src/screens/account_details/hooks.ts @@ -0,0 +1,324 @@ +import Big from 'big.js'; +import { useRouter } from 'next/router'; +import * as R from 'ramda'; +import { useCallback, useEffect, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { useDesmosProfile } from '@/hooks/use_desmos_profile'; +import type { + AccountDetailState, + BalanceType, + OtherTokenType, +} from '@/screens/account_details/types'; +import { + useAccountWithdrawalAddress, + useAvailableBalances, + useCommission, + useDelegationBalance, + useRewards, + useUnbondingBalance, +} from '@/screens/account_details/utils'; +import { formatToken } from '@/utils/format_token'; +import { getDenom } from '@/utils/get_denom'; +import { useValidatorConsumerProviderAddressesQuery } from '@/graphql/types/general_types'; + +const { extra, primaryTokenUnit, tokenUnits, prefix } = chainConfig(); + +const defaultTokenUnit: TokenUnit = { + value: '0', + baseDenom: '', + displayDenom: '', + exponent: 0, +}; + +const initialState: AccountDetailState = { + loading: true, + balanceLoading: true, + exists: true, + desmosProfile: null, + overview: { + address: '', + withdrawalAddress: '', + }, + otherTokens: { + count: 0, + data: [], + }, + balance: { + available: defaultTokenUnit, + delegate: defaultTokenUnit, + unbonding: defaultTokenUnit, + reward: defaultTokenUnit, + commission: defaultTokenUnit, + total: defaultTokenUnit, + }, + rewards: {}, +}; + +type Data = { + delegationRewards?: unknown; + accountBalances?: unknown; + delegationBalance?: unknown; + unbondingBalance?: unknown; + commission?: unknown; +}; + +// ============================ +// rewards +// ============================ +const formatRewards = (_data: Data) => { + const rewardsDict: { [key: string]: TokenUnit } = {}; + // log all the rewards + // data?.delegationRewards?.forEach((x) => { + // if (!x) return; + // const coins = x.coins ?? []; + // const denomAmount = getDenom(coins, primaryTokenUnit); + // const denomFormat = formatToken(denomAmount.amount, primaryTokenUnit); + // rewardsDict[x.validatorAddress ?? ''] = denomFormat; + // }); + return rewardsDict; +}; + +// ============================ +// balance +// ============================ +const formatBalance = (data: Data): BalanceType => { + const available = getDenom(R.pathOr([], ['accountBalances', 'coins'], data), primaryTokenUnit); + const availableAmount = formatToken(available.amount, primaryTokenUnit); + const delegate = getDenom(R.pathOr([], ['delegationBalance', 'coins'], data), primaryTokenUnit); + const delegateAmount = formatToken(delegate.amount, primaryTokenUnit); + + const unbonding = getDenom(R.pathOr([], ['unbondingBalance', 'coins'], data), primaryTokenUnit); + const unbondingAmount = formatToken(unbonding.amount, primaryTokenUnit); + + const rewards = '0'; + // data.delegationRewards?.reduce((a: BigSource, b: unknown) => { + // if (!b) return a; + // const coins = R.pathOr([], ['coins'], b); + // const dsmCoins = getDenom(coins, primaryTokenUnit); + + // return Big(a).plus(dsmCoins.amount).toPrecision(); + // }, '0') ?? '0'; + const rewardsAmount = formatToken(rewards, primaryTokenUnit); + + // const commission = getDenom( + // R.pathOr['coins']>>( + // [], + // ['commission', 'coins'], + // data + // ), + // primaryTokenUnit + // ); + const commissionAmount = formatToken(0, primaryTokenUnit); + + const total = Big(availableAmount.value) + .plus(delegateAmount.value) + .plus(unbondingAmount.value) + .plus(rewardsAmount.value) + .plus(commissionAmount.value) + .toFixed(tokenUnits?.[primaryTokenUnit].exponent); + + const balance: BalanceType = { + available: availableAmount, + delegate: delegateAmount, + unbonding: unbondingAmount, + reward: rewardsAmount, + commission: commissionAmount, + total: { + value: total, + displayDenom: availableAmount.displayDenom, + baseDenom: availableAmount.baseDenom, + exponent: availableAmount.exponent, + }, + }; + + return balance; +}; + +// ============================ +// other tokens +// ============================ +const formatOtherTokens = (data: Data) => { + // Loop through balance and delegation to figure out what the other tokens are + const otherTokenUnits = new Set(); + const otherTokens: OtherTokenType[] = []; + // available tokens + const available = R.pathOr([], ['accountBalances', 'coins'], data); + + available.forEach((x) => { + otherTokenUnits.add(x.denom); + }); + + // rewards tokens + const rewards = R.pathOr }>>([], ['delegationRewards'], data); + + rewards.forEach((x) => { + x.coins?.forEach((y) => { + otherTokenUnits.add(y.denom); + }); + }); + + // commission tokens + const commission = R.pathOr([], ['commission', 'coins'], data); + + commission.forEach((x) => { + otherTokenUnits.add(x.denom); + }); + + // remove the primary token unit thats being shown in balance + otherTokenUnits.delete(primaryTokenUnit); + + otherTokenUnits.forEach((x: string) => { + const availableRawAmount = getDenom(available, x); + const availableAmount = formatToken(availableRawAmount.amount, x); + const rewardsRawAmount = rewards.reduce((a, b) => { + const coins = R.pathOr>([], ['coins'], b); + const denom = getDenom(coins, x); + return Big(a).plus(denom.amount).toPrecision(); + }, '0'); + const rewardAmount = formatToken(rewardsRawAmount, x); + const commissionRawAmount = getDenom(commission, x); + const commissionAmount = formatToken(commissionRawAmount.amount, x); + + otherTokens.push({ + denom: tokenUnits?.[x]?.display ?? x, + available: availableAmount, + reward: rewardAmount, + commission: commissionAmount, + }); + }); + + return { + data: otherTokens, + count: otherTokens.length, + }; +}; + +// ========================== +// Format Data +// ========================== +const formatAllBalance = (data: Data) => { + const stateChange: Partial = { + balanceLoading: false, + }; + + stateChange.rewards = formatRewards(data); + + stateChange.balance = formatBalance(data); + + formatOtherTokens(data); + + stateChange.otherTokens = formatOtherTokens(data); + + return stateChange; +}; + +export const useAccountDetails = () => { + const router = useRouter(); + const [state, setState] = useState(initialState); + + const handleSetState = useCallback( + (stateChange: (prevState: AccountDetailState) => AccountDetailState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, + [] + ); + + const { data: valAddressesInfo } = useValidatorConsumerProviderAddressesQuery(); + + const address = Array.isArray(router.query.address) + ? router.query.address[0] + : router.query.address ?? ''; + + const [providerAddress, setProviderAddress] = useState(address); + + useEffect(() => { + let provider = ''; + if (valAddressesInfo?.ccv_validator) { + if (providerAddress.startsWith(prefix.validator)) { + const matchingValidator = valAddressesInfo.ccv_validator.find( + (x) => x.consumerOperatorAddress === providerAddress + ); + if (matchingValidator) { + provider = matchingValidator.providerOperatorAddress ?? ''; + } else { + provider = address; + } + setProviderAddress(provider); + } + } + }, [address, providerAddress, valAddressesInfo]); + + // ========================== + // Desmos Profile + // ========================== + const { data: dataDesmosProfile, loading: loadingDesmosProfile } = useDesmosProfile({ + addresses: [address], + skip: !extra.profile || !address, + }); + useEffect( + () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), + [dataDesmosProfile] + ); + + const commission = useCommission(providerAddress); + const available = useAvailableBalances(providerAddress); + const delegation = useDelegationBalance(providerAddress); + const unbonding = useUnbondingBalance(providerAddress); + const rewards = useRewards(providerAddress); + + useEffect(() => { + const formattedRawData: { + commission?: any; + accountBalances?: any; + delegationBalance?: any; + unbondingBalance?: any; + delegationRewards?: any; + } = {}; + formattedRawData.commission = R.pathOr({ coins: [] }, ['commission'], commission); + formattedRawData.accountBalances = R.pathOr( + { coins: [] }, + ['bdjuno_provider', 'accountBalances'], + available + ); + formattedRawData.delegationBalance = R.pathOr( + { coins: [] }, + ['bdjuno_provider', 'delegationBalance'], + delegation + ); + formattedRawData.unbondingBalance = R.pathOr( + { coins: [] }, + ['bdjuno_provider', 'unbondingBalance'], + unbonding + ); + formattedRawData.delegationRewards = R.pathOr( + [], + ['bdjuno_provider', 'delegationRewards'], + rewards + ); + handleSetState((prevState) => ({ ...prevState, ...formatAllBalance(formattedRawData) })); + }, [commission, available, delegation, unbonding, rewards, handleSetState]); + + // ========================== + // Fetch Data + // ========================== + const withdrawalAddress = useAccountWithdrawalAddress(providerAddress); + useEffect(() => { + handleSetState((prevState) => ({ + ...prevState, + overview: { + address: address ?? '', + withdrawalAddress: address ?? withdrawalAddress?.withdrawalAddress?.address ?? '', + }, + })); + }, [handleSetState, address, withdrawalAddress?.withdrawalAddress?.address, providerAddress]); + + if (loadingDesmosProfile) state.loading = true; + + return { state }; +}; +// function useBoundingBalance(_address?: string) { +// throw new Error('Function not implemented.'); +// } diff --git a/apps/web-stride/src/screens/blocks/components/desktop/index.tsx b/apps/web-stride/src/screens/blocks/components/desktop/index.tsx new file mode 100644 index 0000000000..a2e24c6726 --- /dev/null +++ b/apps/web-stride/src/screens/blocks/components/desktop/index.tsx @@ -0,0 +1,206 @@ +import AvatarName from '@/components/avatar_name'; +import Loading from '@/components/loading'; +import Timestamp from '@/components/Timestamp'; +import { useGrid } from '@/hooks/use_react_window'; +import useProviderCustomValidator from '@/hooks/useProviderCustomValidator'; +import useStyles from '@/screens/blocks/components/desktop/styles'; +import { columns } from '@/screens/blocks/components/desktop/utils'; +import type { ItemType } from '@/screens/blocks/types'; +import { getMiddleEllipsis } from '@/utils/get_middle_ellipsis'; +import { BLOCK_DETAILS, VALIDATOR_DETAILS } from '@/utils/go_to_page'; +import { mergeRefs } from '@/utils/merge_refs'; +import Typography from '@mui/material/Typography'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import Link from 'next/link'; +import numeral from 'numeral'; +import { ComponentProps, CSSProperties, FC, LegacyRef, ReactNode } from 'react'; +import AutoSizer from 'react-virtualized-auto-sizer'; +import { VariableSizeGrid as Grid } from 'react-window'; +import InfiniteLoader from 'react-window-infinite-loader'; + +type BlockItemProps = { + item: ItemType; + rowIndex: number; + column: string; + style: CSSProperties; + align?: ComponentProps['align']; +}; + +const BlockItem: FC = ({ item, rowIndex, column, style, align }) => { + const { profile } = useProviderCustomValidator(item.proposer); + const { classes, cx } = useStyles(); + let formattedItem: ReactNode | null = null; + switch (column) { + case 'height': + formattedItem = ( + + {numeral(item.height).format('0,0')} + + ); + break; + case 'txs': + formattedItem = numeral(item.txs).format('0,0'); + break; + case 'time': + formattedItem = ; + break; + case 'proposer': + formattedItem = ( + + ); + break; + case 'hash': + formattedItem = getMiddleEllipsis(item.hash, { + beginning: 13, + ending: 15, + }); + break; + default: + break; + } + return ( +
+ + {formattedItem} + +
+ ); +}; + +type DesktopProps = { + className?: string; + items: ItemType[]; + itemCount: number; + loadMoreItems: (...arg: unknown[]) => void; + isItemLoaded?: (index: number) => boolean; +}; + +const Desktop: FC = ({ + className, + items, + itemCount, + loadMoreItems, + isItemLoaded, +}) => { + const { t } = useAppTranslation('blocks'); + const { classes, cx } = useStyles(); + const { gridRef, columnRef, onResize, getColumnWidth, getRowHeight } = useGrid(columns); + + return ( +
+ + {({ height, width }) => ( + <> + {/* ======================================= */} + {/* Table Header */} + {/* ======================================= */} + } + columnCount={columns.length} + columnWidth={(index) => getColumnWidth(width ?? 0, index)} + height={50} + rowCount={1} + rowHeight={() => 50} + width={width ?? 0} + > + {({ columnIndex, style }) => { + const { key, align } = columns[columnIndex]; + + return ( +
+ + {t(key)} + +
+ ); + }} +
+ {/* ======================================= */} + {/* Table Body */} + {/* ======================================= */} + true)} + itemCount={itemCount} + loadMoreItems={ + loadMoreItems ?? + (() => { + // do nothing + }) + } + > + {({ onItemsRendered, ref }) => ( + { + onItemsRendered({ + overscanStartIndex: overscanRowStartIndex, + overscanStopIndex: overscanRowStopIndex, + visibleStartIndex: visibleRowStartIndex, + visibleStopIndex: visibleRowStopIndex, + }); + }} + ref={mergeRefs(gridRef, ref)} + columnCount={columns.length} + columnWidth={(index) => getColumnWidth(width ?? 0, index)} + height={(height ?? 0) - 50} + rowCount={itemCount} + rowHeight={getRowHeight} + width={width ?? 0} + className="scrollbar" + > + {({ columnIndex, rowIndex, style }) => { + if (!isItemLoaded?.(rowIndex) && columnIndex === 0) { + return ( +
+ +
+ ); + } + + if (!isItemLoaded?.(rowIndex)) { + return null; + } + + const { key, align } = columns[columnIndex]; + const item = items[rowIndex]; + return ( + + ); + }} +
+ )} +
+ + )} +
+
+ ); +}; + +export default Desktop; diff --git a/apps/web-stride/src/screens/blocks/components/mobile/index.tsx b/apps/web-stride/src/screens/blocks/components/mobile/index.tsx new file mode 100644 index 0000000000..767143b197 --- /dev/null +++ b/apps/web-stride/src/screens/blocks/components/mobile/index.tsx @@ -0,0 +1,129 @@ +import AvatarName from '@/components/avatar_name'; +import Loading from '@/components/loading'; +import SingleBlockMobile from '@/components/single_block_mobile'; +import Timestamp from '@/components/Timestamp'; +import { useList, useListRow } from '@/hooks/use_react_window'; +import { useProfileRecoil } from '@/recoil/profiles/hooks'; +import useStyles from '@/screens/blocks/components/mobile/styles'; +import type { ItemType } from '@/screens/blocks/types'; +import { getMiddleEllipsis } from '@/utils/get_middle_ellipsis'; +import { BLOCK_DETAILS, VALIDATOR_DETAILS } from '@/utils/go_to_page'; +import { mergeRefs } from '@/utils/merge_refs'; +import Divider from '@mui/material/Divider'; +import Link from 'next/link'; +import numeral from 'numeral'; +import { FC } from 'react'; +import AutoSizer from 'react-virtualized-auto-sizer'; +import { ListChildComponentProps, VariableSizeList as List } from 'react-window'; +import InfiniteLoader from 'react-window-infinite-loader'; + +type ListItemProps = Pick & { + setRowHeight: Parameters[1]; + isItemLoaded: ((index: number) => boolean) | undefined; + item: ItemType; + isLast: boolean; +}; + +const ListItem: FC = ({ + index, + style, + setRowHeight, + isItemLoaded, + item, + isLast, +}) => { + const { name, address, imageUrl } = useProfileRecoil(item.proposer); + const formattedItem = { + height: ( + + {numeral(item.height).format('0,0')} + + ), + txs: numeral(item.txs).format('0,0'), + time: , + proposer: ( + + ), + hash: getMiddleEllipsis(item.hash, { + beginning: 13, + ending: 10, + }), + }; + + const { rowRef } = useListRow(index, setRowHeight); + if (!isItemLoaded?.(index)) { + return ( +
+
+ +
+
+ ); + } + return ( +
+
+ + {!isLast && } +
+
+ ); +}; + +type MobileProps = { + className?: string; + items: ItemType[]; + itemCount: number; + loadMoreItems: (...arg: unknown[]) => void; + isItemLoaded?: (index: number) => boolean; +}; + +const Mobile: FC = ({ className, items, itemCount, loadMoreItems, isItemLoaded }) => { + const { classes, cx } = useStyles(); + const { listRef, getRowHeight, setRowHeight } = useList(); + + return ( +
+ + {({ height, width }) => ( + true)} + itemCount={itemCount} + loadMoreItems={ + loadMoreItems ?? + (() => { + // do nothing + }) + } + > + {({ onItemsRendered, ref }) => ( + + {({ index, style }) => ( + + )} + + )} + + )} + +
+ ); +}; + +export default Mobile; diff --git a/apps/web-stride/src/screens/blocks/hooks.ts b/apps/web-stride/src/screens/blocks/hooks.ts new file mode 100644 index 0000000000..d8fc88074d --- /dev/null +++ b/apps/web-stride/src/screens/blocks/hooks.ts @@ -0,0 +1,161 @@ +import * as R from 'ramda'; +import { useCallback, useState } from 'react'; +import { + BlocksListenerSubscription, + useBlocksListenerSubscription, + useBlocksQuery, + BlocksQuery, +} from '@/graphql/types/general_types'; +import type { BlocksState, BlockType } from '@/screens/blocks/types'; + +// This is a bandaid as it can get extremely +// expensive if there is too much data +/** + * Helps remove any possible duplication + * and sorts by height in case it bugs out + */ +const uniqueAndSort = R.pipe( + R.uniqBy((r: BlockType) => r?.height), + R.sort(R.descend((r) => r?.height)) +); + +const formatBlocks = (data: BlocksListenerSubscription): BlockType[] => { + let formattedData = data.blocks; + if (data.blocks.length === 51) { + formattedData = data.blocks.slice(0, 51); + } + return ( + formattedData?.map((x) => { + const proposerAddress = x?.validator?.providerOperatorAddress ?? ''; + const consumerAdx = x?.validator?.consumerOperatorAddress ?? ''; + return { + height: x.height, + txs: x.txs ?? 0, + hash: x.hash, + timestamp: x.timestamp, + proposer: proposerAddress, + consumer: consumerAdx, + }; + }) ?? [] + ); +}; + +const formatBlocksQuery = (data: BlocksQuery): BlockType[] => { + let formattedData = data.blocks; + if (data.blocks.length === 51) { + formattedData = data.blocks.slice(0, 51); + } + return ( + formattedData?.map((x) => { + const proposerAddress = x?.ccv_validator?.providerOperatorAddress ?? ''; + const consumerAdx = x?.ccv_validator?.consumerOperatorAddress ?? ''; + return { + height: x.height, + txs: x.txs ?? 0, + hash: x.hash, + timestamp: x.timestamp, + proposer: proposerAddress, + consumer: consumerAdx, + }; + }) ?? [] + ); +}; + +export const useBlocks = () => { + const [state, setState] = useState({ + loading: true, + exists: true, + items: [], + hasNextPage: false, + isNextPageLoading: true, + }); + + const handleSetState = useCallback((stateChange: (prevState: BlocksState) => BlocksState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, []); + + // ================================ + // block subscription + // ================================ + useBlocksListenerSubscription({ + variables: { + limit: 1, + offset: 0, + }, + onData: (data) => { + const newItems = uniqueAndSort([ + ...(data.data.data ? formatBlocks(data.data.data) : []), + ...state.items, + ]); + handleSetState((prevState) => ({ + ...prevState, + loading: false, + items: newItems, + })); + }, + }); + + // ================================ + // block query + // ================================ + const LIMIT = 51; + const blockQuery = useBlocksQuery({ + variables: { + limit: LIMIT, + offset: 1, + }, + onCompleted: (data) => { + const itemsLength = data.blocks.length; + const newItems = uniqueAndSort([...state.items, ...formatBlocksQuery(data)]); + handleSetState((prevState) => ({ + ...prevState, + loading: false, + items: newItems, + hasNextPage: itemsLength === 51, + isNextPageLoading: false, + })); + }, + onError: () => { + handleSetState((prevState) => ({ ...prevState, loading: false })); + }, + }); + + const loadNextPage = async () => { + handleSetState((prevState) => ({ ...prevState, isNextPageLoading: true })); + // refetch query + await blockQuery + .fetchMore({ + variables: { + offset: state.items.length, + limit: LIMIT, + }, + }) + .then(({ data }) => { + const itemsLength = data.blocks.length; + const newItems = uniqueAndSort([...state.items, ...formatBlocks(data)]); + + // set new state + handleSetState((prevState) => ({ + ...prevState, + items: newItems, + isNextPageLoading: false, + hasNextPage: itemsLength === 51, + })); + }); + }; + + const itemCount = state.hasNextPage ? state.items.length + 1 : state.items.length; + const loadMoreItems = state.isNextPageLoading ? () => null : loadNextPage; + const isItemLoaded = (index: number) => !state.hasNextPage || index < state.items.length; + + return { + state, + loadNextPage, + itemCount, + loadMoreItems, + isItemLoaded, + }; +}; diff --git a/apps/web-stride/src/screens/blocks/types.ts b/apps/web-stride/src/screens/blocks/types.ts new file mode 100644 index 0000000000..1199f718be --- /dev/null +++ b/apps/web-stride/src/screens/blocks/types.ts @@ -0,0 +1,18 @@ +export interface BlockType { + height: number; + txs: number; + timestamp: string; + proposer: string; + consumer: string; + hash: string; +} + +export interface BlocksState { + loading: boolean; + exists: boolean; + hasNextPage: boolean; + isNextPageLoading: boolean; + items: BlockType[]; +} + +export type ItemType = BlockType; diff --git a/apps/web-stride/src/screens/home/components/blocks/components/desktop/index.tsx b/apps/web-stride/src/screens/home/components/blocks/components/desktop/index.tsx new file mode 100644 index 0000000000..f738ddb4f4 --- /dev/null +++ b/apps/web-stride/src/screens/home/components/blocks/components/desktop/index.tsx @@ -0,0 +1,134 @@ +import AvatarName from '@/components/avatar_name'; +import Timestamp from '@/components/Timestamp'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import useProviderCustomValidator from '@/hooks/useProviderCustomValidator'; +import useStyles from '@/screens/home/components/blocks/components/desktop/styles'; +import { columns } from '@/screens/home/components/blocks/components/desktop/utils'; +import type { ItemType } from '@/screens/home/components/blocks/types'; +import { getMiddleEllipsis } from '@/utils/get_middle_ellipsis'; +import { BLOCK_DETAILS } from '@/utils/go_to_page'; +import Table from '@mui/material/Table'; +import TableBody from '@mui/material/TableBody'; +import TableCell from '@mui/material/TableCell'; +import TableHead from '@mui/material/TableHead'; +import TableRow from '@mui/material/TableRow'; +import { AnimatePresence, motion, Variants } from 'framer-motion'; +import Link from 'next/link'; +import numeral from 'numeral'; +import { FC } from 'react'; + +type BlockRowProps = { + item: ItemType; +}; + +const variants: Variants = { + initial: { + height: 0, + display: 'flex', + alignItems: 'center', + overflow: 'hidden', + clipPath: 'inset(0 50 0 50)', + }, + animate: { + height: 50, + display: 'flex', + alignItems: 'center', + overflow: 'hidden', + clipPath: 'inset(0 0 0 0)', + }, + exit: { + height: 50, + display: 'flex', + alignItems: 'center', + overflow: 'hidden', + position: 'absolute', + marginTop: [50, 60], + opacity: 0, + transition: { duration: 0.5 }, + }, +}; + +const BlockRow: FC = ({ item }) => { + const { profile } = useProviderCustomValidator(item.proposer); + const name = profile?.name ?? item.proposer; + const imageUrl = profile?.imageUrl ?? ''; + const address = profile?.address ?? item.proposer; + + const formattedData = { + height: ( + + {numeral(item.height).format('0,0')} + + ), + txs: numeral(item.txs).format('0,0'), + time: , + proposer: ( + + ), + hash: getMiddleEllipsis(item.hash, { + beginning: 6, + ending: 5, + }), + }; + return ( + + {columns.map((column) => { + const { key, align } = column; + return ( + + + {formattedData[key as keyof typeof formattedData]} + + + ); + })} + + ); +}; + +type DesktopProps = { + className?: string; + items: ItemType[]; +}; + +const Desktop: FC = ({ className, items }) => { + const { t } = useAppTranslation('blocks'); + const { classes, cx } = useStyles(); + + return ( +
+ + + + {columns.map((column) => ( + + {t(column.key)} + + ))} + + + + + {items.map((row) => ( + + ))} + + +
+
+ ); +}; + +export default Desktop; diff --git a/apps/web-stride/src/screens/home/components/blocks/components/mobile/index.tsx b/apps/web-stride/src/screens/home/components/blocks/components/mobile/index.tsx new file mode 100644 index 0000000000..cf99dd8d68 --- /dev/null +++ b/apps/web-stride/src/screens/home/components/blocks/components/mobile/index.tsx @@ -0,0 +1,65 @@ +import AvatarName from '@/components/avatar_name'; +import SingleBlockMobile from '@/components/single_block_mobile'; +import Timestamp from '@/components/Timestamp'; +import useProviderCustomValidator from '@/hooks/useProviderCustomValidator'; +import type { ItemType } from '@/screens/home/components/blocks/types'; +import { getMiddleEllipsis } from '@/utils/get_middle_ellipsis'; +import { BLOCK_DETAILS } from '@/utils/go_to_page'; +import Divider from '@mui/material/Divider'; +import Link from 'next/link'; +import numeral from 'numeral'; +import { FC, Fragment } from 'react'; + +type BlocksItemProps = { + item: ItemType; + i: number; + isLast: boolean; +}; + +const BlocksItem: FC = ({ item, i, isLast }) => { + const { profile } = useProviderCustomValidator(item.proposer); + const name = profile?.name ?? item.proposer; + const imageUrl = profile?.imageUrl ?? ''; + const address = profile?.address ?? item.proposer; + return ( + + + {numeral(item.height).format('0,0')} + + } + txs={numeral(item.txs).format('0,0')} + time={} + proposer={ + + } + hash={getMiddleEllipsis(item.hash, { + beginning: 13, + ending: 10, + })} + /> + {!isLast && } + + ); +}; + +type MobileProps = { + className?: string; + items: ItemType[]; +}; + +const Mobile: FC = ({ className, items }) => ( +
+ {items?.map((x, i) => ( + + ))} +
+); + +export default Mobile; diff --git a/apps/web-stride/src/screens/home/components/blocks/hooks.ts b/apps/web-stride/src/screens/home/components/blocks/hooks.ts new file mode 100644 index 0000000000..7913ab4b0d --- /dev/null +++ b/apps/web-stride/src/screens/home/components/blocks/hooks.ts @@ -0,0 +1,52 @@ +import * as R from 'ramda'; +import { useCallback, useState } from 'react'; +import { + BlocksListenerSubscription, + useBlocksListenerSubscription, +} from '@/graphql/types/general_types'; +import type { BlocksState } from '@/screens/home/components/blocks/types'; + +const formatBlocks = (data: BlocksListenerSubscription) => + data.blocks.map((x) => { + const proposerAddress = x?.validator ? x?.validator?.providerOperatorAddress : ''; + const consumerAdx = x?.validator?.consumerOperatorAddress ?? ''; + return { + height: x.height, + txs: x.txs ?? 0, + hash: x.hash, + timestamp: x.timestamp, + proposer: proposerAddress, + consumer: consumerAdx, + }; + }) ?? []; + +export const useBlocks = () => { + const [state, setState] = useState({ + loading: true, + items: [], + }); + + const handleSetState = useCallback((stateChange: (prevState: BlocksState) => BlocksState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, []); + + // ================================ + // block subscription + // ================================ + useBlocksListenerSubscription({ + onData: (data) => { + handleSetState((prevState) => ({ + ...prevState, + loading: false, + items: data.data.data ? formatBlocks(data.data.data) : [], + })); + }, + }); + + return { + state, + }; +}; diff --git a/apps/web-stride/src/screens/home/components/blocks/types.ts b/apps/web-stride/src/screens/home/components/blocks/types.ts new file mode 100644 index 0000000000..6b4e991641 --- /dev/null +++ b/apps/web-stride/src/screens/home/components/blocks/types.ts @@ -0,0 +1,15 @@ +export interface BlockType { + height: number; + txs: number; + timestamp: string; + proposer: string; + consumer: string; + hash: string; +} + +export interface BlocksState { + loading: boolean; + items: BlockType[]; +} + +export type ItemType = BlockType; diff --git a/apps/web-stride/src/screens/validator_details/hooks.ts b/apps/web-stride/src/screens/validator_details/hooks.ts new file mode 100644 index 0000000000..1676c2ece8 --- /dev/null +++ b/apps/web-stride/src/screens/validator_details/hooks.ts @@ -0,0 +1,161 @@ +import { useRouter } from 'next/router'; +import * as R from 'ramda'; +import { useCallback, useEffect, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { useValidatorDetailsQuery, ValidatorDetailsQuery } from '@/graphql/types/general_types'; +import { useDesmosProfile } from '@/hooks/use_desmos_profile'; +import { SlashingParams } from '@/models'; +import { StatusType, ValidatorDetailsState } from '@/screens/validator_details/types'; +import { formatToken } from '@/utils/format_token'; +import { getValidatorCondition } from '@/utils/get_validator_condition'; + +const { extra, votingPowerTokenUnit } = chainConfig(); + +const initialTokenDenom: TokenUnit = { + value: '0', + displayDenom: '', + baseDenom: '', + exponent: 0, +}; + +const initialState: ValidatorDetailsState = { + exists: true, + desmosProfile: null, + overview: { + validator: '', + operatorAddress: '', + selfDelegateAddress: '', + description: '', + website: '', + }, + status: { + status: 0, + jailed: false, + tombstoned: false, + condition: 0, + commission: 0, + missedBlockCounter: 0, + signedBlockWindow: 0, + maxRate: '0', + }, + votingPower: { + height: 0, + overall: initialTokenDenom, + self: 0, + }, +}; + +// ============================ +// overview +// ============================ +const formatOverview = (data: ValidatorDetailsQuery) => { + const operatorAddress = data?.validator?.[0]?.validatorInfo?.operatorAddress ?? ''; + const selfDelegateAddress = data?.validator?.[0]?.validatorInfo?.selfDelegateAddress ?? ''; + const profile = { + validator: operatorAddress, + operatorAddress, + selfDelegateAddress, + description: data.validator[0]?.validatorDescriptions?.[0]?.details ?? '', + website: data.validator[0]?.validatorDescriptions?.[0]?.website ?? '', + }; + + return profile; +}; + +// ============================ +// status +// ============================ +const formatStatus = (data: ValidatorDetailsQuery) => { + const slashingParams = SlashingParams.fromJson(data?.slashingParams?.[0]?.params ?? {}); + const missedBlockCounter = + data.validator[0]?.validatorSigningInfos?.[0]?.missedBlocksCounter ?? 0; + const { signedBlockWindow } = slashingParams; + const condition = getValidatorCondition(signedBlockWindow, missedBlockCounter); + + const profile: StatusType = { + status: data.validator[0]?.validatorStatuses?.[0]?.status ?? 3, + jailed: data.validator[0]?.validatorStatuses?.[0]?.jailed ?? false, + tombstoned: data.validator[0]?.validatorSigningInfos?.[0]?.tombstoned ?? false, + commission: data.validator[0]?.validatorCommissions?.[0]?.commission ?? 0, + condition, + missedBlockCounter, + signedBlockWindow, + maxRate: data?.validator?.[0]?.validatorInfo?.maxRate ?? '0', + }; + + return profile; +}; + +// ============================ +// votingPower +// ============================ +const formatVotingPower = (data: ValidatorDetailsQuery) => { + const selfVotingPower = + (data.validator[0]?.validatorVotingPowers?.[0]?.votingPower ?? 0) / + 10 ** (extra.votingPowerExponent ?? 0); + + const votingPower = { + self: selfVotingPower, + overall: formatToken(data?.stakingPool?.[0]?.bonded ?? 0, votingPowerTokenUnit), + height: data.validator[0]?.validatorVotingPowers?.[0]?.height ?? 0, + }; + + return votingPower; +}; + +export const useValidatorDetails = () => { + const router = useRouter(); + const [state, setState] = useState(initialState); + + const handleSetState = useCallback( + (stateChange: (prevState: ValidatorDetailsState) => ValidatorDetailsState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, + [] + ); + + // ========================== + // Fetch Data + // ========================== + const { loading } = useValidatorDetailsQuery({ + variables: { + address: router.query.address as string, + }, + onCompleted: (data) => { + handleSetState((prevState) => ({ ...prevState, ...formatAccountQuery(data) })); + }, + }); + + // ========================== + // Desmos Profile + // ========================== + const { data: dataDesmosProfile, loading: loadingDesmosProfile } = useDesmosProfile({ + addresses: [state.overview.selfDelegateAddress], + skip: !extra.profile || !state.overview.selfDelegateAddress, + }); + useEffect( + () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), + [dataDesmosProfile] + ); + + return { state, loading: loading || loadingDesmosProfile }; +}; + +function formatAccountQuery(data: ValidatorDetailsQuery): Partial { + const stateChange: Partial = {}; + + if (!data.validator.length) { + stateChange.exists = false; + return stateChange; + } + + stateChange.overview = formatOverview(data); + + stateChange.status = formatStatus(data); + stateChange.votingPower = formatVotingPower(data); + + return stateChange; +} diff --git a/apps/web-stride/src/screens/validators/components/list/hooks.ts b/apps/web-stride/src/screens/validators/components/list/hooks.ts new file mode 100644 index 0000000000..5793afad60 --- /dev/null +++ b/apps/web-stride/src/screens/validators/components/list/hooks.ts @@ -0,0 +1,212 @@ +import Big from 'big.js'; +import numeral from 'numeral'; +import * as R from 'ramda'; +import { SyntheticEvent, useCallback, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { useValidatorsQuery, ValidatorsQuery } from '@/graphql/types/general_types'; +import { SlashingParams } from '@/models'; +import type { + ItemType, + ValidatorsState, + ValidatorType, +} from '@/screens/validators/components/list/types'; +import { formatToken } from '@/utils/format_token'; +import { getValidatorCondition } from '@/utils/get_validator_condition'; + +const { extra, votingPowerTokenUnit } = chainConfig(); + +// ========================== +// Parse data +// ========================== +const formatValidators = (data: ValidatorsQuery): Partial => { + const slashingParams = SlashingParams.fromJson(data?.slashingParams?.[0]?.params ?? {}); + const votingPowerOverall = + numeral( + formatToken(data?.stakingPool?.[0]?.bondedTokens ?? 0, votingPowerTokenUnit).value + ).value() ?? 0; + + const { signedBlockWindow } = slashingParams; + + let formattedItems: ValidatorType[] = data.validator + .filter((x) => x.validatorInfo && x.validatorDescriptions) + .map((x) => { + const votingPower = + (x?.validatorVotingPowers?.[0]?.votingPower ?? 0) / 10 ** (extra.votingPowerExponent ?? 0); + const votingPowerPercent = votingPowerOverall + ? numeral((votingPower / votingPowerOverall) * 100).value() + : 0; + + const missedBlockCounter = x?.validatorSigningInfos?.[0]?.missedBlocksCounter ?? 0; + const condition = getValidatorCondition(signedBlockWindow, missedBlockCounter); + + return { + moniker: x.validatorDescriptions ?? '', + validator: x.validatorInfo?.operatorAddress ?? '', + votingPower: votingPower ?? 0, + votingPowerPercent: votingPowerPercent ?? 0, + commission: (x?.validatorCommissions?.[0]?.commission ?? 0) * 100, + condition, + status: x?.validatorStatuses?.[0]?.status ?? 0, + jailed: x?.validatorStatuses?.[0]?.jailed ?? false, + tombstoned: x?.validatorSigningInfos?.[0]?.tombstoned ?? false, + }; + }); + + // get the top 34% validators + formattedItems = formattedItems.sort((a, b) => (a.votingPower > b.votingPower ? -1 : 1)); + + // add key to indicate they are part of top 34% + let cumulativeVotingPower = Big(0); + let reached = false; + formattedItems.forEach((x) => { + if (x.status === 3) { + const totalVp = cumulativeVotingPower.add(x.votingPowerPercent); + if (totalVp.lte(34) && !reached) { + x.topVotingPower = true; + } + + if (totalVp.gt(34) && !reached) { + x.topVotingPower = true; + reached = true; + } + + cumulativeVotingPower = totalVp; + } + }); + + return { + votingPowerOverall, + items: formattedItems, + }; +}; + +export const useValidators = () => { + const [search, setSearch] = useState(''); + const [state, setState] = useState({ + loading: true, + exists: true, + items: [], + votingPowerOverall: 0, + tab: 0, + sortKey: 'validator.name', + sortDirection: 'asc', + }); + + const handleSetState = useCallback( + (stateChange: (prevState: ValidatorsState) => ValidatorsState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, + [] + ); + + // ========================== + // Fetch Data + // ========================== + useValidatorsQuery({ + onCompleted: (data) => { + handleSetState((prevState) => ({ + ...prevState, + loading: false, + ...formatValidators(data), + })); + }, + onError: () => { + handleSetState((prevState) => ({ + ...prevState, + loading: false, + exists: false, + })); + }, + }); + + const handleTabChange = useCallback( + (_event: SyntheticEvent, newValue: number) => { + setState((prevState) => ({ + ...prevState, + tab: newValue, + })); + }, + [] + ); + + const handleSort = useCallback( + (key: string) => { + if (key === state.sortKey) { + setState((prevState) => ({ + ...prevState, + sortDirection: prevState.sortDirection === 'asc' ? 'desc' : 'asc', + })); + } else { + setState((prevState) => ({ + ...prevState, + sortKey: key, + sortDirection: 'asc', // new key so we start the sort by asc + })); + } + }, + [state.sortKey] + ); + + const handleSearch = useCallback((value: string) => { + setSearch(value); + }, []); + + const sortItems = useCallback( + (items: ItemType[]) => { + let sorted: ItemType[] = R.clone(items); + + if (state.tab === 0) { + sorted = sorted.filter((x) => x.status === 3); + } + + if (state.tab === 1) { + sorted = sorted.filter((x) => x.status !== 3); + } + + if (search) { + sorted = sorted.filter((x) => { + const formattedSearch = search.toLowerCase().replace(/ /g, ''); + return ( + x.validator.name.toLowerCase().replace(/ /g, '').includes(formattedSearch) || + x.validator.address.toLowerCase().includes(formattedSearch) + ); + }); + } + + if (state.sortKey && state.sortDirection) { + sorted.sort((a, b) => { + let compareA = R.pathOr('', [...state.sortKey.split('.')], a); + let compareB = R.pathOr('', [...state.sortKey.split('.')], b); + + if (typeof compareA === 'string' && typeof compareB === 'string') { + compareA = compareA.toLowerCase(); + compareB = compareB.toLowerCase(); + } + + if (compareA < compareB) { + return state.sortDirection === 'asc' ? -1 : 1; + } + if (compareA > compareB) { + return state.sortDirection === 'asc' ? 1 : -1; + } + return 0; + }); + } + + return sorted; + }, + [search, state.sortDirection, state.sortKey, state.tab] + ); + + return { + state, + handleTabChange, + handleSort, + handleSearch, + sortItems, + search, + }; +}; diff --git a/apps/web-stride/src/screens/validators/components/list/index.tsx b/apps/web-stride/src/screens/validators/components/list/index.tsx new file mode 100644 index 0000000000..26965f3d07 --- /dev/null +++ b/apps/web-stride/src/screens/validators/components/list/index.tsx @@ -0,0 +1,57 @@ +import { FC, ReactNode, useMemo } from 'react'; +import Box from '@/components/box'; +import LoadAndExist from '@/components/load_and_exist'; +import NoData from '@/components/no_data'; +import Desktop from '@/screens/validators/components/list/components/desktop'; +import Mobile from '@/screens/validators/components/list/components/mobile'; +import Tabs from '@/screens/validators/components/list/components/tabs'; +import { useValidators } from '@/screens/validators/components/list/hooks'; +import useStyles from '@/screens/validators/components/list/styles'; +import { useDisplayStyles } from '@/styles/useSharedStyles'; +import useCustomProfile from '@/hooks/useCustomProfile'; + +const List: FC = ({ className }) => { + const { classes, cx } = useStyles(); + const display = useDisplayStyles().classes; + const { state, handleTabChange, handleSearch, handleSort, sortItems, search } = useValidators(); + const { profiles: dataProfiles, loading } = useCustomProfile(state.items); + const items = useMemo( + () => sortItems(state.items.map((x, i) => ({ ...x, validator: dataProfiles?.[i] }))), + [state.items, dataProfiles, sortItems] + ); + + let list: ReactNode; + + if (!items.length) { + list = ; + } else { + list = ( + <> + + + + ); + } + + return ( + + + +
{list}
+
+
+ ); +}; + +export default List; diff --git a/apps/web-stride/src/screens/validators/components/list/types.ts b/apps/web-stride/src/screens/validators/components/list/types.ts new file mode 100644 index 0000000000..52031b052b --- /dev/null +++ b/apps/web-stride/src/screens/validators/components/list/types.ts @@ -0,0 +1,32 @@ +interface MonikerType { + moniker?: string | null | undefined; + avatar_url?: string | null; + validator_address: string; + website?: string | null; + details?: string | null; +} + +export interface ValidatorType { + moniker: MonikerType[]; + validator: string; + votingPower: number; + votingPowerPercent: number; + commission: number; + condition: number; + status: number; + jailed: boolean; + tombstoned: boolean; + topVotingPower?: boolean; // top 34% VP +} + +export interface ValidatorsState { + loading: boolean; + exists: boolean; + tab: number; + sortKey: string; + sortDirection: 'asc' | 'desc'; + votingPowerOverall: number; + items: ValidatorType[]; +} + +export type ItemType = Override; From 61b3c8ebe308a3d64844f6a01ab11b0461a27c33 Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Fri, 6 Oct 2023 09:52:27 +0700 Subject: [PATCH 06/20] fix: accounts transaction loading [web-archway] (#1306) ## Description Closes: #XXXX --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [ ] ran linting via `yarn lint` - [ ] wrote tests where necessary - [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [ ] targeted the correct branch - [ ] provided a link to the relevant issue or specification - [ ] reviewed "Files changed" and left comments if necessary - [ ] confirmed all CI checks have passed - [ ] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) --------- Co-authored-by: Ignacio --- .changeset/fuzzy-baboons-compete.md | 5 +++ .github/workflows/preview.yml | 2 +- .pnp.cjs | 34 ++++++++++-------- .../src/screens/account_details/index.tsx | 2 +- .../src/screens/account_details/index.tsx | 2 +- .../src/screens/account_details/hooks.ts | 6 ++-- .../src/screens/account_details/index.tsx | 2 +- .../src/screens/account_details/index.tsx | 2 +- .../src/screens/account_details/hooks.ts | 3 +- bun.lockb | Bin 763532 -> 0 bytes package.json | 6 +++- .../ui/src/screens/account_details/hooks.ts | 15 ++++---- yarn.lock | 3 ++ 13 files changed, 52 insertions(+), 30 deletions(-) create mode 100644 .changeset/fuzzy-baboons-compete.md delete mode 100755 bun.lockb diff --git a/.changeset/fuzzy-baboons-compete.md b/.changeset/fuzzy-baboons-compete.md new file mode 100644 index 0000000000..e11c51f70d --- /dev/null +++ b/.changeset/fuzzy-baboons-compete.md @@ -0,0 +1,5 @@ +--- +'ui': patch +--- + +fix: accounts transaction loading diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index ef9aa2d208..a2307149f1 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -61,7 +61,7 @@ jobs: env: PROJECT_NAME: ${{ matrix.project }} NEXT_PUBLIC_CHAIN_TYPE: ${{ github.event.inputs.chain_type }} - - name: Insall Vercel CLI + - name: Install Vercel CLI run: npm i -g vercel - name: Generate vercel.json run: | diff --git a/.pnp.cjs b/.pnp.cjs index ea54c75aed..ce1052bf1a 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -244,7 +244,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["eslint-plugin-turbo", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:1.9.3"],\ ["husky", "npm:8.0.3"],\ ["lint-staged", "npm:13.2.2"],\ + ["next", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:13.4.1"],\ ["prettier", "npm:2.8.8"],\ + ["react", "npm:18.2.0"],\ + ["react-dom", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:18.2.0"],\ ["turbo", "npm:1.9.3"],\ ["typescript", "patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=85af82"]\ ],\ @@ -6630,7 +6633,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@types/react", null],\ ["@types/webpack", null],\ ["chalk", "npm:3.0.0"],\ - ["next", "virtual:5684e10df0b0d4ceda81e7a49e1dce0cdeefe64f7cf73f6b65bae6b36056a2c8afe7954893d9e8e0af41d3fa80eeeeb8dbad164e06bfc993741bc538f79f2b2b#npm:13.4.1"],\ + ["next", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:13.4.1"],\ ["react", "npm:18.2.0"],\ ["rollup", "npm:2.78.0"],\ ["stacktrace-parser", "npm:0.1.10"],\ @@ -9521,7 +9524,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["eslint-plugin-turbo", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:1.9.3"],\ ["husky", "npm:8.0.3"],\ ["lint-staged", "npm:13.2.2"],\ + ["next", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:13.4.1"],\ ["prettier", "npm:2.8.8"],\ + ["react", "npm:18.2.0"],\ + ["react-dom", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:18.2.0"],\ ["turbo", "npm:1.9.3"],\ ["typescript", "patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=85af82"]\ ],\ @@ -16555,10 +16561,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:5684e10df0b0d4ceda81e7a49e1dce0cdeefe64f7cf73f6b65bae6b36056a2c8afe7954893d9e8e0af41d3fa80eeeeb8dbad164e06bfc993741bc538f79f2b2b#npm:13.4.1", {\ - "packageLocation": "./.yarn/__virtual__/next-virtual-c635472a55/0/cache/next-npm-13.4.1-90d996c9e4-169e3fbbf7.zip/node_modules/next/",\ + ["virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:13.4.1", {\ + "packageLocation": "./.yarn/__virtual__/next-virtual-40087ac84d/0/cache/next-npm-13.4.1-90d996c9e4-169e3fbbf7.zip/node_modules/next/",\ "packageDependencies": [\ - ["next", "virtual:5684e10df0b0d4ceda81e7a49e1dce0cdeefe64f7cf73f6b65bae6b36056a2c8afe7954893d9e8e0af41d3fa80eeeeb8dbad164e06bfc993741bc538f79f2b2b#npm:13.4.1"],\ + ["next", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:13.4.1"],\ ["@next/env", "npm:13.4.1"],\ ["@next/swc-darwin-arm64", "npm:13.4.1"],\ ["@next/swc-darwin-x64", "npm:13.4.1"],\ @@ -16583,9 +16589,9 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["node-sass", null],\ ["postcss", "npm:8.4.14"],\ ["react", "npm:18.2.0"],\ - ["react-dom", "virtual:5684e10df0b0d4ceda81e7a49e1dce0cdeefe64f7cf73f6b65bae6b36056a2c8afe7954893d9e8e0af41d3fa80eeeeb8dbad164e06bfc993741bc538f79f2b2b#npm:18.2.0"],\ + ["react-dom", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:18.2.0"],\ ["sass", null],\ - ["styled-jsx", "virtual:c635472a55b203fb7933b47cbfaf21672915228418b022b63d07469620c4ae464410c04ce222a6a810c944ccec4de2ee626b209f22ae8761cee3c504970f7531#npm:5.1.1"],\ + ["styled-jsx", "virtual:40087ac84dfe1219c2801565ab50b046700c498b6f5411beb214cae87f087b9683e9aed12423299df12cd9b7569920024dfc140e467ebba896624f7481c94f4d#npm:5.1.1"],\ ["zod", "npm:3.21.4"]\ ],\ "packagePeers": [\ @@ -17915,10 +17921,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:5684e10df0b0d4ceda81e7a49e1dce0cdeefe64f7cf73f6b65bae6b36056a2c8afe7954893d9e8e0af41d3fa80eeeeb8dbad164e06bfc993741bc538f79f2b2b#npm:18.2.0", {\ - "packageLocation": "./.yarn/__virtual__/react-dom-virtual-8d1937ff3e/0/cache/react-dom-npm-18.2.0-dd675bca1c-7d323310be.zip/node_modules/react-dom/",\ + ["virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:18.2.0", {\ + "packageLocation": "./.yarn/__virtual__/react-dom-virtual-d0e9e06f0d/0/cache/react-dom-npm-18.2.0-dd675bca1c-7d323310be.zip/node_modules/react-dom/",\ "packageDependencies": [\ - ["react-dom", "virtual:5684e10df0b0d4ceda81e7a49e1dce0cdeefe64f7cf73f6b65bae6b36056a2c8afe7954893d9e8e0af41d3fa80eeeeb8dbad164e06bfc993741bc538f79f2b2b#npm:18.2.0"],\ + ["react-dom", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:18.2.0"],\ ["@types/react", null],\ ["loose-envify", "npm:1.4.0"],\ ["react", "npm:18.2.0"],\ @@ -18986,9 +18992,9 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["eslint-plugin-turbo", "virtual:f7bc41586b68b5179d26bce3bfb89ba68358f8cd7c2ddff4083d94b6829a704acc2424da9379676891d28c060e6d7ef24661ff4a113dbb2daf852983923aee3a#npm:1.9.3"],\ ["esprima", "npm:4.0.1"],\ ["jest", "virtual:f7bc41586b68b5179d26bce3bfb89ba68358f8cd7c2ddff4083d94b6829a704acc2424da9379676891d28c060e6d7ef24661ff4a113dbb2daf852983923aee3a#npm:29.5.0"],\ - ["next", "virtual:5684e10df0b0d4ceda81e7a49e1dce0cdeefe64f7cf73f6b65bae6b36056a2c8afe7954893d9e8e0af41d3fa80eeeeb8dbad164e06bfc993741bc538f79f2b2b#npm:13.4.1"],\ + ["next", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:13.4.1"],\ ["react", "npm:18.2.0"],\ - ["react-dom", "virtual:5684e10df0b0d4ceda81e7a49e1dce0cdeefe64f7cf73f6b65bae6b36056a2c8afe7954893d9e8e0af41d3fa80eeeeb8dbad164e06bfc993741bc538f79f2b2b#npm:18.2.0"],\ + ["react-dom", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:18.2.0"],\ ["ts-jest", "virtual:f7bc41586b68b5179d26bce3bfb89ba68358f8cd7c2ddff4083d94b6829a704acc2424da9379676891d28c060e6d7ef24661ff4a113dbb2daf852983923aee3a#npm:29.1.0"],\ ["typescript", "patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=85af82"]\ ],\ @@ -19624,10 +19630,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["virtual:c635472a55b203fb7933b47cbfaf21672915228418b022b63d07469620c4ae464410c04ce222a6a810c944ccec4de2ee626b209f22ae8761cee3c504970f7531#npm:5.1.1", {\ - "packageLocation": "./.yarn/__virtual__/styled-jsx-virtual-8f6e752656/0/cache/styled-jsx-npm-5.1.1-2557a209ba-523a33b386.zip/node_modules/styled-jsx/",\ + ["virtual:40087ac84dfe1219c2801565ab50b046700c498b6f5411beb214cae87f087b9683e9aed12423299df12cd9b7569920024dfc140e467ebba896624f7481c94f4d#npm:5.1.1", {\ + "packageLocation": "./.yarn/__virtual__/styled-jsx-virtual-1b1fa3ac83/0/cache/styled-jsx-npm-5.1.1-2557a209ba-523a33b386.zip/node_modules/styled-jsx/",\ "packageDependencies": [\ - ["styled-jsx", "virtual:c635472a55b203fb7933b47cbfaf21672915228418b022b63d07469620c4ae464410c04ce222a6a810c944ccec4de2ee626b209f22ae8761cee3c504970f7531#npm:5.1.1"],\ + ["styled-jsx", "virtual:40087ac84dfe1219c2801565ab50b046700c498b6f5411beb214cae87f087b9683e9aed12423299df12cd9b7569920024dfc140e467ebba896624f7481c94f4d#npm:5.1.1"],\ ["@babel/core", null],\ ["@types/babel-plugin-macros", null],\ ["@types/babel__core", null],\ diff --git a/apps/web-emoney/src/screens/account_details/index.tsx b/apps/web-emoney/src/screens/account_details/index.tsx index 5a68e826dd..6d28e31fd3 100644 --- a/apps/web-emoney/src/screens/account_details/index.tsx +++ b/apps/web-emoney/src/screens/account_details/index.tsx @@ -53,7 +53,7 @@ const AccountDetails = () => { /> - + diff --git a/apps/web-evmos/src/screens/account_details/index.tsx b/apps/web-evmos/src/screens/account_details/index.tsx index 5a68e826dd..6d28e31fd3 100644 --- a/apps/web-evmos/src/screens/account_details/index.tsx +++ b/apps/web-evmos/src/screens/account_details/index.tsx @@ -53,7 +53,7 @@ const AccountDetails = () => { /> - + diff --git a/apps/web-osmosis/src/screens/account_details/hooks.ts b/apps/web-osmosis/src/screens/account_details/hooks.ts index 6d86be13a7..06d68a6c20 100644 --- a/apps/web-osmosis/src/screens/account_details/hooks.ts +++ b/apps/web-osmosis/src/screens/account_details/hooks.ts @@ -27,6 +27,7 @@ const defaultTokenUnit: TokenUnit = { const initialState: AccountDetailState = { loading: true, + balanceLoading: true, exists: true, desmosProfile: null, overview: { @@ -125,7 +126,7 @@ const formatBalance = (data?: Data) => { // ========================== const formatAllBalance = (data?: Data) => { const stateChange: Partial = { - loading: false, + balanceLoading: false, }; stateChange.rewards = formatRewards(data); @@ -177,7 +178,7 @@ const formatOtherTokens = (data?: Data) => { const availableAmount = formatToken(availableRawAmount.amount, x); const rewardsRawAmount = rewards.reduce((a, b) => { if (!b) return a; - const coins = R.pathOr>([], ['coins'], b); + const coins = R.pathOr>([], ['coins'], b); const denom = getDenom(coins, x); return Big(a).plus(denom.amount).toPrecision(); }, '0'); @@ -263,6 +264,7 @@ export const useAccountDetails = () => { useEffect(() => { handleSetState((prevState) => ({ ...prevState, + loading: false, overview: { address: address ?? '', withdrawalAddress: withdrawalAddress.withdrawalAddress?.address ?? '', diff --git a/apps/web-osmosis/src/screens/account_details/index.tsx b/apps/web-osmosis/src/screens/account_details/index.tsx index 5a68e826dd..6d28e31fd3 100644 --- a/apps/web-osmosis/src/screens/account_details/index.tsx +++ b/apps/web-osmosis/src/screens/account_details/index.tsx @@ -53,7 +53,7 @@ const AccountDetails = () => { /> - + diff --git a/apps/web-persistence/src/screens/account_details/index.tsx b/apps/web-persistence/src/screens/account_details/index.tsx index 5a68e826dd..6d28e31fd3 100644 --- a/apps/web-persistence/src/screens/account_details/index.tsx +++ b/apps/web-persistence/src/screens/account_details/index.tsx @@ -53,7 +53,7 @@ const AccountDetails = () => { /> - + diff --git a/apps/web-stride/src/screens/account_details/hooks.ts b/apps/web-stride/src/screens/account_details/hooks.ts index dcafcf61d6..7796920da4 100644 --- a/apps/web-stride/src/screens/account_details/hooks.ts +++ b/apps/web-stride/src/screens/account_details/hooks.ts @@ -171,7 +171,7 @@ const formatOtherTokens = (data: Data) => { const availableRawAmount = getDenom(available, x); const availableAmount = formatToken(availableRawAmount.amount, x); const rewardsRawAmount = rewards.reduce((a, b) => { - const coins = R.pathOr>([], ['coins'], b); + const coins = R.pathOr>([], ['coins'], b); const denom = getDenom(coins, x); return Big(a).plus(denom.amount).toPrecision(); }, '0'); @@ -308,6 +308,7 @@ export const useAccountDetails = () => { useEffect(() => { handleSetState((prevState) => ({ ...prevState, + loading: false, overview: { address: address ?? '', withdrawalAddress: address ?? withdrawalAddress?.withdrawalAddress?.address ?? '', diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 8775630db12a782ad38260f068727a4cb029fb31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 763532 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
{74RJEptZv0;E1fTJw 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

^}{j`){^K-ZshpUhrCf$lJCdKB0N| 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

i<~q{{CMY<+O9M{~q`{ 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�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

- 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

;)5`NpBCeB04_py9a2qp5t- z0xj+YOK%5SkZBXqRKA@MY}zC=l}}nP(NZE%C`rtFPh3X z4Nc|Si}nc`j%zxa$|r50#hqd4?L!-6+DtT+Z$At+Z5Eo!CoROZ*=V7pdjM^SX>%;S zgJ?rdn~SFM9YPz1rt-~0Q~3^~jYPw7 ~ONgHi(7g%~n(8idy5KZMf3S&)Mgr@RI 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.22" + "yarn": ">=3.5", + "node": ">=18.17.1" }, "lint-staged": { "*.{js,jsx,ts,tsx,mjs,cjs,css,md}": "npx prettier --write" diff --git a/packages/ui/src/screens/account_details/hooks.ts b/packages/ui/src/screens/account_details/hooks.ts index 6a3592468b..b33185e077 100644 --- a/packages/ui/src/screens/account_details/hooks.ts +++ b/packages/ui/src/screens/account_details/hooks.ts @@ -100,7 +100,7 @@ const formatBalance = (data: Data): BalanceType => { const rewardsAmount = formatToken(rewards, primaryTokenUnit); const commission = getDenom( - R.pathOr['coins']>>( + R.pathOr['coins']>>( [], ['commission', 'coins'], data @@ -170,7 +170,7 @@ const formatOtherTokens = (data: Data) => { const availableRawAmount = getDenom(available, x); const availableAmount = formatToken(availableRawAmount.amount, x); const rewardsRawAmount = rewards.reduce((a, b) => { - const coins = R.pathOr>([], ['coins'], b); + const coins = R.pathOr>([], ['coins'], b); const denom = getDenom(coins, x); return Big(a).plus(denom.amount).toPrecision(); }, '0'); @@ -248,11 +248,11 @@ export const useAccountDetails = () => { useEffect(() => { const formattedRawData: { - commission?: typeof commission['commission']; - accountBalances?: typeof available['accountBalances']; - delegationBalance?: typeof delegation['delegationBalance']; - unbondingBalance?: typeof unbonding['unbondingBalance']; - delegationRewards?: typeof rewards['delegationRewards']; + commission?: (typeof commission)['commission']; + accountBalances?: (typeof available)['accountBalances']; + delegationBalance?: (typeof delegation)['delegationBalance']; + unbondingBalance?: (typeof unbonding)['unbondingBalance']; + delegationRewards?: (typeof rewards)['delegationRewards']; } = {}; formattedRawData.commission = R.pathOr({ coins: [] }, ['commission'], commission); formattedRawData.accountBalances = R.pathOr({ coins: [] }, ['accountBalances'], available); @@ -270,6 +270,7 @@ export const useAccountDetails = () => { useEffect(() => { handleSetState((prevState) => ({ ...prevState, + loading: false, overview: { address: address ?? '', withdrawalAddress: withdrawalAddress.withdrawalAddress?.address ?? '', diff --git a/yarn.lock b/yarn.lock index 89c2972ac0..1dd9897392 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6275,7 +6275,10 @@ __metadata: eslint-plugin-turbo: ^1.9.3 husky: ^8.0.3 lint-staged: ^13.2.2 + next: ^13.4.1 prettier: 2.8.8 + react: ^18.2.0 + react-dom: ^18.2.0 turbo: ^1.9.3 typescript: ^5.0.4 languageName: unknown From 457c92e187e532b7eebfcfd7a0e71da9b9edd471 Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Fri, 6 Oct 2023 11:15:41 +0700 Subject: [PATCH 07/20] fix: updated mergify conditions (#1307) ## Description Closes: #XXXX --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [ ] ran linting via `yarn lint` - [ ] wrote tests where necessary - [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [ ] targeted the correct branch - [ ] provided a link to the relevant issue or specification - [ ] reviewed "Files changed" and left comments if necessary - [ ] confirmed all CI checks have passed - [ ] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) --- .mergify.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mergify.yml b/.mergify.yml index 10e7dbca7d..067b234847 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -8,7 +8,7 @@ queue_rules: pull_request_rules: - name: Automerge with label automerge and branch protection passing conditions: - - "#approved-reviews-by>1" + - "#approved-reviews-by>0" - label=automerge actions: queue: From 4037aca22239ff1696e3ffb6a655d34bcb651458 Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Tue, 10 Oct 2023 16:37:18 +0700 Subject: [PATCH 08/20] feat: neutron big dipper [web-neutron] (#1309) ## Description Closes: [BDU-831](https://forbole.atlassian.net/browse/BDU-831) --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [x] ran linting via `yarn lint` - [x] wrote tests where necessary - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] targeted the correct branch - [x] provided a link to the relevant issue or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed - [x] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) [BDU-831]: https://forbole.atlassian.net/browse/BDU-831?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --- .changeset/young-deers-poke.md | 7 + .pnp.cjs | 132 + .../src/components/avatar_name/index.tsx | 3 +- .../src/components/name/index.tsx | 3 +- .../list/__snapshots__/index.test.tsx.snap | 3 + apps/web-neutron/.codecov.yml | 17 + apps/web-neutron/.eslintrc.yml | 9 + apps/web-neutron/CHANGELOG.md | 796 + apps/web-neutron/codegen.yml | 24 + apps/web-neutron/jest.config.ts | 32 + apps/web-neutron/jest.setup.ts | 16 + apps/web-neutron/next-env.d.ts | 5 + apps/web-neutron/next-i18next.config.js | 11 + apps/web-neutron/next-sitemap.config.js | 5 + apps/web-neutron/next.config.js | 9 + apps/web-neutron/package.json | 138 + .../public/fonts/HindMadurai-Regular.woff2 | Bin 0 -> 45624 bytes .../public/icons/android-chrome-192x192.png | Bin 0 -> 6153 bytes .../public/icons/android-chrome-512x512.png | Bin 0 -> 17642 bytes .../public/icons/apple-touch-icon.png | Bin 0 -> 5660 bytes .../public/icons/browserconfig.xml | 9 + .../public/icons/favicon-16x16.png | Bin 0 -> 1033 bytes .../public/icons/favicon-32x32.png | Bin 0 -> 1714 bytes apps/web-neutron/public/icons/favicon.ico | Bin 0 -> 15086 bytes .../public/icons/mstile-150x150.png | Bin 0 -> 3382 bytes .../public/icons/safari-pinned-tab.svg | 61 + .../web-neutron/public/icons/site.webmanifest | 19 + .../public/images/default_cover_pattern.png | Bin 0 -> 46167 bytes apps/web-neutron/src/chain.json | 250 + apps/web-neutron/src/chainConfig/index.ts | 32 + apps/web-neutron/src/chainConfig/types.ts | 157 + .../src/components/avatar_name/index.tsx | 15 + .../src/components/avatar_name/types.ts | 5 + .../nav/components/menu_items/utils.tsx | 41 + .../src/graphql/general/block_details.graphql | 34 + .../src/graphql/general/block_height.graphql | 5 + .../src/graphql/general/block_time.graphql | 11 + .../src/graphql/general/blocks.graphql | 42 + .../src/graphql/general/chain_id.graphql | 6 + .../src/graphql/general/market_data.graphql | 9 + .../general/messages_by_address.graphql | 15 + .../src/graphql/general/token_price.graphql | 15 + .../src/graphql/general/tokenomics.graphql | 5 + .../general/transaction_details.graphql | 17 + .../src/graphql/general/transactions.graphql | 25 + .../src/graphql/general/validators.graphql | 80 + .../provider/account_details_documents.ts | 123 + .../provider/active_validator_count.ts | 22 + .../graphql/provider/online_voting_power.ts | 24 + .../src/graphql/provider/params.ts | 33 + .../src/graphql/provider/validator_details.ts | 137 + .../provider/validator_details_documents.ts | 62 + .../provider/validators_address_list.ts | 48 + .../src/graphql/types/general_types.ts | 20323 +++++++++++++++ .../src/graphql/types/provider_types.ts | 20586 ++++++++++++++++ .../hooks/useConsumerCustomValidator/index.ts | 63 + .../hooks/useProviderCustomValidator/index.ts | 63 + .../index.ts | 60 + .../src/models/ccv_consumer_params/index.tsx | 27 + apps/web-neutron/src/pages/404.tsx | 10 + apps/web-neutron/src/pages/[dtag].tsx | 11 + apps/web-neutron/src/pages/_app.tsx | 7 + apps/web-neutron/src/pages/_document.tsx | 12 + apps/web-neutron/src/pages/_error.tsx | 8 + .../src/pages/accounts/[address].tsx | 18 + .../web-neutron/src/pages/blocks/[height].tsx | 17 + apps/web-neutron/src/pages/blocks/index.tsx | 16 + apps/web-neutron/src/pages/index.tsx | 15 + apps/web-neutron/src/pages/params/index.tsx | 10 + .../src/pages/server-sitemap.xml/index.tsx | 8 + .../src/pages/transactions/[tx].tsx | 16 + .../src/pages/transactions/index.tsx | 15 + .../src/pages/validators/[address].tsx | 18 + .../src/pages/validators/index.tsx | 17 + apps/web-neutron/src/recoil/market/hooks.ts | 90 + .../src/recoil/validators/hooks.ts | 59 + .../components/staking/hooks.ts | 390 + .../components/transactions/hooks.ts | 171 + .../src/screens/account_details/hooks.ts | 357 + .../src/screens/account_details/index.tsx | 63 + .../src/screens/account_details/utils.tsx | 139 + .../components/overview/index.tsx | 66 + .../signatures/components/desktop/index.tsx | 90 + .../signatures/components/desktop/utils.tsx | 32 + .../components/signatures/components/index.ts | 4 + .../signatures/components/mobile/index.tsx | 86 + .../components/signatures/index.tsx | 36 + .../src/screens/block_details/hooks.ts | 130 + .../blocks/components/desktop/index.tsx | 205 + .../src/screens/blocks/components/index.ts | 4 + .../blocks/components/mobile/index.tsx | 134 + apps/web-neutron/src/screens/blocks/hooks.ts | 162 + .../blocks/components/desktop/index.tsx | 130 + .../blocks/components/mobile/index.tsx | 64 + .../screens/home/components/blocks/hooks.ts | 53 + .../home/components/consensus/index.tsx | 111 + .../home/components/data_blocks/hooks.ts | 109 + .../components/online_voting_power/hooks.ts | 60 + .../home/components/tokenomics/hooks.ts | 57 + apps/web-neutron/src/screens/params/hooks.ts | 194 + apps/web-neutron/src/screens/params/index.tsx | 87 + apps/web-neutron/src/screens/params/types.ts | 62 + apps/web-neutron/src/screens/params/utils.tsx | 207 + .../components/blocks/hooks.ts | 42 + .../components/profile/index.tsx | 86 + .../components/staking/hooks.ts | 285 + .../src/screens/validator_details/hooks.ts | 176 + .../validators/components/list/hooks.ts | 238 + .../validators/components/list/index.tsx | 79 + .../validators/components/list/types.ts | 15 + .../src/utils/format_provider_token/index.ts | 43 + apps/web-neutron/src/utils/index.ts | 1 + apps/web-neutron/tsconfig.json | 13 + .../src/components/avatar_name/index.tsx | 7 +- .../src/components/avatar_name/types.ts | 5 + .../assets/icons/neutron-both.svg | 22 + .../assets/logos/neutron-dark.svg | 10 + .../assets/logos/neutron-light.svg | 10 + .../ui/public/locales/en/web_neutron.json | 10 + .../ui/public/locales/it/web_neutron.json | 10 + .../ui/public/locales/pl/web_neutron.json | 10 + .../ui/public/locales/zhs/web_neutron.json | 10 + .../ui/public/locales/zht/web_neutron.json | 10 + .../src/components/AddressEllipsis/index.tsx | 68 + .../ui/src/components/ChainIcon/index.tsx | 7 + .../src/components/MiddleEllipsis/index.tsx | 89 - .../__snapshots__/index.test.tsx.snap | 110 +- .../ui/src/components/avatar_name/index.tsx | 27 +- .../ui/src/components/avatar_name/styles.ts | 20 +- .../ui/src/components/avatar_name/types.ts | 5 + packages/ui/src/recoil/profiles/hooks.ts | 4 +- .../delegations/components/desktop/index.tsx | 4 +- .../delegations/components/mobile/index.tsx | 2 +- .../components/desktop/index.tsx | 18 +- .../redelegations/components/mobile/index.tsx | 7 +- .../unbondings/components/desktop/index.tsx | 4 +- .../unbondings/components/mobile/index.tsx | 2 +- .../blocks/components/desktop/index.tsx | 4 +- .../blocks/components/mobile/index.tsx | 4 +- packages/ui/src/screens/blocks/utils.ts | 3 + .../components/blocks/hooks.ts | 4 +- .../components/blocks/index.tsx | 8 +- .../profile/__snapshots__/index.test.tsx.snap | 1 + .../components/profile/styles.ts | 1 + .../delegations/components/desktop/index.tsx | 4 +- .../delegations/components/mobile/index.tsx | 2 +- .../components/desktop/index.tsx | 13 +- .../redelegations/components/mobile/index.tsx | 14 +- .../unbondings/components/desktop/index.tsx | 10 +- .../unbondings/components/mobile/index.tsx | 2 +- .../components/staking/hooks.ts | 39 +- .../components/staking/index.tsx | 11 +- .../components/staking/types.ts | 21 + .../src/screens/validator_details/index.tsx | 12 +- .../ui/src/screens/validator_details/types.ts | 1 + yarn.lock | 125 + 156 files changed, 48683 insertions(+), 229 deletions(-) create mode 100644 .changeset/young-deers-poke.md create mode 100644 apps/web-neutron/.codecov.yml create mode 100644 apps/web-neutron/.eslintrc.yml create mode 100644 apps/web-neutron/CHANGELOG.md create mode 100644 apps/web-neutron/codegen.yml create mode 100644 apps/web-neutron/jest.config.ts create mode 100644 apps/web-neutron/jest.setup.ts create mode 100644 apps/web-neutron/next-env.d.ts create mode 100644 apps/web-neutron/next-i18next.config.js create mode 100644 apps/web-neutron/next-sitemap.config.js create mode 100644 apps/web-neutron/next.config.js create mode 100644 apps/web-neutron/package.json create mode 100644 apps/web-neutron/public/fonts/HindMadurai-Regular.woff2 create mode 100644 apps/web-neutron/public/icons/android-chrome-192x192.png create mode 100644 apps/web-neutron/public/icons/android-chrome-512x512.png create mode 100644 apps/web-neutron/public/icons/apple-touch-icon.png create mode 100644 apps/web-neutron/public/icons/browserconfig.xml create mode 100644 apps/web-neutron/public/icons/favicon-16x16.png create mode 100644 apps/web-neutron/public/icons/favicon-32x32.png create mode 100644 apps/web-neutron/public/icons/favicon.ico create mode 100644 apps/web-neutron/public/icons/mstile-150x150.png create mode 100644 apps/web-neutron/public/icons/safari-pinned-tab.svg create mode 100644 apps/web-neutron/public/icons/site.webmanifest create mode 100644 apps/web-neutron/public/images/default_cover_pattern.png create mode 100644 apps/web-neutron/src/chain.json create mode 100644 apps/web-neutron/src/chainConfig/index.ts create mode 100644 apps/web-neutron/src/chainConfig/types.ts create mode 100644 apps/web-neutron/src/components/avatar_name/index.tsx create mode 100644 apps/web-neutron/src/components/avatar_name/types.ts create mode 100644 apps/web-neutron/src/components/nav/components/menu_items/utils.tsx create mode 100644 apps/web-neutron/src/graphql/general/block_details.graphql create mode 100644 apps/web-neutron/src/graphql/general/block_height.graphql create mode 100644 apps/web-neutron/src/graphql/general/block_time.graphql create mode 100644 apps/web-neutron/src/graphql/general/blocks.graphql create mode 100644 apps/web-neutron/src/graphql/general/chain_id.graphql create mode 100644 apps/web-neutron/src/graphql/general/market_data.graphql create mode 100644 apps/web-neutron/src/graphql/general/messages_by_address.graphql create mode 100644 apps/web-neutron/src/graphql/general/token_price.graphql create mode 100644 apps/web-neutron/src/graphql/general/tokenomics.graphql create mode 100644 apps/web-neutron/src/graphql/general/transaction_details.graphql create mode 100644 apps/web-neutron/src/graphql/general/transactions.graphql create mode 100644 apps/web-neutron/src/graphql/general/validators.graphql create mode 100644 apps/web-neutron/src/graphql/provider/account_details_documents.ts create mode 100644 apps/web-neutron/src/graphql/provider/active_validator_count.ts create mode 100644 apps/web-neutron/src/graphql/provider/online_voting_power.ts create mode 100644 apps/web-neutron/src/graphql/provider/params.ts create mode 100644 apps/web-neutron/src/graphql/provider/validator_details.ts create mode 100644 apps/web-neutron/src/graphql/provider/validator_details_documents.ts create mode 100644 apps/web-neutron/src/graphql/provider/validators_address_list.ts create mode 100644 apps/web-neutron/src/graphql/types/general_types.ts create mode 100644 apps/web-neutron/src/graphql/types/provider_types.ts create mode 100644 apps/web-neutron/src/hooks/useConsumerCustomValidator/index.ts create mode 100644 apps/web-neutron/src/hooks/useProviderCustomValidator/index.ts create mode 100644 apps/web-neutron/src/hooks/useValidatorConsensusAddressesList/index.ts create mode 100644 apps/web-neutron/src/models/ccv_consumer_params/index.tsx create mode 100644 apps/web-neutron/src/pages/404.tsx create mode 100644 apps/web-neutron/src/pages/[dtag].tsx create mode 100644 apps/web-neutron/src/pages/_app.tsx create mode 100644 apps/web-neutron/src/pages/_document.tsx create mode 100644 apps/web-neutron/src/pages/_error.tsx create mode 100644 apps/web-neutron/src/pages/accounts/[address].tsx create mode 100644 apps/web-neutron/src/pages/blocks/[height].tsx create mode 100644 apps/web-neutron/src/pages/blocks/index.tsx create mode 100644 apps/web-neutron/src/pages/index.tsx create mode 100644 apps/web-neutron/src/pages/params/index.tsx create mode 100644 apps/web-neutron/src/pages/server-sitemap.xml/index.tsx create mode 100644 apps/web-neutron/src/pages/transactions/[tx].tsx create mode 100644 apps/web-neutron/src/pages/transactions/index.tsx create mode 100644 apps/web-neutron/src/pages/validators/[address].tsx create mode 100644 apps/web-neutron/src/pages/validators/index.tsx create mode 100644 apps/web-neutron/src/recoil/market/hooks.ts create mode 100644 apps/web-neutron/src/recoil/validators/hooks.ts create mode 100644 apps/web-neutron/src/screens/account_details/components/staking/hooks.ts create mode 100644 apps/web-neutron/src/screens/account_details/components/transactions/hooks.ts create mode 100644 apps/web-neutron/src/screens/account_details/hooks.ts create mode 100644 apps/web-neutron/src/screens/account_details/index.tsx create mode 100644 apps/web-neutron/src/screens/account_details/utils.tsx create mode 100644 apps/web-neutron/src/screens/block_details/components/overview/index.tsx create mode 100644 apps/web-neutron/src/screens/block_details/components/signatures/components/desktop/index.tsx create mode 100644 apps/web-neutron/src/screens/block_details/components/signatures/components/desktop/utils.tsx create mode 100644 apps/web-neutron/src/screens/block_details/components/signatures/components/index.ts create mode 100644 apps/web-neutron/src/screens/block_details/components/signatures/components/mobile/index.tsx create mode 100644 apps/web-neutron/src/screens/block_details/components/signatures/index.tsx create mode 100644 apps/web-neutron/src/screens/block_details/hooks.ts create mode 100644 apps/web-neutron/src/screens/blocks/components/desktop/index.tsx create mode 100644 apps/web-neutron/src/screens/blocks/components/index.ts create mode 100644 apps/web-neutron/src/screens/blocks/components/mobile/index.tsx create mode 100644 apps/web-neutron/src/screens/blocks/hooks.ts create mode 100644 apps/web-neutron/src/screens/home/components/blocks/components/desktop/index.tsx create mode 100644 apps/web-neutron/src/screens/home/components/blocks/components/mobile/index.tsx create mode 100644 apps/web-neutron/src/screens/home/components/blocks/hooks.ts create mode 100644 apps/web-neutron/src/screens/home/components/consensus/index.tsx create mode 100644 apps/web-neutron/src/screens/home/components/data_blocks/hooks.ts create mode 100644 apps/web-neutron/src/screens/home/components/hero/components/online_voting_power/hooks.ts create mode 100644 apps/web-neutron/src/screens/home/components/tokenomics/hooks.ts create mode 100644 apps/web-neutron/src/screens/params/hooks.ts create mode 100644 apps/web-neutron/src/screens/params/index.tsx create mode 100644 apps/web-neutron/src/screens/params/types.ts create mode 100644 apps/web-neutron/src/screens/params/utils.tsx create mode 100644 apps/web-neutron/src/screens/validator_details/components/blocks/hooks.ts create mode 100644 apps/web-neutron/src/screens/validator_details/components/profile/index.tsx create mode 100644 apps/web-neutron/src/screens/validator_details/components/staking/hooks.ts create mode 100644 apps/web-neutron/src/screens/validator_details/hooks.ts create mode 100644 apps/web-neutron/src/screens/validators/components/list/hooks.ts create mode 100644 apps/web-neutron/src/screens/validators/components/list/index.tsx create mode 100644 apps/web-neutron/src/screens/validators/components/list/types.ts create mode 100644 apps/web-neutron/src/utils/format_provider_token/index.ts create mode 100644 apps/web-neutron/src/utils/index.ts create mode 100644 apps/web-neutron/tsconfig.json create mode 100644 apps/web-stride/src/components/avatar_name/types.ts create mode 100644 packages/shared-utils/assets/icons/neutron-both.svg create mode 100644 packages/shared-utils/assets/logos/neutron-dark.svg create mode 100644 packages/shared-utils/assets/logos/neutron-light.svg create mode 100644 packages/ui/public/locales/en/web_neutron.json create mode 100644 packages/ui/public/locales/it/web_neutron.json create mode 100644 packages/ui/public/locales/pl/web_neutron.json create mode 100644 packages/ui/public/locales/zhs/web_neutron.json create mode 100644 packages/ui/public/locales/zht/web_neutron.json create mode 100644 packages/ui/src/components/AddressEllipsis/index.tsx delete mode 100644 packages/ui/src/components/MiddleEllipsis/index.tsx create mode 100644 packages/ui/src/components/avatar_name/types.ts create mode 100644 packages/ui/src/screens/blocks/utils.ts diff --git a/.changeset/young-deers-poke.md b/.changeset/young-deers-poke.md new file mode 100644 index 0000000000..047e94ee58 --- /dev/null +++ b/.changeset/young-deers-poke.md @@ -0,0 +1,7 @@ +--- +'shared-utils': minor +'web-neutron': minor +'ui': minor +--- + +add neutron big dipper diff --git a/.pnp.cjs b/.pnp.cjs index ce1052bf1a..97f938e7d1 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -103,6 +103,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "name": "web-multiversx",\ "reference": "workspace:apps/web-multiversx"\ },\ + {\ + "name": "web-neutron",\ + "reference": "workspace:apps/web-neutron"\ + },\ {\ "name": "web-nomic",\ "reference": "workspace:apps/web-nomic"\ @@ -203,6 +207,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["web-kyve", ["workspace:apps/web-kyve"]],\ ["web-likecoin", ["workspace:apps/web-likecoin"]],\ ["web-multiversx", ["workspace:apps/web-multiversx"]],\ + ["web-neutron", ["workspace:apps/web-neutron"]],\ ["web-nomic", ["workspace:apps/web-nomic"]],\ ["web-nym", ["workspace:apps/web-nym"]],\ ["web-osmosis", ["workspace:apps/web-osmosis"]],\ @@ -23870,6 +23875,133 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "SOFT"\ }]\ ]],\ + ["web-neutron", [\ + ["workspace:apps/web-neutron", {\ + "packageLocation": "./apps/web-neutron/",\ + "packageDependencies": [\ + ["web-neutron", "workspace:apps/web-neutron"],\ + ["@apollo/client", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:3.7.14"],\ + ["@cosmjs/encoding", "npm:0.30.1"],\ + ["@cosmjs/launchpad", "npm:0.27.1"],\ + ["@cosmjs/stargate", "npm:0.29.5"],\ + ["@emotion/cache", "npm:11.11.0"],\ + ["@emotion/jest", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:11.11.0"],\ + ["@emotion/react", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:11.11.0"],\ + ["@emotion/server", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:11.11.0"],\ + ["@emotion/styled", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:11.11.0"],\ + ["@graphql-codegen/cli", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:3.3.1"],\ + ["@graphql-codegen/client-preset", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:3.0.1"],\ + ["@graphql-codegen/fragment-matcher", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:4.0.1"],\ + ["@graphql-codegen/typescript", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:3.0.4"],\ + ["@graphql-codegen/typescript-operations", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:3.0.4"],\ + ["@graphql-codegen/typescript-react-apollo", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:3.3.7"],\ + ["@graphql-tools/mock", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:8.7.20"],\ + ["@graphql-tools/schema", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:9.0.19"],\ + ["@jest/globals", "npm:29.5.0"],\ + ["@keplr-wallet/types", "npm:0.11.59"],\ + ["@keplr-wallet/wc-client", "npm:0.11.59"],\ + ["@mui/icons-material", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:5.11.16"],\ + ["@mui/material", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:5.12.3"],\ + ["@next/eslint-plugin-next", "npm:13.4.1"],\ + ["@socialgouv/matomo-next", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:1.6.1"],\ + ["@svgr/webpack", "npm:7.0.0"],\ + ["@testing-library/jest-dom", "npm:5.16.5"],\ + ["@testing-library/react", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:14.0.0"],\ + ["@types/big.js", "npm:6.1.6"],\ + ["@types/color", "npm:3.0.3"],\ + ["@types/eslint", "npm:8.37.0"],\ + ["@types/esprima", "npm:4.0.3"],\ + ["@types/jest", "npm:29.5.1"],\ + ["@types/js-yaml", "npm:4.0.5"],\ + ["@types/node", "npm:18.16.5"],\ + ["@types/numeral", "npm:2.0.2"],\ + ["@types/qs", "npm:6.9.7"],\ + ["@types/ramda", "npm:0.29.1"],\ + ["@types/react", "npm:18.2.6"],\ + ["@types/react-dom", "npm:18.2.4"],\ + ["@types/react-test-renderer", "npm:18.0.0"],\ + ["@types/react-virtualized-auto-sizer", "npm:1.0.1"],\ + ["@types/react-window", "npm:1.8.5"],\ + ["@types/react-window-infinite-loader", "npm:1.0.6"],\ + ["@typescript-eslint/eslint-plugin", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:5.59.2"],\ + ["@typescript-eslint/parser", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:5.59.2"],\ + ["@walletconnect/client", "npm:1.8.0"],\ + ["@walletconnect/encoding", "npm:1.0.2"],\ + ["@yarnpkg/pnpify", "npm:4.0.0-rc.43"],\ + ["apollo-link-rest", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:0.9.0"],\ + ["bech32", "npm:2.0.0"],\ + ["big.js", "npm:6.2.1"],\ + ["color", "npm:4.2.3"],\ + ["copy-to-clipboard", "npm:3.3.3"],\ + ["csstype", "npm:3.1.2"],\ + ["dayjs", "npm:1.11.7"],\ + ["dotenv", "npm:16.0.3"],\ + ["eslint", "npm:8.40.0"],\ + ["eslint-config-airbnb", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:19.0.4"],\ + ["eslint-config-custom", "workspace:packages/eslint-config-custom"],\ + ["eslint-config-next", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:13.4.1"],\ + ["eslint-config-prettier", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:8.8.0"],\ + ["eslint-config-turbo", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:1.9.3"],\ + ["eslint-import-resolver-typescript", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:3.5.5"],\ + ["eslint-plugin-import", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:2.27.5"],\ + ["eslint-plugin-jsx-a11y", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:6.7.1"],\ + ["eslint-plugin-react", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:7.32.2"],\ + ["eslint-plugin-react-hooks", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:4.6.0"],\ + ["eslint-plugin-turbo", "virtual:680b866b1f607595b2b59758405cb64dff07d461aebb031486e5900d3b742457da054ab889d192b9338afd7b8895fdd9016de2dbb9d2a9b7e5b890949f153324#npm:1.9.3"],\ + ["esprima", "npm:4.0.1"],\ + ["framer-motion", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:10.12.8"],\ + ["graphql", "npm:16.6.0"],\ + ["graphql-tag", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:2.12.6"],\ + ["graphql-ws", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:5.12.1"],\ + ["i18next", "npm:22.4.15"],\ + ["jdenticon", "npm:3.2.0"],\ + ["jest", "virtual:f7bc41586b68b5179d26bce3bfb89ba68358f8cd7c2ddff4083d94b6829a704acc2424da9379676891d28c060e6d7ef24661ff4a113dbb2daf852983923aee3a#npm:29.5.0"],\ + ["jest-cli", "virtual:d5102ea91e67e6a6d0fa5039a06fb67a1b3142418e7fa0fa83e3772fea7312d90d28c6e359755b6fea6d78c65348593d88722b1c1ad6476e3b3d5bb912925daa#npm:29.5.0"],\ + ["jest-environment-jsdom", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:29.5.0"],\ + ["jest-localstorage-mock", "npm:2.4.26"],\ + ["jest-presets", "workspace:packages/jest-presets"],\ + ["jest-transform-stub", "npm:2.0.0"],\ + ["jest-watch-typeahead", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:2.2.2"],\ + ["js-yaml", "npm:4.1.0"],\ + ["lightweight-charts", "npm:4.0.1"],\ + ["markdown-to-jsx", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:7.2.0"],\ + ["next", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:13.4.1"],\ + ["next-i18next", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:13.2.2"],\ + ["next-seo", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:6.0.0"],\ + ["next-sitemap", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:4.1.3"],\ + ["numeral", "npm:2.0.6"],\ + ["qrcode.react", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:3.1.0"],\ + ["qs", "npm:6.11.1"],\ + ["ramda", "npm:0.29.0"],\ + ["react", "npm:18.2.0"],\ + ["react-dom", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:18.2.0"],\ + ["react-i18next", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:12.2.2"],\ + ["react-share", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:4.4.1"],\ + ["react-test-renderer", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:18.2.0"],\ + ["react-toastify", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:9.1.2"],\ + ["react-virtualized-auto-sizer", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:1.0.15"],\ + ["react-window", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:1.8.9"],\ + ["react-window-infinite-loader", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:1.0.9"],\ + ["recharts", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:2.5.0"],\ + ["recoil", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:0.7.7"],\ + ["shared-utils", "workspace:packages/shared-utils"],\ + ["subscriptions-transport-ws", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:0.11.0"],\ + ["ts-jest", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:29.1.0"],\ + ["ts-node", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:10.9.1"],\ + ["tsconfig", "workspace:packages/tsconfig"],\ + ["tslib", "npm:2.5.0"],\ + ["tss-react", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:4.8.3"],\ + ["typanion", "npm:3.12.1"],\ + ["typescript", "patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=85af82"],\ + ["ui", "workspace:packages/ui"],\ + ["usehooks-ts", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:2.9.1"],\ + ["ws", "virtual:9dce388d82c018b4a7af5edc7243e51f7023d1ab93a923b3959d0066ac6881c93b965a0932486426cbefa96c9c8e47849d5ff541d2404b8aca246480fa32f0d2#npm:8.13.0"],\ + ["xss", "npm:1.0.14"],\ + ["zod", "npm:3.21.4"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ ["web-nomic", [\ ["workspace:apps/web-nomic", {\ "packageLocation": "./apps/web-nomic/",\ diff --git a/apps/web-multiversx/src/components/avatar_name/index.tsx b/apps/web-multiversx/src/components/avatar_name/index.tsx index e4393eae00..4301160642 100644 --- a/apps/web-multiversx/src/components/avatar_name/index.tsx +++ b/apps/web-multiversx/src/components/avatar_name/index.tsx @@ -3,8 +3,9 @@ import useStyles from '@/components/avatar_name/styles'; import { ACCOUNT_DETAILS } from '@/utils/go_to_page'; import Link from 'next/link'; import { FC } from 'react'; +import { AvatarNameProps } from '@/components/avatar_name/types'; -const AvatarName: FC = ({ +const AvatarName: FC = ({ className, address, name, diff --git a/apps/web-multiversx/src/components/name/index.tsx b/apps/web-multiversx/src/components/name/index.tsx index 30d41ebc76..ab2e9e84f7 100644 --- a/apps/web-multiversx/src/components/name/index.tsx +++ b/apps/web-multiversx/src/components/name/index.tsx @@ -3,8 +3,9 @@ import useStyles from '@/components/name/styles'; import { ACCOUNT_DETAILS } from '@/utils/go_to_page'; import Link from 'next/link'; import { FC } from 'react'; +import { AvatarNameProps } from '@/components/avatar_name/types'; -const AvatarName: FC = ({ +const AvatarName: FC = ({ className, address, name, diff --git a/apps/web-multiversx/src/screens/transactions/components/list/__snapshots__/index.test.tsx.snap b/apps/web-multiversx/src/screens/transactions/components/list/__snapshots__/index.test.tsx.snap index 938d1a5510..b5ecda266d 100644 --- a/apps/web-multiversx/src/screens/transactions/components/list/__snapshots__/index.test.tsx.snap +++ b/apps/web-multiversx/src/screens/transactions/components/list/__snapshots__/index.test.tsx.snap @@ -174,6 +174,9 @@ exports[`screen: Transactions/List matches snapshot 1`] = ` display: -webkit-flex; display: -ms-flexbox; display: flex; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; -webkit-align-items: center; -webkit-box-align: center; -ms-flex-align: center; diff --git a/apps/web-neutron/.codecov.yml b/apps/web-neutron/.codecov.yml new file mode 100644 index 0000000000..a990bf8809 --- /dev/null +++ b/apps/web-neutron/.codecov.yml @@ -0,0 +1,17 @@ +# https://docs.codecov.io/docs/commit-status +coverage: + status: + project: + default: + # basic + target: 0 + threshold: 0% + base: 0% + # advanced + branches: [] + if_no_uploads: error + if_not_found: success + if_ci_failed: error + only_pulls: false + flags: [] + paths: [] diff --git a/apps/web-neutron/.eslintrc.yml b/apps/web-neutron/.eslintrc.yml new file mode 100644 index 0000000000..fc134c47f1 --- /dev/null +++ b/apps/web-neutron/.eslintrc.yml @@ -0,0 +1,9 @@ +root: true +extends: + - custom +ignorePatterns: + - '**/node_modules/*' + - '**/out/*' + - '**/.next/*' + - '**/dist/*' + - '**/src/graphql/*' diff --git a/apps/web-neutron/CHANGELOG.md b/apps/web-neutron/CHANGELOG.md new file mode 100644 index 0000000000..4b45ac936d --- /dev/null +++ b/apps/web-neutron/CHANGELOG.md @@ -0,0 +1,796 @@ +# Unreleased + +## 2.17.0 + +### Minor Changes + +- [#1279](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1279) [`f7365dfe0`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/f7365dfe0ca3b6f0cbefcb580d255a7977f44a4f) Thanks [@rachelhox](https://github.com/rachelhox)! - feat: price chart component + +### Patch Changes + +- Updated dependencies [[`f7365dfe0`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/f7365dfe0ca3b6f0cbefcb580d255a7977f44a4f)]: + - ui@2.33.0 + +## 2.16.1 + +### Patch Changes + +- Updated dependencies [[`4a8dd7a48`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/4a8dd7a480a65aadefd3ea3af6fc1d5280dacbc2)]: + - shared-utils@2.20.0 + - ui@2.32.0 + +## 2.16.0 + +### Minor Changes + +- [#1258](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1258) [`12079a781`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/12079a78141eb2e5ddee1c9211c5e81bc4e6d0d1) Thanks [@teamchong](https://github.com/teamchong)! - - Integrated `next-sitemap` to auto-generate sitemaps for each Next.js app in the monorepo. This enhancement improves our SEO capabilities and website visibility on search engines. The sitemap will be automatically updated with every build, ensuring it always reflects the current state of the site. + +### Patch Changes + +- Updated dependencies [[`12079a781`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/12079a78141eb2e5ddee1c9211c5e81bc4e6d0d1)]: + - shared-utils@2.19.0 + - ui@2.31.0 + +## 2.15.3 + +### Patch Changes + +- Updated dependencies [[`f5392fbba`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/f5392fbbabf50763001c80faa0f7fefca343f287)]: + - ui@2.30.2 + +## 2.15.2 + +### Patch Changes + +- Updated dependencies [[`5654972fd`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/5654972fdf2bb50bcd8566320dc93294301facab)]: + - shared-utils@2.18.1 + - ui@2.30.1 + +## 2.15.1 + +### Patch Changes + +- Updated dependencies [[`c59a66729`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/c59a66729196471a7adafa23823dc4b1b21e334b), [`3df0639ae`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/3df0639ae1ce872cfd05b535ae55edd9292995b3)]: + - shared-utils@2.18.0 + - ui@2.30.0 + +## 2.15.0 + +### Minor Changes + +- [#1248](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1248) [`376b4b356`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/376b4b356b58375f14f004f62a3c2e1a11c8dccf) Thanks [@rachelhox](https://github.com/rachelhox)! - add Coreum Big Dipper + +- [#1236](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1236) [`fe24afcda`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/fe24afcdad91cb859ee637f2c61d79d177d8c616) Thanks [@rachelhox](https://github.com/rachelhox)! - fix quicksilver validator moniker display + +### Patch Changes + +- Updated dependencies [[`376b4b356`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/376b4b356b58375f14f004f62a3c2e1a11c8dccf), [`fe24afcda`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/fe24afcdad91cb859ee637f2c61d79d177d8c616)]: + - shared-utils@2.17.0 + - ui@2.29.0 + +## 2.14.1 + +### Patch Changes + +- [#1242](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1242) [`66586e088`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/66586e088e49686ef920c00af8035dab1798317e) Thanks [@teamchong](https://github.com/teamchong)! - Shared translations for workspaces + +- Updated dependencies [[`66586e088`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/66586e088e49686ef920c00af8035dab1798317e)]: + - shared-utils@2.16.2 + - ui@2.28.1 + +## 2.14.0 + +### Minor Changes + +- [#1238](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1238) [`a0653bd55`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/a0653bd552af9d2e1c29ea3516b32da3b94d7e0b) Thanks [@rachelhox](https://github.com/rachelhox)! - update login ui + +### Patch Changes + +- [#1225](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1225) [`5316f55cf`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/5316f55cfccc31a44cac4d42de704d0d3f058048) Thanks [@teamchong](https://github.com/teamchong)! - Bump package versions + +- Updated dependencies [[`a0653bd55`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/a0653bd552af9d2e1c29ea3516b32da3b94d7e0b), [`acfb8cf38`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/acfb8cf38ab779cd70117109f86c07f7d87d7a42), [`5316f55cf`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/5316f55cfccc31a44cac4d42de704d0d3f058048)]: + - ui@2.28.0 + - shared-utils@2.16.1 + +## 2.13.0 + +### Minor Changes + +- [#1128](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1128) [`1edb0b236`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/1edb0b236d80993a19b11dc598cbcbb44d1905b4) Thanks [@MonikaCat](https://github.com/MonikaCat)! - Added login with Keplr and WalletConnect([\#1128](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1128)) + +### Patch Changes + +- Updated dependencies [[`1edb0b236`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/1edb0b236d80993a19b11dc598cbcbb44d1905b4)]: + - shared-utils@2.16.0 + - ui@2.27.0 + +## 2.12.2 + +### Patch Changes + +- Updated dependencies [[`2949b87b9`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/2949b87b93676df46bfb824ac486e9b96b9a5ba4)]: + - shared-utils@2.15.0 + - ui@2.26.0 + +## 2.12.1 + +### Patch Changes + +- Updated dependencies [[`d106401de`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/d106401de6ad55be1efa2eedc248ad7277ce524a), [`381e863d1`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/381e863d12c2c56e1a32946f828de6cbd5350c46), [`2113969f5`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/2113969f5dea2d4a2cc177dc94f6ac8994080a67)]: + - ui@2.25.0 + - shared-utils@2.14.0 + +## 2.12.0 + +### Minor Changes + +- [#1223](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1223) [`9082afdce`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/9082afdce5e76b378c612c5cd4f74161403c4a67) Thanks [@rachelhox](https://github.com/rachelhox)! - fix: missing messages from authz module + +### Patch Changes + +- Updated dependencies [[`9082afdce`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/9082afdce5e76b378c612c5cd4f74161403c4a67)]: + - ui@2.24.0 + +## 2.11.1 + +### Patch Changes + +- Updated dependencies [[`26b06277b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/26b06277b6df0ccdf17a8207c39e74d147a20e6e)]: + - ui@2.23.0 + +## 2.11.0 + +### Minor Changes + +- [#1191](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1191) [`9049e712c`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/9049e712c6dacedc5a4733830b2517f7fc6d4862) Thanks [@rachelhox](https://github.com/rachelhox)! - feat: footer add documentation link + +### Patch Changes + +- Updated dependencies [[`9049e712c`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/9049e712c6dacedc5a4733830b2517f7fc6d4862), [`b756f45fd`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/b756f45fde55cb582aa312f4fc9c5c49ce21173c), [`bf192489d`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/bf192489dfc10cf9f6679f08e6a1b96d390e2e00)]: + - ui@2.22.0 + - shared-utils@2.13.0 + +## 2.10.1 + +### Patch Changes + +- [#1196](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1196) [`c4d1d83e3`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/c4d1d83e30922bdb86ffc20d8cde36adad34bd0c) Thanks [@teamchong](https://github.com/teamchong)! - chore: versions bump + +- Updated dependencies [[`c4d1d83e3`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/c4d1d83e30922bdb86ffc20d8cde36adad34bd0c), [`e1502b5d1`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/e1502b5d1ecb50b8da94fc157ac1866ee40df9a8)]: + - shared-utils@2.12.1 + - ui@2.21.0 + +## 2.10.0 + +### Minor Changes + +- [#1183](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1183) [`33750408b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/33750408bfa3bc3195124b78be72c0d54b414bd7) Thanks [@rachelhox](https://github.com/rachelhox)! - feat: theme toggle button and 12-hour/24-hour toggle button + +### Patch Changes + +- Updated dependencies [[`33750408b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/33750408bfa3bc3195124b78be72c0d54b414bd7)]: + - shared-utils@2.12.0 + - ui@2.20.0 + +## 2.9.0 + +### Minor Changes + +- [#1166](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1166) [`f4e9417a0`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/f4e9417a06c3a5667fe541eee2bf2b820566496d) Thanks [@rachelhox](https://github.com/rachelhox)! - add en zht zhs it pl locales + +- [#1166](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1166) [`f4e9417a0`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/f4e9417a06c3a5667fe541eee2bf2b820566496d) Thanks [@rachelhox](https://github.com/rachelhox)! - add zht, zhs, pl and it locales + +### Patch Changes + +- Updated dependencies [[`f4e9417a0`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/f4e9417a06c3a5667fe541eee2bf2b820566496d), [`f4e9417a0`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/f4e9417a06c3a5667fe541eee2bf2b820566496d)]: + - ui@2.19.0 + +## 2.8.14 + +### Patch Changes + +- Updated dependencies [[`8fbfb95d5`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/8fbfb95d5d64ba23bff774aa95ea885839475603)]: + - ui@2.18.0 + +## 2.8.13 + +### Patch Changes + +- Updated dependencies [[`717cb798b`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/717cb798b200f5a3afde49695548266fa6bdfb3d)]: + - shared-utils@2.11.0 + - ui@2.17.1 + +## 2.8.12 + +### Patch Changes + +- Updated dependencies [[`98505b6e1`](https://github.com/forbole/big-dipper-2.0-cosmos/commit/98505b6e1ca3001a6b078d30266ed33456c808df)]: + - ui@2.17.0 + +## 2.8.11 + +### Patch Changes + +- Updated dependencies [35f47327d] + - shared-utils@2.10.0 + - ui@2.16.0 + +## 2.8.10 + +### Patch Changes + +- Updated dependencies [29f3ac40] + - ui@2.15.1 + +## 2.8.9 + +### Patch Changes + +- Updated dependencies [9f2e26b1] + - shared-utils@2.9.0 + - ui@2.15.0 + +## 2.8.8 + +### Patch Changes + +- Updated dependencies [e0f32672] + - ui@2.14.3 + +## 2.8.7 + +### Patch Changes + +- Updated dependencies [e11d768a] + - ui@2.14.2 + +## 2.8.6 + +### Patch Changes + +- Updated dependencies [4079b219] + - ui@2.14.1 + +## 2.8.5 + +### Patch Changes + +- Updated dependencies [d08c0dfd] + - shared-utils@2.8.0 + - tsconfig@0.3.0 + - ui@2.14.0 + +## 2.8.4 + +### Patch Changes + +- Updated dependencies [af2e8add5] + - shared-utils@2.7.0 + - ui@2.13.0 + +## 2.8.3 + +### Patch Changes + +- Updated dependencies [b4ac0a0c5] + - shared-utils@2.6.3 + - ui@2.12.1 + +## 2.8.2 + +### Patch Changes + +- Updated dependencies [e12c3b0c2] + - ui@2.12.0 + +## 2.8.1 + +### Patch Changes + +- Updated dependencies [a04d53bd8] +- Updated dependencies [a04d53bd8] +- Updated dependencies [a04d53bd8] + - ui@2.11.1 + +## 2.8.0 + +### Minor Changes + +- d967ae3f: migrate from next-tranlsate to next-i18next + + - replace {{count}} in locales/en/\*.json to {{num}} because {{count}} is reserved for next-18next + - add getServerSideProps to path with dynamic route param + - add getStaticProps to path without dynamic route param + +### Patch Changes + +- d967ae3f: remove @sentry/nextjs package, add install sentry script to install @sentry/nextjs when deployment via docker +- d967ae3f: replace dompurify package with xss +- d967ae3f: feat: change matomoSiteID to 8 +- d967ae3f: move jest setup coding to ui worksapce +- Updated dependencies [d967ae3f] +- Updated dependencies [d967ae3f] +- Updated dependencies [d967ae3f] +- Updated dependencies [d967ae3f] +- Updated dependencies [d967ae3f] +- Updated dependencies [d967ae3f] +- Updated dependencies [d967ae3f] + - tsconfig@0.2.0 + - ui@2.11.0 + +## 2.7.2 + +### Patch Changes + +- b64119a1: feat: handle respoonsive UI via CSS instead of using JS +- Updated dependencies [b64119a1] + - shared-utils@2.6.2 + - ui@2.10.4 + +## 2.7.1 + +### Patch Changes + +- dc085630: feat: Add Rotate banner feature +- Updated dependencies [dc085630] + - shared-utils@2.6.1 + - ui@2.10.1 + +## 2.7.0 + +### Minor Changes + +- 85dd8c7d: Migrate MUI v4 to MUI v5, Next v12 to v13, React v17 to v18 + +### Patch Changes + +- Updated dependencies [85dd8c7d] + - shared-utils@2.6.0 + - ui@2.10.0 + +## 2.6.0 + +### Minor Changes + +- 8ea919c8: auto deployment based on PR title keyword + +### Patch Changes + +- Updated dependencies [8ea919c8] + - ui@2.9.0 + +## 2.5.0 + +### Minor Changes + +- 650f686b: Enable Yarn Plug'n'Play (Zero-Installs) + +### Patch Changes + +- Updated dependencies [650f686b] + - shared-utils@2.5.0 + - ui@2.7.0 + +## 2.4.1 + +### Patch Changes + +- 2db4ee93: performance improvements and bug fixes +- Updated dependencies [2db4ee93] + - ui@2.6.1 + +## 2.4.0 + +### Minor Changes + +- df8a5bca: - batch network requests ([\#1092](https://github.com/forbole/big-dipper-2.0-cosmos/issues/1092)) + +### Patch Changes + +- Updated dependencies [df8a5bca] + - ui@2.5.0 + +## 2.3.0 + +### Minor Changes + +- e6437552: fix: numeral [NaN issue](https://github.com/adamwdraper/Numeral-js/issues/596) + +### Patch Changes + +- e6437552: refactor: add config for voting power exponent +- e6437552: fix: transaction message raw and filter not working +- e6437552: fix: WebSocket use default instead of GRAPHQL_TRANSPORT_WS_PROTOCOL +- e6437552: ci: Add bulk preview / publish to Akash +- e6437552: fix: height is not display properly in consensus ui +- e6437552: fix: type erros missing type declaration csstype +- Updated dependencies [e6437552] +- Updated dependencies [e6437552] +- Updated dependencies [e6437552] +- Updated dependencies [e6437552] +- Updated dependencies [e6437552] +- Updated dependencies [e6437552] +- Updated dependencies [e6437552] + + - shared-utils@2.3.0 + - ui@2.3.0 + +- Display `requested amount` and `recipient` fields inside Community Pool Spend proposal details page ([\#1053](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1053)) +- Added Connect Wallet pop up screen ([\#1068](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1068)) + +# main-v2.2.0 - 2022-11-22 + +## Changes + +- Moved env variables to config ([\#1007](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1007)) +- Added Sentry's Next.js SDK ([\#1005](https://github.com/forbole/big-dipper-2.0-cosmos/issues/1005)) +- Switched from using `npm` to `yarn berry` package manager ([\#1028](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1028)) +- Setup monorepo ([\#1035](https://github.com/forbole/big-dipper-2.0-cosmos/issues/1035)) +- Incremented unit tests coverage ([\#1044](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1044)) +- Increment E2E tests coverage ([\#1047](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1047)) +- Added Affiliate Marketing advertising banners ([\#1056](https://github.com/forbole/big-dipper-2.0-cosmos/pull/1056)) + +# base-v2.1.2 - 2022-09-11 + +## Fixes + +- Fixed `/font` after chain prefix `/desmos` in global.css ([\#992](https://github.com/forbole/big-dipper-2.0-cosmos/issues/992)) + +# base-v2.1.1 - 2022-08-29 + +## Fixes + +- Added missing dependency of `useEffect` in `useProfilesRecoil` to avoid desmos profile from not being loaded ([\#904](https://github.com/forbole/big-dipper-2.0-cosmos/issues/904)) + +## Changes + +- Updated validator and account details to not be found if bech32 is invalid +- Removed the use of NEXT_PUBLIC_URL +- Updated graphql types generation structure (in preparation for third party modules) +- Updated preview image location +- Updated change url files ([\#972](https://github.com/forbole/big-dipper-2.0-cosmos/issues/972)) +- Added `NEXT_PUBLIC_MATOMO_URL` and `NEXT_PUBLIC_MATOMO_SITE_ID` to github workflow production ([\#972](https://github.com/forbole/big-dipper-2.0-cosmos/issues/972)) + +# base-v2.1.0 - 2022-04-19 + +## Changes + +- Updated not found and 404 logo ([\#792](https://github.com/forbole/big-dipper-2.0-cosmos/issues/792)) +- Fixed params % display ([\#795](https://github.com/forbole/big-dipper-2.0-cosmos/issues/795)) +- Updated params page if time period less than 1 day then show seconds ([\#797](https://github.com/forbole/big-dipper-2.0-cosmos/issues/797)) +- Added token price history component ([\#784](https://github.com/forbole/big-dipper-2.0-cosmos/issues/784)) +- Updated Account details hasura actions to default call 100 items instead of 10 for better performance +- Added back proposal details quorum % ([\#788](https://github.com/forbole/big-dipper-2.0-cosmos/issues/788)) +- Updated validator details hasura actions performances ([\#812](https://github.com/forbole/big-dipper-2.0-cosmos/issues/812)) + +## Fixes + +- Fixed commission being displayed for non validator accounts ([\#787](https://github.com/forbole/big-dipper-2.0-cosmos/issues/787)) +- Added community tax in to apr calculation ([\#810](https://github.com/forbole/big-dipper-2.0-cosmos/issues/810)) + +# base-v2.0.2 - 2022-03-23 + +## Bug fixes + +- Fixed proposal details chart percentage display + +# base-v2.0.1 - 2022-03-17 + +## Bug fixes + +- Fixed online voting power total ([\#800](https://github.com/forbole/big-dipper-2.0-cosmos/issues/800)) + +# base-v2.0.0 - 2022-03-10 + +## Changes + +- Changed online voting power to be a query instead of a subscription ([\#638](https://github.com/forbole/big-dipper-2.0-cosmos/issues/638)) +- Optimised rendering of Proposal Details page ([\#763](https://github.com/forbole/big-dipper-2.0-cosmos/issues/763)) +- Updated online voting power display ([\#776](https://github.com/forbole/big-dipper-2.0-cosmos/issues/776)) +- Improved initial loading speed by asyncing top level functions ([\#773](https://github.com/forbole/big-dipper-2.0-cosmos/issues/773)) + +## Bug fixes + +- Fixed Apr error if bonded tokens is 0 ([\#758](https://github.com/forbole/big-dipper-2.0-cosmos/issues/758)) + +## Breaking + +- [Bdjuno](https://github.com/forbole/bdjuno) must be on `v2.0.0` + +# base-v2.0.0-rc3 - 2022-02-25 + +## Changes + +- Changed `NEXT_PUBLIC_WS_CHAIN_URL` to `NEXT_PUBLIC_RPC_WEBSOCKET` for clarification +- Changed `NEXT_PUBLIC_CHAIN_STATUS` to `NEXT_PUBLIC_CHAIN_TYPE` for clarification + +## Migration + +- Changed env `NEXT_PUBLIC_WS_CHAIN_URL` to `NEXT_PUBLIC_RPC_WEBSOCKET` or don't. It's backwards compatible +- Changed env `NEXT_PUBLIC_CHAIN_STATUS` to `NEXT_PUBLIC_CHAIN_TYPE` or don't. It's backwards compatible + +## Breaking + +- [Bdjuno](https://github.com/forbole/bdjuno) must be on `v2.0.0` + +# base-v2.0.0-rc2 - 2022-02-24 + +## Changes + +- Updated market cap display ([\#698](https://github.com/forbole/big-dipper-2.0-cosmos/issues/698)) +- Optimised validator details and account details to prevent random polling behavior ([\#703](https://github.com/forbole/big-dipper-2.0-cosmos/issues/703)) +- Added hasura actions error handling in account details ([\#713](https://github.com/forbole/big-dipper-2.0-cosmos/issues/713)) +- Updated to display accounts even if balance is 0 and does not exist ([\#692](https://github.com/forbole/big-dipper-2.0-cosmos/issues/692)) +- Updated handling of 18 decimal places denoms ([\#724](https://github.com/forbole/big-dipper-2.0-cosmos/issues/724)) + +## Bug fixes + +- Added better handling of get denom return types ([\#735](https://github.com/forbole/big-dipper-2.0-cosmos/issues/735)) +- Updated ui to match the improved hasura actions return types + +# base-v2.0.0-rc1 - 2022-02-07 + +## Changes + +- Updated Hasura Actions + +## Breaking + +- [Bdjuno](https://github.com/forbole/bdjuno) must be on `v1.0.0` + +# base-v1.10.0 - 2022-01-25 + +## Changes + +- Optimized initial loading by setting basic details first then profiles after ([\#629](https://github.com/forbole/big-dipper-2.0-cosmos/issues/629)) +- Added vp token unit in config ([\#645](https://github.com/forbole/big-dipper-2.0-cosmos/issues/645)) + +## Bug fixes + +- Fixed home page validator image url not displaying correctly ([\#632](https://github.com/forbole/big-dipper-2.0-cosmos/issues/632)) +- Fix validator anc account details possible infinite load due to dayjs in hook +- Added description sanitization to proposals list ([\#666](https://github.com/forbole/big-dipper-2.0-cosmos/issues/666)) +- Fixed pagination hook page callback ([\#667](https://github.com/forbole/big-dipper-2.0-cosmos/issues/667)) +- Showed address if name or moniker is empty ([\#668](https://github.com/forbole/big-dipper-2.0-cosmos/issues/668)) + +## Migration + +- [v1.9.0 to v1.10.0](https://docs.bigdipper.live/cosmos-based/frontend/migrations/v1.9.0-to-v1.10.0) + +# base-v1.9.0 - 2022-01-10 + +## Changes + +- Added logs in tx details ([\#515](https://github.com/forbole/big-dipper-2.0-cosmos/issues/515)) +- Added tombstoned status ([\#600](https://github.com/forbole/big-dipper-2.0-cosmos/issues/600)) +- Added manual versioning in ui ([\#605](https://github.com/forbole/big-dipper-2.0-cosmos/issues/605)) +- Optimized tx list for chains with heavy traffic ([\#602](https://github.com/forbole/big-dipper-2.0-cosmos/issues/602)) +- Setup case insensitive search in dtags ([\#592](https://github.com/forbole/big-dipper-2.0-cosmos/issues/592)) +- Fixed profiles logic ([\#591](https://github.com/forbole/big-dipper-2.0-cosmos/issues/591)) +- Added AvatarNameListMsg for handling msgs with multiple users ([\#619](https://github.com/forbole/big-dipper-2.0-cosmos/issues/619)) + +# base-v1.8.4 - 2021-12-08 + +## Bug fixes + +- Fix `feegrant` and `authz` messages ([\#588](https://github.com/forbole/big-dipper-2.0-cosmos/issues/588)) + +# base-v1.8.3 - 2021-12-07 + +## Bug fixes + +- Fix validators list not displaying inactive validators ([\#583](https://github.com/forbole/big-dipper-2.0-cosmos/issues/583)) + +# base-v1.8.2 - 2021-12-06 + +## Bug fixes + +- Fix APR to handle multiple supply coins + +# base-v1.8.1 - 2021-12-06 + +## Bug fixes + +- Fix `formatNumber` display after cleaning up ending 0s + +# base-v1.8.0 - 2021-12-06 + +## Changes + +- Display `APR` on title bar ([\#483](https://github.com/forbole/big-dipper-2.0-cosmos/issues/483)) +- Add `@dtag` to search bar ([\#554](https://github.com/forbole/big-dipper-2.0-cosmos/issues/554)) +- Add `/@dtag` feature ([\#428](https://github.com/forbole/big-dipper-2.0-cosmos/issues/428)) +- Add `feegrant` and `authz` messages ([\#481](https://github.com/forbole/big-dipper-2.0-cosmos/issues/481)) +- Add `vesting` messages ([\#538](https://github.com/forbole/big-dipper-2.0-cosmos/issues/538)) +- Add status row in `/validators` ([\#556](https://github.com/forbole/big-dipper-2.0-cosmos/issues/556)) +- Show who the top 34% validators are ([\#506](https://github.com/forbole/big-dipper-2.0-cosmos/issues/506)) + +## Bug fixes + +- Fix validator searchbar ([\#540](https://github.com/forbole/big-dipper-2.0-cosmos/issues/540)) + +# base-v1.7.0 - 2021-11-23 + +## Changes + +- Fix account details denom display ([\#478](https://github.com/forbole/big-dipper-2.0-cosmos/issues/478)) +- Replace average block time with average since last hour ([\#480](https://github.com/forbole/big-dipper-2.0-cosmos/issues/480)) +- Renamed `PROFILE_DETAILS` to `ADDRESS_DETAILS` ([\#503](https://github.com/forbole/big-dipper-2.0-cosmos/issues/503)) +- Update handling of block height in searchbar ([\#501](https://github.com/forbole/big-dipper-2.0-cosmos/issues/501)) +- Fix community pool spend proposal display ([\#520](https://github.com/forbole/big-dipper-2.0-cosmos/issues/520)) +- Update how tokens are formatted and display up to 18 decimal places ([\#524](https://github.com/forbole/big-dipper-2.0-cosmos/issues/524)) +- Auto display 0% if validator is not active ([\#541](https://github.com/forbole/big-dipper-2.0-cosmos/issues/541)) + +## Migration + +- [v1.6.0 to v1.7.0](https://docs.bigdipper.live/cosmos-based/frontend/migrations/v1.6.0-to-v1.7.0) + +# base-v1.6.0 - 2021-11-01 + +## Changes + +- Converted all react context in to recoil ([\#455](https://github.com/forbole/big-dipper-2.0-cosmos/issues/455)) +- Enabled desmos profile for delegators ([\#277](https://github.com/forbole/big-dipper-2.0-cosmos/issues/277)) +- Add license comment ([\#474](https://github.com/forbole/big-dipper-2.0-cosmos/issues/474)) +- Add redirect for old big dipper urls ([\#427](https://github.com/forbole/big-dipper-2.0-cosmos/issues/427)) +- Fix desmos profile alignment ([\#435](https://github.com/forbole/big-dipper-2.0-cosmos/issues/435)) + +## Migration + +- [v1.x.x to v1.6.0](https://docs.bigdipper.live/cosmos-based/frontend/migrations/v1.x.x-to-v1.6.0) + +# base-v1.5.1 - 2021-10-11 + +## Changes + +- Fixed `detailed` transaction list not showing correct msg count + +# base-v1.5.0 - 2021-10-11 + +## Changes + +- Displayed desmos profile native address in connections ([\#420](https://github.com/forbole/big-dipper-2.0-cosmos/issues/420)) +- Create `compact` and `detailed` transaction list views for users with different needs ([\#391](https://github.com/forbole/big-dipper-2.0-cosmos/issues/391)) +- Updated `chain_config` + +# base-v1.4.0 - 2021-10-04 + +## Changes + +- Updated markdown to handle `\n` +- Changed validator list tab orders ([\#411](https://github.com/forbole/big-dipper-2.0-cosmos/issues/411)) +- Update numeral formats based on denom exponent ([\#409](https://github.com/forbole/big-dipper-2.0-cosmos/issues/409)) + +## Bug fixes + +- Fixed rewards dict inside account details ([\#412](https://github.com/forbole/big-dipper-2.0-cosmos/issues/412)) + +# base-v1.3.0 - 2021-09-27 + +## Changes + +- Hides delegators in account details if amount is 0 ([\#369](https://github.com/forbole/big-dipper-2.0-cosmos/issues/369)) +- Add MsgCoin global delclaration ([\#367](https://github.com/forbole/big-dipper-2.0-cosmos/issues/367)) + +## Bug fixes + +- Fixed tx msg label padding typo ([\#382](https://github.com/forbole/big-dipper-2.0-cosmos/issues/382)) +- Added default config value for online voting power ([\#378](https://github.com/forbole/big-dipper-2.0-cosmos/issues/378)) +- Fixes how queries are called so data matches on ui ([\#371](https://github.com/forbole/big-dipper-2.0-cosmos/issues/371)) + +# base-v1.2.0 - 2021-09-20 + +## Changes + +- Update price and market cap display ([\#322](https://github.com/forbole/big-dipper-2.0-cosmos/issues/322)) + +## Bug fixes + +- Fix account and validator details redelegation linking consensus address ([\#323](https://github.com/forbole/big-dipper-2.0-cosmos/issues/323)) + +# base-v1.1.1 - 2021-09-17 + +## Hotfix + +- Fixed display error with previous delegation rewards also adding to total rewards balance + +# base-v1.1.0 - 2021-09-13 + +## Changes + +- Centered desmos profile cover photo ([\#285](https://github.com/forbole/big-dipper-2.0-cosmos/issues/285)) +- Add License to footer ([\#287](https://github.com/forbole/big-dipper-2.0-cosmos/issues/287)) +- Changed position of desmos profile +- Fix avatar images not loading correctly ([\#296](https://github.com/forbole/big-dipper-2.0-cosmos/issues/296)) +- Fix rendering issue on account and validtor details page ([\#297](https://github.com/forbole/big-dipper-2.0-cosmos/issues/297)) +- Add validator status to account delegation component ([\#307](https://github.com/forbole/big-dipper-2.0-cosmos/issues/307)) + +# base-v1.0.9 - 2021-09-03 + +## Bug fixes + +- Fixed desmos profile edge case display + +# base-v1.0.8 - 2021-09-03 + +## Changes + +- Change how markdown is displayed ([\#274](https://github.com/forbole/big-dipper-2.0-cosmos/issues/274)) +- Update desmos profile component ([\#273](https://github.com/forbole/big-dipper-2.0-cosmos/issues/273)) ([\#140](https://github.com/forbole/big-dipper-2.0-cosmos/issues/140)) +- Fixed account detail balance ([\#271](https://github.com/forbole/big-dipper-2.0-cosmos/issues/271)) +- Update account/ validator details staking component sorting order ([\#266](https://github.com/forbole/big-dipper-2.0-cosmos/issues/266)) + +## Bug fixes + +- Fix withdraw rewards display error if not enough gas + +# base-v1.0.7 - 2021-08-31 + +## Changes + +- Added testnet and mainnet configs for easier deployment of the same chain in different stages +- Update akash webhook CICD + +# base-v1.0.6 - 2021-08-25 + +## Changes + +- Updated SEO structure + +# base-v1.0.5 - 2021-08-23 + +## Changes + +- Updated models msg types ([\#225](https://github.com/forbole/big-dipper-2.0-cosmos/issues/225)) +- Update github actions CI/CD + +## Bug fixes + +- Fix staking param details displaying incorrect `Max Validators` + +# base-v1.0.4 - 2021-08-19 + +## Changes + +- Change logo placement in nav mobile ([\#202](https://github.com/forbole/big-dipper-2.0-cosmos/issues/202)) +- Increased tag colors ([\#207](https://github.com/forbole/big-dipper-2.0-cosmos/issues/207)) +- Add IBC messages ([\#192](https://github.com/forbole/big-dipper-2.0-cosmos/issues/192)) + +# base-v1.0.3 + +## Changes + +- Bump next 10 to next 11 +- Bump react v16.x.x to v17.x.x +- Update logo to have max height of 55px + +# base-v1.0.2 + +## Changes + +- Update the structure layout of themes +- Update footer light and dark theme +- Add maintainer section in footer + +# base-v1.0.1 + +## Bug fixes + +- Fixed tokenomics legend to use the correct colors + +# base-v1.0.0 + +## Changes + +- Created initial boilerplate base +- Updated proposal details to display results using snapshots instead of realtime data ([\#116](https://github.com/forbole/big-dipper-2.0-cosmos/issues/116)) +- Added desmos profile feature +- Update chain status notifications ([\#141](https://github.com/forbole/big-dipper-2.0-cosmos/issues/141)) +- Add custom 500 page ([\#149](https://github.com/forbole/big-dipper-2.0-cosmos/issues/149)) +- Fix twitter crawler preview ([\#144](https://github.com/forbole/big-dipper-2.0-cosmos/issues/144)) +- Update params visualisation ([\#152](https://github.com/forbole/big-dipper-2.0-cosmos/issues/152)) +- Make mui tabs scrollable ([\#152](https://github.com/forbole/big-dipper-2.0-cosmos/issues/153)) +- Moved documentation to own repo ([\#162](https://github.com/forbole/big-dipper-2.0-cosmos/issues/162)) +- Add validator last seen active feature ([\#160](https://github.com/forbole/big-dipper-2.0-cosmos/issues/160)) +- Updated params to be JSONB with models typed +- Add logos by different theme ([\#168](https://github.com/forbole/big-dipper-2.0-cosmos/issues/160)) diff --git a/apps/web-neutron/codegen.yml b/apps/web-neutron/codegen.yml new file mode 100644 index 0000000000..e5ba41c3d0 --- /dev/null +++ b/apps/web-neutron/codegen.yml @@ -0,0 +1,24 @@ +overwrite: true +generates: + ./src/graphql/types/general_types.ts: + documents: + - 'src/graphql/general/*' + schema: https://gql.neutron.forbole.com/v1/graphql + config: + # omitOperationSuffix: true + skipTypeNameForRoot: true + plugins: + - 'typescript' + - 'typescript-operations' + - 'typescript-react-apollo' # To generate custom hooks per query + ./src/graphql/types/provider_types.ts: + documents: + - 'src/graphql/provider/*' + schema: https://gql.neutron.forbole.com/v1/graphql + config: + # omitOperationSuffix: true + skipTypeNameForRoot: true + plugins: + - 'typescript' + - 'typescript-operations' + - 'typescript-react-apollo' # To generate custom hooks per query diff --git a/apps/web-neutron/jest.config.ts b/apps/web-neutron/jest.config.ts new file mode 100644 index 0000000000..d0d9cb919a --- /dev/null +++ b/apps/web-neutron/jest.config.ts @@ -0,0 +1,32 @@ +import configFromPreset from 'jest-presets/jest/node/jest-preset'; +import nextJest from 'next/jest'; +import { pathsToModuleNameMapper } from 'ts-jest'; +import tsconfig from './tsconfig.json'; + +/* Creating a jest configuration for nextjs. */ +const createJestConfig = nextJest({ + dir: './', +})(configFromPreset); + +const exportFunc = async () => { + // Create Next.js jest configuration + const configFromNext = await createJestConfig(); + Object.keys(configFromNext.moduleNameMapper).forEach((regExp) => { + if (new RegExp(regExp).test('_.svg')) { + configFromNext.moduleNameMapper[regExp] = 'shared-utils/__mocks__/svg.js'; + } + }); + // moduleNameMapper overrided by nextjs, so we need to add it here. + const finalConfig = { + ...configFromNext, + moduleNameMapper: { + ...configFromNext.moduleNameMapper, + ...pathsToModuleNameMapper(tsconfig.compilerOptions.paths, { + prefix: '/src/', + }), + }, + }; + return finalConfig; +}; + +export default exportFunc; diff --git a/apps/web-neutron/jest.setup.ts b/apps/web-neutron/jest.setup.ts new file mode 100644 index 0000000000..301ebcb836 --- /dev/null +++ b/apps/web-neutron/jest.setup.ts @@ -0,0 +1,16 @@ +import mockApollo from '@/tests/mocks/mockApollo'; +import mockChainConfig from '@/tests/mocks/mockChainConfig'; +import mockDayJs from '@/tests/mocks/mockDayJs'; +import mockDynamicComponent from '@/tests/mocks/mockDynamicComponent'; +import mockI18Next from '@/tests/mocks/mockI18Next'; +import mockProfiles from '@/tests/mocks/mockProfiles'; +import '@testing-library/jest-dom/extend-expect'; +import 'jest-localstorage-mock'; + +jest.setTimeout(30000); +mockI18Next(); +mockApollo(); +mockChainConfig(); +mockDayJs(); +mockDynamicComponent(); +mockProfiles(); diff --git a/apps/web-neutron/next-env.d.ts b/apps/web-neutron/next-env.d.ts new file mode 100644 index 0000000000..4f11a03dc6 --- /dev/null +++ b/apps/web-neutron/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/apps/web-neutron/next-i18next.config.js b/apps/web-neutron/next-i18next.config.js new file mode 100644 index 0000000000..ebf68ae324 --- /dev/null +++ b/apps/web-neutron/next-i18next.config.js @@ -0,0 +1,11 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +const { resolve } = require('path'); + +module.exports = { + i18n: { + defaultLocale: 'en', + locales: ['en', 'zht', 'zhs', 'it', 'pl'], + }, + localeDetection: false, + localePath: resolve('../../packages/ui/public/locales'), +}; diff --git a/apps/web-neutron/next-sitemap.config.js b/apps/web-neutron/next-sitemap.config.js new file mode 100644 index 0000000000..f1d46928c5 --- /dev/null +++ b/apps/web-neutron/next-sitemap.config.js @@ -0,0 +1,5 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +const { readFileSync } = require('fs'); +const getSitemap = require('shared-utils/configs/sitemap'); + +module.exports = getSitemap(JSON.parse(readFileSync('./package.json', 'utf8')).name); diff --git a/apps/web-neutron/next.config.js b/apps/web-neutron/next.config.js new file mode 100644 index 0000000000..76ba5b65c2 --- /dev/null +++ b/apps/web-neutron/next.config.js @@ -0,0 +1,9 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +const { readFileSync } = require('fs'); +const { i18n } = require('./next-i18next.config'); +const getNextConfig = require('../../packages/shared-utils/configs/next'); + +const nextConfig = getNextConfig(JSON.parse(readFileSync('./package.json', 'utf8')).name); +nextConfig.i18n = i18n; + +module.exports = nextConfig; diff --git a/apps/web-neutron/package.json b/apps/web-neutron/package.json new file mode 100644 index 0000000000..82f9d915d6 --- /dev/null +++ b/apps/web-neutron/package.json @@ -0,0 +1,138 @@ +{ + "name": "web-neutron", + "version": "2.17.0", + "license": "Apache-2.0", + "private": true, + "scripts": { + "dev": "RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED=false next dev", + "build": "next build && next-sitemap", + "clean": "rm -rf .next .swc .turbo coverage node_modules", + "start": "next start", + "ts-check": "pnpify tsc --noemit", + "lint": "next lint", + "test": "pnpify jest --passWithNoTests --ci --no-watchman --runInBand", + "graphql:codegen": "pnpify graphql-codegen" + }, + "dependencies": { + "@apollo/client": "^3.7.14", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/launchpad": "^0.27.1", + "@cosmjs/stargate": "^0.29.5", + "@emotion/react": "^11.11.0", + "@emotion/server": "^11.11.0", + "@emotion/styled": "^11.11.0", + "@keplr-wallet/types": "^0.11.59", + "@keplr-wallet/wc-client": "^0.11.59", + "@mui/icons-material": "^5.11.16", + "@mui/material": "^5.12.3", + "@socialgouv/matomo-next": "^1.6.1", + "@walletconnect/client": "^1.8.0", + "@walletconnect/encoding": "^1.0.2", + "@yarnpkg/pnpify": "^4.0.0-rc.43", + "apollo-link-rest": "^0.9.0", + "bech32": "^2.0.0", + "big.js": "^6.2.1", + "color": "^4.2.3", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.7", + "framer-motion": "^10.12.8", + "graphql": "^16.6.0", + "graphql-ws": "^5.12.1", + "i18next": "^22.4.15", + "jdenticon": "^3.2.0", + "js-yaml": "^4.1.0", + "lightweight-charts": "^4.0.1", + "markdown-to-jsx": "^7.2.0", + "next": "^13.4.1", + "next-i18next": "^13.2.2", + "next-seo": "^6.0.0", + "next-sitemap": "^4.1.3", + "numeral": "^2.0.6", + "qrcode.react": "^3.1.0", + "qs": "^6.11.1", + "ramda": "^0.29.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-i18next": "^12.2.2", + "react-share": "^4.4.1", + "react-toastify": "^9.1.2", + "react-virtualized-auto-sizer": "^1.0.15", + "react-window": "^1.8.9", + "react-window-infinite-loader": "^1.0.9", + "recharts": "^2.5.0", + "recoil": "^0.7.7", + "shared-utils": "workspace:*", + "subscriptions-transport-ws": "^0.11.0", + "tsconfig": "workspace:*", + "tslib": "^2.5.0", + "tss-react": "^4.8.3", + "typanion": "^3.12.1", + "ui": "workspace:*", + "usehooks-ts": "^2.9.1", + "ws": "^8.13.0", + "xss": "^1.0.14", + "zod": "^3.21.4" + }, + "devDependencies": { + "@emotion/cache": "^11.11.0", + "@emotion/jest": "^11.11.0", + "@graphql-codegen/cli": "^3.3.1", + "@graphql-codegen/client-preset": "^3.0.1", + "@graphql-codegen/fragment-matcher": "^4.0.1", + "@graphql-codegen/typescript": "^3.0.4", + "@graphql-codegen/typescript-operations": "^3.0.4", + "@graphql-codegen/typescript-react-apollo": "^3.3.7", + "@graphql-tools/mock": "^8.7.20", + "@graphql-tools/schema": "^9.0.19", + "@jest/globals": "^29.5.0", + "@next/eslint-plugin-next": "^13.4.1", + "@svgr/webpack": "^7.0.0", + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^14.0.0", + "@types/big.js": "^6.1.6", + "@types/color": "^3.0.3", + "@types/eslint": "^8.37.0", + "@types/esprima": "^4.0.3", + "@types/jest": "^29.5.1", + "@types/js-yaml": "^4.0.5", + "@types/node": "^18.16.5", + "@types/numeral": "^2.0.2", + "@types/qs": "^6.9.7", + "@types/ramda": "^0.29.1", + "@types/react": "^18.2.6", + "@types/react-dom": "^18.2.4", + "@types/react-test-renderer": "^18.0.0", + "@types/react-virtualized-auto-sizer": "^1.0.1", + "@types/react-window": "^1.8.5", + "@types/react-window-infinite-loader": "^1.0.6", + "@typescript-eslint/eslint-plugin": "^5.59.2", + "@typescript-eslint/parser": "^5.59.2", + "csstype": "^3.1.2", + "dotenv": "^16.0.3", + "eslint": "^8.40.0", + "eslint-config-airbnb": "^19.0.4", + "eslint-config-custom": "workspace:*", + "eslint-config-next": "^13.4.1", + "eslint-config-prettier": "^8.8.0", + "eslint-config-turbo": "^1.9.3", + "eslint-import-resolver-typescript": "^3.5.5", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-turbo": "^1.9.3", + "esprima": "^4.0.1", + "graphql-tag": "^2.12.6", + "jest": "^29.5.0", + "jest-cli": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "jest-localstorage-mock": "^2.4.26", + "jest-presets": "workspace:*", + "jest-transform-stub": "^2.0.0", + "jest-watch-typeahead": "^2.2.2", + "react-test-renderer": "^18.2.0", + "ts-jest": "^29.1.0", + "ts-node": "^10.9.1", + "typescript": "^5.0.4" + } +} diff --git a/apps/web-neutron/public/fonts/HindMadurai-Regular.woff2 b/apps/web-neutron/public/fonts/HindMadurai-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..64b2f86e1eb3b88a07fb6e8d3380e9bb8328b70d GIT binary patch literal 45624 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 literal 0 HcmV?d00001 diff --git a/apps/web-neutron/public/icons/browserconfig.xml b/apps/web-neutron/public/icons/browserconfig.xml new file mode 100644 index 0000000000..9ebcb517e9 --- /dev/null +++ b/apps/web-neutron/public/icons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #da532c + + + diff --git a/apps/web-neutron/public/icons/favicon-16x16.png b/apps/web-neutron/public/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..148a4bc5d1a5087ca76048027489549766e5717c GIT binary patch literal 1033 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>hA?qbDKd5 z$bcgt7mnb9a0Xlo&VWk+8E`=$10f#Z^~u%c9;X7PEJOsN5m`O5N))4j?hL?T3l1r` z6%g~`Cc~{m7J=J^&=uefay%E%@sdEn?_qu)92_6;E8k=ggE|}LyZ`_H_lf$v0S0JR zNsu2Xeta%W7Z8|!!Kdp|fU6oKqnc~LrLK_LnLlfP&J1DJx|NcamU2srIqcW3u*Hj2 zAFllO@8YV5s_FkG$G?9cKPjDS^WW#cp8wsKNJ792FA<0}U56>}Xjsg@u_}c=DE>HCto? z9O4`ey@Na>T|>>HePfw54lGzXb?Vf~v!~CUyLRnimY{{RS%ptrV_tc|e1cJm;iixrqI7D@T^IOH1|968d&^61gb84`|64ij6B zEO{~|L_l7LLB!Mh{0WxNl8m2JP3tq(u$%{aRJFu4q9i4;B-JXpC>2OC7#SED=o%X8 z8k&U|7+IMZSs9sV8yH#{7;Na!-GZVaH$NpatrE9}gIA|=05ybHg+!DDC6+4`6y>L7 z=A!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+0815B;+YC}) zeZ0Q-d*1;v{Jqc+P!Sb zfGa?^2txr-BgAC5Mu<^xjSyKhL8x_Ly%3ei%8(Ufl|>VTaFKPPv5^fYTQA%Y{MI2W z134qW8x%5Jz#x?bN_`LW`{3aCfM5A0gBVa2q!<>Y|NsBjeWLdV1MdR^fjf4c1 z&Hw&wRuP>xRg~-fd#>;Y55ldjRX1)BnLJ5^v$%*eS$jW^E;+5g1hLp&eUwC9gwYTv=|%z{5o z@gZ`fQ1HQ3R|P#dlYI4eHSOE_;R!?7#=N~8o0wkmexCT$QOhiEmAgj9jXkWPa!XQP zZ}XYK)c)4`!qS6&cXx6xO87o+Z^RSFYj1Azdu?IgG;_nL<`5a1k{>57ChvISsMR;$ zqLM3Aj^V(w{`bMzY*N4kqFUk_QIe8al4_M)lnSI6j0}tnbPWx44b4IfjI2zItc*;w z4GgUe3^sJ=Zb8wIo1c=IR*74~!K+g_fEvQ9LLy3n63Z0|it^Jkb5a#bDhpB-G7CzQ z85k<&JpRPPQ5dG7amxSn8PBId49v>hddb|v%EI20MVN&ZTpCOcr!XsT4pBIL} literal 0 HcmV?d00001 diff --git a/apps/web-neutron/public/icons/favicon.ico b/apps/web-neutron/public/icons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d1cfa921aee72e2db793624ab7753893cf0225fc GIT binary patch literal 15086 zcmdU$eT-Dq8Hdj@>MlrJQUy{zoK+MAH33X08$K4268Va30%8D-Bob(1w6&xp{6Sfb zA+3Ly3W}~YKw@IFmZS~Fh#1+J8mwPXqA`Ho4y9!q4X_0lW?|Xe=QlHF_Rih=HM4i1 zZu0QXz4x5+{?57Qo_o%F560A(l$ku)U>nREcN#Oz7}L;DI38w9JLiUBb^T}88MB21 zcaerHW;N)1?(dGgxf=gIu>9hPxpO*qkE_q@9AS%!(P2mQSbgWG%2?!d<|y_&uUQZ|}X@F28<Tnu<34@c?QAv5|y#=;Gwx~T^zv^%iw!$ry_)IDf zdhdik!<7>4(fU<~EAS_{ilbs*&Cxp(KJBMl+T-b09mFRvqp#%Z{z99c(}y6F(`og3 zZU6Dd>h-h#pbpC+RZaEi9ReHRY^e6~+TYgaEc$;1L#j~+^bUvZQ2LyD+ua_Q*Z#H+ zS@gdIiN3GVJOSQ@UdZ?FC|j9+)kDwqUKpRmeL(MQ_&m05Td&IX+k5djb(mFY9ngCn ztb~7-tzC5(xPH~+1gwCvo@?~p2pgfZBJIiPR~X*__IIyMrvKPyL00qFcVMDl9nd@n4ne%}B`RI=`fXhfQHMG1I-q$F z>`Y9%>Q+7ds>ehvG2dlvg?FX-1Ct(>`n#@QqA7L-0a;ri8w{{Tn8uJ7&m5@t20 z2%X!ZV++I?L;pj%-@+JJ3gzn8I(`iN209>2x4pI{sO{}}bj*aXdBgWye*=C3xp@h; zBK`7-?m;jOUWf0&YV}&pBW7BiK^84T;REoy2bVbiB-Gmc`VGH;(lu~+|Ir*-F^D=_ z4!>*R3AhAa?K=JdhT8OD7A=Z}`03ZVCzKaE79Io5H~QbNaQ)KrU)Tq0AvYdkp9DYc zI=4Pdv-=u)?u8EUtHVLg{|=5qX`gqekJfK>>RCPx+dwfod){sJeBA5S81@@oH^3h7 z(;x3#eEn{nLBIE)|AsKl-fL)I4Z-ajRk!5y>;A0v>Wex?`)%+I#A|PFy5#hKgZ|s1 z^m?zOTXWLi{~zezf&P-YrdMmwG1`|vym(1<+F$XMB|-Y4&ZB(<9ES4yP%`~TYn2gE zI>WA`{rPLC|M@U&ajv0#0R+uSwZ=aO=ljvzb)N4p=lK3|jy60WfUaq6?l*2~uDKwN z#;`Q#QanO)Ous&Kfb+AUu^-J{jp%PgeQ|< zoSvq<&8G9Vvp#P#wRzi8lebC>y~b>o?J=fFHfu~;He*b!Y@0DD*%tO6$*N-fLpCxR zLvk`0(kAl6@<~XSX_-otTn@ZzLRz5S1Q!7iW_PQ;t*~zh5H%oe_i5AD1 zUT6(42a5Z&hH;S4pKBl1uB*Kdi+=CjNA*Yg;q3`kEwmVXH-g;<q^daaQ>iy6KLH=3r z9={(J!-pVWUjJHy_ghy|rslRU=F0B7*Q)EUAvbfuJ_z}_yZ`;yxW8OA!q&qkaIZ6^ zB^Q73)?dezt#v@Yet8Y5`&yU>JKe%ffx8XVKJ)#27yRE$`JWVh z)pN(Muw!P)+G}vQV?diNZ$bUh@GyQyded{>dzuT|<{Y;qef`6@p&qQh{ z-~Sov9yve5ul9(&R|Ws?;Xm$Pucu=Ach5g<8wc5^qT1eG$M+QY&Z9x`3bo7r9L-(( ziR12P{=1)gxluj6@rCa=7r9QQT+Kc7{r0AukJ5hkD(C8oG1=;slX#XUZQ5?sdL&Xx^do?}Bgaow7Cl%7?~0>9`N{ z>{|^QmjcHQd+#V;aRxp6w*DFe?t=xOu~6Fl#^1Xs|J#DU7qDvUMX(Z9!NV}Y`U$d> zJpmquRj?8kf$q->AWh%G-QN6^?e_mA$Fo8GaI`mV+++NV2E{C9!}jH96p2h!FNw$Y0mH?d`*P+;WKy~ z(ol@qFm0bj&o2boYCz#yEF;Y%e?`Laf*_e5f?)Kh(io7{C}|B<;Eds z--_c1gRgjt%t$VLf#*No@;mP)4s?3 z@~aHZr}W$^?^HMic09`4{ChYkzsfiT%B!`V);Ko5p0N(*5tkUpZGMeU9iV4Ld4<+0 zxiuT<*MZhZ8Y8#CqvSv9%CG+`@hEHsm8G@LI(sijul4*1=!Q4pF!_63`IY`}pgnNi za02*WkoiB->)yQvwhmG4_Zs=V_i#D+r9Z0uq(3*8_4uDe-eZOQt>|Ba{gw z*;Y`y9fL_w^iQ5;unAg0ZLrCfZ7u0FXI9-+j(!)vBa;3(I0E|as5$X?D2^qh)whxH zFb|qR@0#aq*`(DPLh<*PAut+Ao?-AZC_bLs7uma+m}`^boWwwhcV>v;w&2x(hJ)hgvRhjCnpRtWG0O0btj=k8Jwlu=Z-Ua~f%L71CDggY=bS3=&fM_TH z{PY9>-C_U$A(g;a$FCCX^i6k`RJz8tP(4e(IBQK6n{eOleE+&~-Bzd7xsEQ+!7X)NY)G{KgIw%b zeU8X#wwo|6i`VM0poI^(-eeWQZ+_E^O*oDJ$*+AruZd#svFZ0Q2W8EN3B_Jor5$mJ zI)}aoQyt3{tQr5$Lx7u%#ugR7MU<_(xiy4Ag5G8=zcFH^w6(awCn6khKThW>?)d-*!%@$69TaAFPGdQs1#bsbwm?MUvox?cpE)HbObB8m;m_h&{jH&WaEo7BdrTvMapu5HU<@gB?m zU4%hyr_g0CePS*c#N$zd8#YzN@ zUDI{Y95SZCfBfbrF6=v2glxeco&2f-Em5^3?dg|zdqavb9xC4!UI|jz%vvCM(!V8{ z{X9LJG{b1O zpbU#N;N49uUg8E&oHrQ~*lT3(j?^42uiSOP8oCaI@VRORB~Ws9&*f)i+m~fze7X}J z4s~;)zYfod-+1(TVDOjrggB^LpLRDuLXyKUqsxJ}@9@K}x?7S&yEYlW`7+lfI{`1Q z=xm5VxZWswXK=>37BTp0ws#u07Oj?$P8Dqe4c@eRL{K6J zk^Kel*M)XtqAwxNr@Z9At0P zS?2C=aB#h&+lQx2B1o=z!jnuB+rJ(%T|gS&Xl$Csnr9LJ9E9H~MQv(sXdc&VMWQ$2 zLaMRUsbDhA))r1Vnf!vzM})L_3DAT>W#6U{pG|9zF)p2Q+YmJ-oc?+|20qYH3pt{- zrz}|5;-(YKu?mq&K@$dh(K^oJ2{zUqkT_w`)d2EpU|}78W7IA5S=+K+XKzwnWa#Ag zd`2tvdrJZ0UgJIPHnIJ`uZ{CI>J-%lt;L>cN-h7~^=^j2(k*-PFh!XrNK0t6qjWjM zTf)<5q*$z`v1wD>X$Xo-{aaw{r0C=JKyupRVD6u9ZU-Js8=F$yE~`qW*JeJ3N{A(- z3CB+CoR9Y**IfF7L||eW_r9CS4d+tI`o~QS#m}U!ixyixDykK1bPX!OW8K@oFh(nL zpKgI=_24T*<{T~_eqljenjJ<{1)rS(;p%+T#Q(s7o0Nl7fFT0+X+pgbG z^U4Zlx@!vt0Y}WGg!@UPUBtsbl#fxLn@LgRzz%G z)ns?(tM^>&7E~}Z?E*OGjk^i{n2V^qn{y&7vb+1EY{Rf3EoBilgyPZB%UtUHWV@vd zfr%{@2x!ee&=hH@mo+3<4!*LW{YbtgToOioZUO2S$!+Hx55H1Kr6fD<8l2>k)Frfg zH6w3;96?WO@R`3D_^pVfkC1b~+VJl)LkBrm1D*zPw<3uTUukb8jLsVaJp#vMMn>Dp z`bhF9?Zp)0nC&=4!k(f4djz8U(4Kvpz#tTyk-Qjg|(qx58<;wY3 zxsdiz@_Sl-Ec@)@j7#5NANUxcQGF<r4STqZ3PM%%WU?r)H ziL#KM@(y|r1!aeea-k#(4AANoL}8A$B^nNV^Z9ViwgRO2voG7Iau0MWtL|{;_%!#; zzv||$Okp2a8*#7YmK?rTRINx&VfTrh>^z%K=UCbSFNKJz$isN~=5AgeiuiH!E1#dm z)Uq`Us)ZR6c{iu+k}9qPm0}AAPBNB}^6z|qeNqRP=4H(2n zAX2QM2<;Duv;9hXJwyDmR3``f(LIY%K3?S64Z^Ie@YrSBLb|Ln!Tos#biqGeimUJ_ zyesq`K{P_wQ+JT|f`127!aeW+COj=;NJ3ukX;#PERiL4B*mXKEilt>f(rnoNBXy;< zMIh5&zTV{g;kYI?T(roR9jPK*hr|rm5;|hK*%> z?C_hkohP%e{4rvM7KwixM;JoDSWf0tXLD}YnXV+je9_PyXVt&WVEStO#D3#2Tkv94 z*4uKj5}4TkQ09To*Rm8G>@$k9>E*)>2O4&i0L@H~BIndQ2b19K2|Gd8<1 z-$O6$S!XIGOA$grXC74!-B0GM=!?mghiuY?iugPY2;p~Jg{UspM&B~GxY+5L{NtC~ zA=vlvWdqvvA9<9QD-X-ts0?i4cE~WSu}LP8_{t+4p`_+*Nm+MZDE8zzU3Q0^kOHGk zxRNa+(=4f0+jpZ9*{0@u`x*X{x^;&fM30l)6PtxiZAn7x)Ji-IwQV7?>7o^bV^y2; zv&GOHDq=k6;a4upyA1G*rXvjOb|b0XHN7%#^$Ew7X}p$CNX5URt_o^P4zo4HC_?t) zi;Zy8sw{wK%nUz#S+fEePcmvxcxzwU$E#mdsVjh0(Wej#q_f3XN6+K_H0kQ!67hR} z;ioKi>9bY&xIeQ&pIhWm)&Sw79V$op_+=`&|Ip25Abf3bc88LTp^1AC*ZgD)Ob~IS zOA2f}M4~>t{DvKLj+-{AxRr*GsH?y5Q&_UMsClEzR|+e8_i0QvCl@(y$FzYHBnOE@ zcS}VIz^|?iuQF_A`fw@VKear1(Vo2?dn-fEAd-`4sc)Kn7>hkqw{3*OAXJn>PQ3-W zu=Cl~x^-0MCRtuNhSUg(9c`cRmybiK&uQ;N#}?#V5g-r5osvlicD*yJJmgeaP_K~A z9f}pg+UVPqf4Ve~RB)#>5;il(iBDu1Qo_y|-Ol|Dk-n)se}mErpTY5MBHV9L$saq& zB-FG$|JumQw=z+%uK7jfX7^?xZa5<-0jvlSj}1H#Q5CTa7yJ(H-x5=peC^OM2UQIf z#QaJ1pBsk+cUa)k-^a$dEo&M;I?#G?ldtU>?ujZSgG1AD0FyDY+AL*!Aq>pp}G713z=rY + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + + + diff --git a/apps/web-neutron/public/icons/site.webmanifest b/apps/web-neutron/public/icons/site.webmanifest new file mode 100644 index 0000000000..c5d1b226ad --- /dev/null +++ b/apps/web-neutron/public/icons/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "https://explorer.desmos.network/images/icons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "https://explorer.desmos.network/images/icons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/apps/web-neutron/public/images/default_cover_pattern.png b/apps/web-neutron/public/images/default_cover_pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..bf8f8bc3d17576ff20712be4c7ea505af7e56f24 GIT binary patch literal 46167 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 !!c)?.toLowerCase() || 'mainnet'; + const { chains, ...settings } = chainJson; + let chain = chains.find((c) => c.chainType?.toLowerCase() === chainType); + if (!chain && chainType !== 'testnet') { + chain = chains.find((c) => c.chainType?.toLowerCase() === 'testnet'); + } + + /* If the chainType is not found, it will use the first chain in the array. */ + if (!chain) [chain] = chains; + if (!chain) throw new Error(`Config not found for CHAIN_NAME ${chainJson.chainName}`); + + const basePath = (process.env.BASE_PATH || `${`/${settings.chainName}`}`).replace( + /^(\/|\/base)$/, + '' + ); + + /* Merging the settings and chain objects. */ + return { + ...settings, + basePath, + ...chain, + } as unknown as ChainConfig; +} + +export default chainConfig; diff --git a/apps/web-neutron/src/chainConfig/types.ts b/apps/web-neutron/src/chainConfig/types.ts new file mode 100644 index 0000000000..45a4065b3d --- /dev/null +++ b/apps/web-neutron/src/chainConfig/types.ts @@ -0,0 +1,157 @@ +export interface ChainSettings { + network: string; + chainType: string; + genesis: { + time: string; + height: number; + }; + prefix: { + consensus: string; + validator: string; + account: string; + }; + primaryTokenUnit: string; + votingPowerTokenUnit: string; + tokenUnits: { + [token: string]: { + display: string; + exponent: number; + }; + }; + endpoints: { + graphql?: string; + graphqlWebsocket?: string; + publicRpcWebsocket?: string; + }; + marketing: { + matomoURL?: string; + matomoSiteID?: string; + }; +} + +export interface PaletteSettings { + primary: { + main?: string; + contractText?: string; + }; + background: { + default?: string; + paper?: string; + }; + divider?: string; + text: { + primary?: string; + secondary?: string; + }; + custom: { + general: { + background?: string; + surfaceOne?: string; + surfaceTwo?: string; + surfaceThree?: string; + icon?: string; + }; + fonts: { + fontOne?: string; + fontTwo?: string; + fontThree?: string; + fontFour?: string; + fontFive?: string; + highlight?: string; + }; + primaryData: { + one?: string; + two?: string; + three?: string; + four?: string; + }; + results: { + pass?: string; + fail?: string; + }; + tokenomics: { + one?: string; + two?: string; + three?: string; + }; + conditions: { + zero?: string; + one?: string; + two?: string; + three?: string; + }; + charts: { + zero?: string; + one?: string; + two?: string; + three?: string; + four?: string; + five?: string; + }; + tags: { + zero?: string; + one?: string; + two?: string; + three?: string; + four?: string; + five?: string; + six?: string; + seven?: string; + eight?: string; + nine?: string; + ten?: string; + eleven?: string; + twelve?: string; + thirteen?: string; + fourteen?: string; + fifteen?: string; + sixteen?: string; + seventeen?: string; + eighteen?: string; + nineteen?: string; + twenty?: string; + }; + wallet: { + background?: string; + backgroundTwo?: string; + surfaceOne: string; + surfaceTwo: string; + surfaceThree: string; + surfaceFour: string; + surfaceFive: string; + divider?: string; + textPrimary?: string; + textSecondary?: string; + active?: string; + inactive?: string; + }; + }; +} + +export interface ChainConfig extends ChainSettings { + chainName: string; + title: string; + extra: { + profile: boolean; + graphqlWs: boolean; + votingPowerExponent?: number; + }; + basePath: string; + previewImage?: string; + themes: { + default: string; + themeList: Array<'dark' | 'light' | 'deuteranopia' | 'tritanopia'>; + dark: PaletteSettings; + light: PaletteSettings; + }; + keplr: string | undefined; + provider: { + primaryTokenUnit: string; + tokenunits: { + [token: string]: { + display: string; + exponent: number; + }; + }; + }; +} diff --git a/apps/web-neutron/src/components/avatar_name/index.tsx b/apps/web-neutron/src/components/avatar_name/index.tsx new file mode 100644 index 0000000000..491231c2b0 --- /dev/null +++ b/apps/web-neutron/src/components/avatar_name/index.tsx @@ -0,0 +1,15 @@ +import { FC } from 'react'; +import { AvatarNameProps } from '@/components/avatar_name/types'; +import AvatarNameBase from 'ui/src/components/avatar_name'; + +const AvatarName: FC = ({ displayAddress, ...props }) => { + const noLink = ['delegationRow', 'unbondingRow', 'redelegationRow'].includes( + props.location as string + ); + + const adx = displayAddress || props.address; + + return ; +}; + +export default AvatarName; diff --git a/apps/web-neutron/src/components/avatar_name/types.ts b/apps/web-neutron/src/components/avatar_name/types.ts new file mode 100644 index 0000000000..abda93e42b --- /dev/null +++ b/apps/web-neutron/src/components/avatar_name/types.ts @@ -0,0 +1,5 @@ +import { AvatarNameProps as AvatarNamePropsBase } from 'ui/src/components/avatar_name/types'; + +export type AvatarNameProps = AvatarNamePropsBase & { + displayAddress?: string; +}; diff --git a/apps/web-neutron/src/components/nav/components/menu_items/utils.tsx b/apps/web-neutron/src/components/nav/components/menu_items/utils.tsx new file mode 100644 index 0000000000..b716b0da3a --- /dev/null +++ b/apps/web-neutron/src/components/nav/components/menu_items/utils.tsx @@ -0,0 +1,41 @@ +import BlockIcon from 'shared-utils/assets/icon-block.svg'; +import HomeIcon from 'shared-utils/assets/icon-home.svg'; +import ParamIcon from 'shared-utils/assets/icon-param.svg'; +import TransactionIcon from 'shared-utils/assets/icon-transaction.svg'; +import UserIcon from 'shared-utils/assets/icon-user.svg'; +import { BLOCKS, HOME, PARAMS, TRANSACTIONS, VALIDATORS } from '@/utils/go_to_page'; + +export const getMenuItems = () => { + const iconProps = { + width: 24, + height: 24, + }; + + return [ + { + key: 'overview', + url: HOME, + icon: , + }, + { + key: 'blocks', + url: BLOCKS, + icon: , + }, + { + key: 'validators', + url: VALIDATORS, + icon: , + }, + { + key: 'transactions', + url: TRANSACTIONS, + icon: , + }, + { + key: 'params', + url: PARAMS, + icon: , + }, + ]; +}; diff --git a/apps/web-neutron/src/graphql/general/block_details.graphql b/apps/web-neutron/src/graphql/general/block_details.graphql new file mode 100644 index 0000000000..0e1788a0e8 --- /dev/null +++ b/apps/web-neutron/src/graphql/general/block_details.graphql @@ -0,0 +1,34 @@ +query BlockDetails($height: bigint, $signatureHeight: bigint) { + transaction(where: {height: {_eq: $height}}) { + height + hash + messages + success + logs + } + block(limit: 1, where: {height: {_eq: $height}}) { + height + hash + timestamp + txs: num_txs + validator { + validatorInfo: validator_signing_infos { + operatorAddress: validator_address + } + } + } + preCommitsAggregate: pre_commit_aggregate(where: {height: {_eq: $signatureHeight}}) { + aggregate { + sum { + votingPower: voting_power + } + } + } + preCommits: pre_commit(where: {height: {_eq: $signatureHeight}}) { + validator { + validatorInfo: validator_signing_infos { + operatorAddress: validator_address + } + } + } +} diff --git a/apps/web-neutron/src/graphql/general/block_height.graphql b/apps/web-neutron/src/graphql/general/block_height.graphql new file mode 100644 index 0000000000..9120a53f6f --- /dev/null +++ b/apps/web-neutron/src/graphql/general/block_height.graphql @@ -0,0 +1,5 @@ +subscription LatestBlockHeightListener($offset: Int = 0) { + height: block(order_by: {height: desc}, limit: 1, offset: $offset) { + height + } +} diff --git a/apps/web-neutron/src/graphql/general/block_time.graphql b/apps/web-neutron/src/graphql/general/block_time.graphql new file mode 100644 index 0000000000..8c9b3bbacb --- /dev/null +++ b/apps/web-neutron/src/graphql/general/block_time.graphql @@ -0,0 +1,11 @@ +query AverageBlockTime { + averageBlockTime: average_block_time_per_hour(limit: 1, order_by: {height: desc}) { + averageTime: average_time + } +} + +query LatestBlockTimestamp($offset: Int = 0) { + block: block(order_by: {height: desc}, limit: 1, offset: $offset) { + timestamp + } +} diff --git a/apps/web-neutron/src/graphql/general/blocks.graphql b/apps/web-neutron/src/graphql/general/blocks.graphql new file mode 100644 index 0000000000..2cdc38fc2f --- /dev/null +++ b/apps/web-neutron/src/graphql/general/blocks.graphql @@ -0,0 +1,42 @@ +subscription BlocksListener($limit: Int = 7, $offset: Int = 0) { + blocks: block(limit: $limit, offset: $offset, order_by: {height: desc}) { + height + txs: num_txs + hash + timestamp + ccv_validator { + consumer_operator_address + } + validator { + validatorInfo: validator_signing_infos { + operatorAddress: validator_address + ccv_validator_signing_info { + providerOperatorAddress: provider_operator_address + } + } + } + } +} + + +query Blocks($limit: Int = 7, $offset: Int = 0) { + blocks: block(limit: $limit, offset: $offset, order_by: {height: desc}) { + height + txs: num_txs + hash + timestamp + ccv_validator { + consumer_operator_address + validator { + validatorInfo: validator_info { + operatorAddress: operator_address + self_delegate_address + } + validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { + moniker + identity + } + } + } + } +} diff --git a/apps/web-neutron/src/graphql/general/chain_id.graphql b/apps/web-neutron/src/graphql/general/chain_id.graphql new file mode 100644 index 0000000000..c11d7e10bc --- /dev/null +++ b/apps/web-neutron/src/graphql/general/chain_id.graphql @@ -0,0 +1,6 @@ +query ChainId { + genesis(limit: 1, order_by: {time: desc}) { + chainId: chain_id + time + } +} diff --git a/apps/web-neutron/src/graphql/general/market_data.graphql b/apps/web-neutron/src/graphql/general/market_data.graphql new file mode 100644 index 0000000000..7912cf8a81 --- /dev/null +++ b/apps/web-neutron/src/graphql/general/market_data.graphql @@ -0,0 +1,9 @@ +query MarketData ($denom: String) { + tokenPrice: token_price(where: {unit_name: {_eq: $denom}}) { + marketCap: market_cap + price + } + supply { + coins + } +} diff --git a/apps/web-neutron/src/graphql/general/messages_by_address.graphql b/apps/web-neutron/src/graphql/general/messages_by_address.graphql new file mode 100644 index 0000000000..1eba15606a --- /dev/null +++ b/apps/web-neutron/src/graphql/general/messages_by_address.graphql @@ -0,0 +1,15 @@ +query GetMessagesByAddress($address: _text, $limit: bigint = 50, $offset: bigint = 0 $types: _text = "{}") { + messagesByAddress: messages_by_address(args: {addresses: $address, types: $types, limit: $limit, offset: $offset}) { + transaction { + height + hash + success + messages + logs + block { + height + timestamp + } + } + } +} diff --git a/apps/web-neutron/src/graphql/general/token_price.graphql b/apps/web-neutron/src/graphql/general/token_price.graphql new file mode 100644 index 0000000000..3ed50b2348 --- /dev/null +++ b/apps/web-neutron/src/graphql/general/token_price.graphql @@ -0,0 +1,15 @@ +subscription TokenPriceListener($denom: String) { + tokenPrice: token_price(where: {unit_name: {_eq: $denom}}) { + price + timestamp + marketCap: market_cap + unitName: unit_name + } +} + +query TokenPriceHistory($denom: String, $limit: Int = 10) { + tokenPrice: token_price_history(where: {unit_name: {_eq: $denom}}, limit: $limit, order_by: {timestamp: desc}) { + price + timestamp + } +} diff --git a/apps/web-neutron/src/graphql/general/tokenomics.graphql b/apps/web-neutron/src/graphql/general/tokenomics.graphql new file mode 100644 index 0000000000..711d93b1f0 --- /dev/null +++ b/apps/web-neutron/src/graphql/general/tokenomics.graphql @@ -0,0 +1,5 @@ +query Tokenomics{ + supply: supply(order_by: {height: desc}, limit: 1) { + coins + } +} diff --git a/apps/web-neutron/src/graphql/general/transaction_details.graphql b/apps/web-neutron/src/graphql/general/transaction_details.graphql new file mode 100644 index 0000000000..ace8e8135e --- /dev/null +++ b/apps/web-neutron/src/graphql/general/transaction_details.graphql @@ -0,0 +1,17 @@ +query TransactionDetails($hash: String) { + transaction(where: {hash: {_eq: $hash}}, limit: 1) { + hash: hash + height: height + block: block { + timestamp: timestamp + } + fee: fee + gasUsed: gas_used + gasWanted: gas_wanted + success: success + memo: memo + messages: messages + logs + rawLog: raw_log + } +} diff --git a/apps/web-neutron/src/graphql/general/transactions.graphql b/apps/web-neutron/src/graphql/general/transactions.graphql new file mode 100644 index 0000000000..9fbc89fd74 --- /dev/null +++ b/apps/web-neutron/src/graphql/general/transactions.graphql @@ -0,0 +1,25 @@ +subscription TransactionsListener($limit: Int = 7, $offset: Int = 0) { + transactions: transaction(limit: $limit, offset: $offset, order_by: {height: desc}) { + height + hash + success + block { + timestamp + } + messages + logs + } +} + +query Transactions($limit: Int = 7, $offset: Int = 0) { + transactions: transaction(limit: $limit, offset: $offset, order_by: {height: desc}) { + height + hash + success + block { + timestamp + } + messages + logs + } +} diff --git a/apps/web-neutron/src/graphql/general/validators.graphql b/apps/web-neutron/src/graphql/general/validators.graphql new file mode 100644 index 0000000000..1ad76405b3 --- /dev/null +++ b/apps/web-neutron/src/graphql/general/validators.graphql @@ -0,0 +1,80 @@ +query Validators { + ccv_validator { + consumer_operator_address + validator { + validatorStatuses: validator_statuses(order_by: {height: desc}, limit: 1) { + status + jailed + height + } + validatorSigningInfos: validator_signing_infos( + order_by: {height: desc} + limit: 1 + ) { + missedBlocksCounter: missed_blocks_counter + tombstoned + } + validatorInfo: validator_info { + operatorAddress: operator_address + selfDelegateAddress: self_delegate_address + } + validatorVotingPowers: validator_voting_powers( + offset: 0 + limit: 1 + order_by: {height: desc} + ) { + votingPower: voting_power + } + validatorCommissions: validator_commissions(order_by: {height: desc}, limit: 1) { + commission + } + validatorSigningInfos: validator_signing_infos( + order_by: {height: desc} + limit: 1 + ) { + missedBlocksCounter: missed_blocks_counter + } + } + } + bdjuno_provider { + slashingParams: slashing_params(order_by: {height: desc}, limit: 1) { + params + } + } +} + +query ProviderCustomValidator($providerAddress: String) { + ccv_validator(where: {provider_operator_address: {_eq: $providerAddress}}) { + consumer_operator_address + ccv_validator_info { + operator_address + validator { + validatorDescriptions: validator_descriptions { + moniker + avatar_url + validator_address + website + details + } + } + } + } +} + +query ConsumerCustomValidator($consumerAddress: String) { + ccv_validator(where: {consumer_operator_address: {_eq: $consumerAddress}}) { + consumer_operator_address + ccv_validator_info { + operator_address + validator { + validatorDescriptions: validator_descriptions { + moniker + avatar_url + validator_address + website + details + } + } + } + } +} diff --git a/apps/web-neutron/src/graphql/provider/account_details_documents.ts b/apps/web-neutron/src/graphql/provider/account_details_documents.ts new file mode 100644 index 0000000000..937d16bffb --- /dev/null +++ b/apps/web-neutron/src/graphql/provider/account_details_documents.ts @@ -0,0 +1,123 @@ +export const AccountCommissionDocument = /* GraphQL */ ` + query AccountCommission($validatorAddress: String!) { + bdjuno_provider { + commission: action_validator_commission_amount(address: $validatorAddress) { + coins + } + } + } +`; + +export const AccountWithdrawalAddressDocument = /* GraphQL */ ` + query AccountWithdrawalAddress($address: String!) { + bdjuno_provider { + withdrawalAddress: action_delegator_withdraw_address(address: $address) { + address + } + } + } +`; + +export const AccountBalancesDocument = /* GraphQL */ ` + query AccountBalances($address: String!) { + bdjuno_provider { + accountBalances: action_account_balance(address: $address) { + coins + } + } + } +`; + +export const AccountDelegationBalanceDocument = /* GraphQL */ ` + query AccountDelegationBalance($address: String!) { + bdjuno_provider { + delegationBalance: action_delegation_total(address: $address) { + coins + } + } + } +`; + +export const AccountUnbondingBalanceDocument = /* GraphQL */ ` + query AccountUnbondingBalance($address: String!) { + bdjuno_provider { + unbondingBalance: action_unbonding_delegation_total(address: $address) { + coins + } + } + } +`; + +export const AccountDelegationRewardsDocument = /* GraphQL */ ` + query AccountDelegationRewards($address: String!) { + bdjuno_provider { + delegationRewards: action_delegation_reward(address: $address) { + validatorAddress: validator_address + coins + } + } + } +`; + +export const AccountDelegationsDocument = /* GraphQL */ ` + query AccountDelegations( + $address: String! + $offset: Int = 0 + $limit: Int = 10 + $pagination: Boolean! = true + ) { + bdjuno_provider { + delegations: action_delegation( + address: $address + limit: $limit + offset: $offset + count_total: $pagination + ) { + delegations + pagination + } + } + } +`; + +export const AccountRedelegationsDocument = /* GraphQL */ ` + query AccountRedelegations( + $address: String! + $offset: Int = 0 + $limit: Int = 10 + $pagination: Boolean! = true + ) { + bdjuno_provider { + redelegations: action_redelegation( + address: $address + limit: $limit + offset: $offset + count_total: $pagination + ) { + redelegations + pagination + } + } + } +`; + +export const AccountUndelegationsDocument = /* GraphQL */ ` + query AccountUndelegations( + $address: String! + $offset: Int = 0 + $limit: Int = 10 + $pagination: Boolean! = true + ) { + bdjuno_provider { + undelegations: action_unbonding_delegation( + address: $address + limit: $limit + offset: $offset + count_total: $pagination + ) { + undelegations: unbonding_delegations + pagination + } + } + } +`; diff --git a/apps/web-neutron/src/graphql/provider/active_validator_count.ts b/apps/web-neutron/src/graphql/provider/active_validator_count.ts new file mode 100644 index 0000000000..dedd7c48f1 --- /dev/null +++ b/apps/web-neutron/src/graphql/provider/active_validator_count.ts @@ -0,0 +1,22 @@ +export const ActiveValidatorCountDocument = /* GraphQL */ ` + query ActiveValidatorCount{ + bdjuno_provider { + activeTotal: validator_status_aggregate(where: {status: {_eq: 3}}) { + aggregate { + count + } + } + inactiveTotal: validator_status_aggregate(where: {status: {_neq: 3}}) { + aggregate { + count + } + } + total: validator_status_aggregate { + aggregate { + count + } + } + } + } +`; + diff --git a/apps/web-neutron/src/graphql/provider/online_voting_power.ts b/apps/web-neutron/src/graphql/provider/online_voting_power.ts new file mode 100644 index 0000000000..c675dd8505 --- /dev/null +++ b/apps/web-neutron/src/graphql/provider/online_voting_power.ts @@ -0,0 +1,24 @@ +export const OnlineVotingPowerDocument = /* GraphQL */ ` + query OnlineVotingPower{ + bdjuno_provider { + activeTotal: validator_status_aggregate(where: {status: {_eq: 3}}) { + aggregate { + count + } + } + validatorVotingPowerAggregate: validator_voting_power_aggregate(where: {validator: {validator_statuses: {status: {_eq: 3}}}}) { + aggregate { + sum { + votingPower: voting_power + } + } + } + stakingPool: staking_pool(order_by: {height: desc}, limit: 1) { + bonded: bonded_tokens + } + stakingParams: staking_params(limit: 1) { + params + } + } + } +`; diff --git a/apps/web-neutron/src/graphql/provider/params.ts b/apps/web-neutron/src/graphql/provider/params.ts new file mode 100644 index 0000000000..f96bb63b23 --- /dev/null +++ b/apps/web-neutron/src/graphql/provider/params.ts @@ -0,0 +1,33 @@ +export const OnlineVotingPowerDocument = /* GraphQL */ ` +query Params { + slashingParams: slashing_params(limit: 1, order_by: {height: desc}) { + params + } + wasmParams: wasm_params(limit: 1, order_by: {height: desc}) { + instantiate_default_permission + code_upload_access + } + ccv_consumer_params { + params + } + bdjuno_provider { + distribution_params { + params + } + mint_params { + params + } + gov_params { + deposit_params + height + one_row_id + tally_params + voting_params + } + staking_params { + params + } + } +} +`; + diff --git a/apps/web-neutron/src/graphql/provider/validator_details.ts b/apps/web-neutron/src/graphql/provider/validator_details.ts new file mode 100644 index 0000000000..c56a0d0e05 --- /dev/null +++ b/apps/web-neutron/src/graphql/provider/validator_details.ts @@ -0,0 +1,137 @@ +export const LastHundredBlocksDocument = /* GraphQL */ ` + subscription LastHundredBlocks($address: String) { + block(offset: 1, order_by: { height: desc }, limit: 100) { + height + ccv_validator { + validator { + validatorInfo: validator_info { + operatorAddress: operator_address + } + } + } + transactions { + hash + } + precommits: pre_commits(where: { validator_address: { _eq: $address } }) { + validatorAddress: validator_address + } + } + } +`; + +export const ValidatorLastSeenListenerDocument = /* GraphQL */ ` + subscription ValidatorLastSeenListener($address: String) { + preCommit: pre_commit( + limit: 1 + where: { validator_address: { _eq: $address } } + order_by: { height: desc } + ) { + height + timestamp + } + } +`; + +export const ValidatorDetailsDocument = /* GraphQL */ ` + query ValidatorDetails($address: String) { + ccv_validator(where: { consumer_operator_address: { _eq: $address } }) { + consumer_operator_address + consumer_self_delegate_address + ccv_validator_info { + validator { + validatorDescriptions: validator_descriptions(order_by: { height: desc }, limit: 1) { + details + website + } + validatorStatuses: validator_statuses(order_by: { height: desc }, limit: 1) { + status + jailed + height + } + validatorSigningInfos: validator_signing_infos(order_by: { height: desc }, limit: 1) { + missedBlocksCounter: missed_blocks_counter + tombstoned + } + validatorInfo: validator_info { + operatorAddress: operator_address + selfDelegateAddress: self_delegate_address + maxRate: max_rate + } + validatorCommissions: validator_commissions(order_by: { height: desc }, limit: 1) { + commission + } + validatorVotingPowers: validator_voting_powers( + offset: 0 + limit: 1 + order_by: { height: desc } + ) { + height + votingPower: voting_power + } + } + } + } + bdjuno_provider { + stakingPool: staking_pool(order_by: { height: desc }, limit: 1, offset: 0) { + height + bonded: bonded_tokens + } + slashingParams: slashing_params(order_by: { height: desc }, limit: 1) { + params + } + } + } +`; + +export const ValidatorConsensusAddressesListDocument = /* GraphQL */ ` + query ValidatorConsensusAddressesList($address: String!) { + ccv_validator(where: { consumer_consensus_address: { _eq: $address } }) { + consumer_consensus_address + consumer_operator_address + consumer_self_delegate_address + provider_consensus_address + provider_operator_address + provider_self_delegate_address + validator { + validator_commissions { + commission + validator_address + } + validator_descriptions { + moniker + avatar_url + website + details + } + validator_info { + self_delegate_address + } + } + } + } +`; + +export const ValidatorProviderOperatorAddressesListDocument = /* GraphQL */ ` + query ValidatorProviderOperatorAddressesList($address: String!) { + ccv_validator(where: { provider_operator_address: { _eq: $address } }) { + consumer_consensus_address + consumer_operator_address + consumer_self_delegate_address + provider_consensus_address + provider_operator_address + provider_self_delegate_address + validator { + validator_commissions { + commission + validator_address + } + validator_descriptions { + moniker + } + validator_info { + self_delegate_address + } + } + } + } +`; diff --git a/apps/web-neutron/src/graphql/provider/validator_details_documents.ts b/apps/web-neutron/src/graphql/provider/validator_details_documents.ts new file mode 100644 index 0000000000..1c62125866 --- /dev/null +++ b/apps/web-neutron/src/graphql/provider/validator_details_documents.ts @@ -0,0 +1,62 @@ +export const ValidatorDelegationsDocument = /* GraphQL */ ` + query ValidatorDelegations( + $validatorAddress: String! + $offset: Int = 0 + $limit: Int = 10 + $pagination: Boolean! = true + ) { + bdjuno_provider { + delegations: action_validator_delegations( + address: $validatorAddress + limit: $limit + offset: $offset + count_total: $pagination + ) { + delegations + pagination + } + } + } +`; + +export const ValidatorRedelegationsDocument = /* GraphQL */ ` + query ValidatorRedelegations( + $validatorAddress: String! + $offset: Int = 0 + $limit: Int = 10 + $pagination: Boolean! = true + ) { + bdjuno_provider { + redelegations: action_validator_redelegations_from( + address: $validatorAddress + limit: $limit + offset: $offset + count_total: $pagination + ) { + redelegations + pagination + } + } + } +`; + +export const ValidatorUndelegationsDocument = /* GraphQL */ ` + query ValidatorUndelegations( + $validatorAddress: String! + $offset: Int = 0 + $limit: Int = 10 + $pagination: Boolean! = true + ) { + bdjuno_provider { + undelegations: action_validator_unbonding_delegations( + address: $validatorAddress + limit: $limit + offset: $offset + count_total: $pagination + ) { + undelegations: unbonding_delegations + pagination + } + } + } +`; diff --git a/apps/web-neutron/src/graphql/provider/validators_address_list.ts b/apps/web-neutron/src/graphql/provider/validators_address_list.ts new file mode 100644 index 0000000000..302b658a38 --- /dev/null +++ b/apps/web-neutron/src/graphql/provider/validators_address_list.ts @@ -0,0 +1,48 @@ +export const ValidatorsAddressListDocument = /* GraphQL */ ` + query ValidatorsAddressList { + ccv_validator { + validator { + validatorInfo: validator_info { + operatorAddress: operator_address + selfDelegateAddress: self_delegate_address + consensusAddress: consensus_address + } + validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { + moniker + identity + avatarUrl: avatar_url + } + } + } +} +`; + +export const ValidatorAddressesDocument = /* GraphQL */ ` +query ValidatorAddresses { + ccv_validator( + where: {consumer_consensus_address: {_is_null: false}, provider_consensus_address: {_is_null: false}} + ) { + consumer_self_delegate_address + consumer_consensus_address + provider_self_delegate_address + provider_operator_address + validator { + validatorInfo: validator_info { + operatorAddress: operator_address + selfDelegateAddress: self_delegate_address + consensusAddress: consensus_address + account { + address + } + } + validatorDescriptions: validator_descriptions( + limit: 1 + order_by: {height: desc} + ) { + moniker + avatarUrl: avatar_url + } + } + } +} +`; diff --git a/apps/web-neutron/src/graphql/types/general_types.ts b/apps/web-neutron/src/graphql/types/general_types.ts new file mode 100644 index 0000000000..735b43c849 --- /dev/null +++ b/apps/web-neutron/src/graphql/types/general_types.ts @@ -0,0 +1,20323 @@ +import { gql } from '@apollo/client'; +import * as Apollo from '@apollo/client'; +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +const defaultOptions = {} as const; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: string; + String: string; + Boolean: boolean; + Int: number; + Float: number; + ActionCoin: any; + _coin: any; + _text: any; + access_config_scalar: any; + bdjuno_provider_ActionCoin: any; + bdjuno_provider_ActionDelegation: any; + bdjuno_provider_ActionPagination: any; + bdjuno_provider_ActionRedelegation: any; + bdjuno_provider_ActionUnbondingDelegation: any; + bdjuno_provider__coin: any; + bdjuno_provider__dec_coin: any; + bdjuno_provider__text: any; + bdjuno_provider_bigint: any; + bdjuno_provider_jsonb: any; + bdjuno_provider_numeric: any; + bdjuno_provider_smallint: any; + bdjuno_provider_timestamp: any; + bdjuno_provider_timestamptz: any; + bigint: any; + bytea: any; + jsonb: any; + numeric: any; + smallint: any; + timestamp: any; + timestamptz: any; +}; + +export type ActionBalance = { + __typename?: 'ActionBalance'; + coins?: Maybe>>; +}; + +/** Boolean expression to compare columns of type "Boolean". All fields are combined with logical 'AND'. */ +export type Boolean_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "Int". All fields are combined with logical 'AND'. */ +export type Int_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. */ +export type String_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + /** does the column match the given case-insensitive pattern */ + _ilike?: InputMaybe; + _in?: InputMaybe>; + /** does the column match the given POSIX regular expression, case insensitive */ + _iregex?: InputMaybe; + _is_null?: InputMaybe; + /** does the column match the given pattern */ + _like?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + /** does the column NOT match the given case-insensitive pattern */ + _nilike?: InputMaybe; + _nin?: InputMaybe>; + /** does the column NOT match the given POSIX regular expression, case insensitive */ + _niregex?: InputMaybe; + /** does the column NOT match the given pattern */ + _nlike?: InputMaybe; + /** does the column NOT match the given POSIX regular expression, case sensitive */ + _nregex?: InputMaybe; + /** does the column NOT match the given SQL regular expression */ + _nsimilar?: InputMaybe; + /** does the column match the given POSIX regular expression, case sensitive */ + _regex?: InputMaybe; + /** does the column match the given SQL regular expression */ + _similar?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "_coin". All fields are combined with logical 'AND'. */ +export type _Coin_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "_text". All fields are combined with logical 'AND'. */ +export type _Text_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "access_config_scalar". All fields are combined with logical 'AND'. */ +export type Access_Config_Scalar_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "account" */ +export type Account = { + __typename?: 'account'; + address: Scalars['String']; + /** An array relationship */ + feeGrantAllowancesByGranterAddress: Array; + /** An array relationship */ + fee_grant_allowances: Array; + /** An object relationship */ + vesting_account?: Maybe; + /** An array relationship */ + vesting_accounts: Array; + /** An array relationship */ + wasm_contracts: Array; + /** An aggregate relationship */ + wasm_contracts_aggregate: Wasm_Contract_Aggregate; +}; + + +/** columns and relationships of "account" */ +export type AccountFeeGrantAllowancesByGranterAddressArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountFee_Grant_AllowancesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountVesting_AccountsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountWasm_ContractsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountWasm_Contracts_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "account". All fields are combined with a logical 'AND'. */ +export type Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + address?: InputMaybe; + feeGrantAllowancesByGranterAddress?: InputMaybe; + fee_grant_allowances?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts?: InputMaybe; + wasm_contracts?: InputMaybe; + wasm_contracts_aggregate?: InputMaybe; +}; + +/** Ordering options when selecting data from "account". */ +export type Account_Order_By = { + address?: InputMaybe; + feeGrantAllowancesByGranterAddress_aggregate?: InputMaybe; + fee_grant_allowances_aggregate?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts_aggregate?: InputMaybe; + wasm_contracts_aggregate?: InputMaybe; +}; + +/** select columns of table "account" */ +export enum Account_Select_Column { + /** column name */ + Address = 'address' +} + +/** Streaming cursor of the table "account" */ +export type Account_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Account_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Account_Stream_Cursor_Value_Input = { + address?: InputMaybe; +}; + +/** columns and relationships of "average_block_time_from_genesis" */ +export type Average_Block_Time_From_Genesis = { + __typename?: 'average_block_time_from_genesis'; + average_time: Scalars['numeric']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "average_block_time_from_genesis". All fields are combined with a logical 'AND'. */ +export type Average_Block_Time_From_Genesis_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "average_block_time_from_genesis". */ +export type Average_Block_Time_From_Genesis_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "average_block_time_from_genesis" */ +export enum Average_Block_Time_From_Genesis_Select_Column { + /** column name */ + AverageTime = 'average_time', + /** column name */ + Height = 'height' +} + +/** Streaming cursor of the table "average_block_time_from_genesis" */ +export type Average_Block_Time_From_Genesis_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Average_Block_Time_From_Genesis_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Average_Block_Time_From_Genesis_Stream_Cursor_Value_Input = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "average_block_time_per_day" */ +export type Average_Block_Time_Per_Day = { + __typename?: 'average_block_time_per_day'; + average_time: Scalars['numeric']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "average_block_time_per_day". All fields are combined with a logical 'AND'. */ +export type Average_Block_Time_Per_Day_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "average_block_time_per_day". */ +export type Average_Block_Time_Per_Day_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "average_block_time_per_day" */ +export enum Average_Block_Time_Per_Day_Select_Column { + /** column name */ + AverageTime = 'average_time', + /** column name */ + Height = 'height' +} + +/** Streaming cursor of the table "average_block_time_per_day" */ +export type Average_Block_Time_Per_Day_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Average_Block_Time_Per_Day_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Average_Block_Time_Per_Day_Stream_Cursor_Value_Input = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "average_block_time_per_hour" */ +export type Average_Block_Time_Per_Hour = { + __typename?: 'average_block_time_per_hour'; + average_time: Scalars['numeric']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "average_block_time_per_hour". All fields are combined with a logical 'AND'. */ +export type Average_Block_Time_Per_Hour_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "average_block_time_per_hour". */ +export type Average_Block_Time_Per_Hour_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "average_block_time_per_hour" */ +export enum Average_Block_Time_Per_Hour_Select_Column { + /** column name */ + AverageTime = 'average_time', + /** column name */ + Height = 'height' +} + +/** Streaming cursor of the table "average_block_time_per_hour" */ +export type Average_Block_Time_Per_Hour_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Average_Block_Time_Per_Hour_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Average_Block_Time_Per_Hour_Stream_Cursor_Value_Input = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "average_block_time_per_minute" */ +export type Average_Block_Time_Per_Minute = { + __typename?: 'average_block_time_per_minute'; + average_time: Scalars['numeric']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "average_block_time_per_minute". All fields are combined with a logical 'AND'. */ +export type Average_Block_Time_Per_Minute_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "average_block_time_per_minute". */ +export type Average_Block_Time_Per_Minute_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "average_block_time_per_minute" */ +export enum Average_Block_Time_Per_Minute_Select_Column { + /** column name */ + AverageTime = 'average_time', + /** column name */ + Height = 'height' +} + +/** Streaming cursor of the table "average_block_time_per_minute" */ +export type Average_Block_Time_Per_Minute_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Average_Block_Time_Per_Minute_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Average_Block_Time_Per_Minute_Stream_Cursor_Value_Input = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_ActionAddress = { + __typename?: 'bdjuno_provider_ActionAddress'; + address: Scalars['String']; +}; + +export type Bdjuno_Provider_ActionBalance = { + __typename?: 'bdjuno_provider_ActionBalance'; + coins?: Maybe>>; +}; + +export type Bdjuno_Provider_ActionDelegationResponse = { + __typename?: 'bdjuno_provider_ActionDelegationResponse'; + delegations?: Maybe>>; + pagination?: Maybe; +}; + +export type Bdjuno_Provider_ActionDelegationReward = { + __typename?: 'bdjuno_provider_ActionDelegationReward'; + coins?: Maybe>>; + validator_address: Scalars['String']; +}; + +export type Bdjuno_Provider_ActionRedelegationResponse = { + __typename?: 'bdjuno_provider_ActionRedelegationResponse'; + pagination?: Maybe; + redelegations?: Maybe>>; +}; + +export type Bdjuno_Provider_ActionUnbondingDelegationResponse = { + __typename?: 'bdjuno_provider_ActionUnbondingDelegationResponse'; + pagination?: Maybe; + unbonding_delegations?: Maybe>>; +}; + +export type Bdjuno_Provider_ActionValidatorCommissionAmount = { + __typename?: 'bdjuno_provider_ActionValidatorCommissionAmount'; + coins?: Maybe>>; +}; + +export type Bdjuno_Provider_Boolean_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Int_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_String_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _ilike?: InputMaybe; + _in?: InputMaybe>; + _iregex?: InputMaybe; + _is_null?: InputMaybe; + _like?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nilike?: InputMaybe; + _nin?: InputMaybe>; + _niregex?: InputMaybe; + _nlike?: InputMaybe; + _nregex?: InputMaybe; + _nsimilar?: InputMaybe; + _regex?: InputMaybe; + _similar?: InputMaybe; +}; + +export type Bdjuno_Provider__Coin_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider__Dec_Coin_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider__Text_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Account = { + __typename?: 'bdjuno_provider_account'; + address: Scalars['String']; + feeGrantAllowancesByGranterAddress: Array; + feeGrantAllowancesByGranterAddress_aggregate: Bdjuno_Provider_Fee_Grant_Allowance_Aggregate; + fee_grant_allowances: Array; + fee_grant_allowances_aggregate: Bdjuno_Provider_Fee_Grant_Allowance_Aggregate; + proposal_deposits: Array; + proposal_deposits_aggregate: Bdjuno_Provider_Proposal_Deposit_Aggregate; + proposal_votes: Array; + proposal_votes_aggregate: Bdjuno_Provider_Proposal_Vote_Aggregate; + proposals: Array; + proposals_aggregate: Bdjuno_Provider_Proposal_Aggregate; + validator_infos: Array; + validator_infos_aggregate: Bdjuno_Provider_Validator_Info_Aggregate; + vesting_account?: Maybe; + vesting_accounts: Array; + vesting_accounts_aggregate: Bdjuno_Provider_Vesting_Account_Aggregate; +}; + + +export type Bdjuno_Provider_AccountFeeGrantAllowancesByGranterAddressArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountFeeGrantAllowancesByGranterAddress_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountFee_Grant_AllowancesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountFee_Grant_Allowances_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountProposal_Deposits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountProposal_Votes_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountProposalsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountProposals_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountValidator_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountValidator_Infos_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountVesting_AccountsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountVesting_Accounts_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Account_Aggregate = { + __typename?: 'bdjuno_provider_account_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Account_Aggregate_Fields = { + __typename?: 'bdjuno_provider_account_aggregate_fields'; + count: Scalars['Int']; + max?: Maybe; + min?: Maybe; +}; + + +export type Bdjuno_Provider_Account_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + address?: InputMaybe; + feeGrantAllowancesByGranterAddress?: InputMaybe; + fee_grant_allowances?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposals?: InputMaybe; + validator_infos?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts?: InputMaybe; +}; + +export type Bdjuno_Provider_Account_Max_Fields = { + __typename?: 'bdjuno_provider_account_max_fields'; + address?: Maybe; +}; + +export type Bdjuno_Provider_Account_Min_Fields = { + __typename?: 'bdjuno_provider_account_min_fields'; + address?: Maybe; +}; + +export type Bdjuno_Provider_Account_Order_By = { + address?: InputMaybe; + feeGrantAllowancesByGranterAddress_aggregate?: InputMaybe; + fee_grant_allowances_aggregate?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposals_aggregate?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts_aggregate?: InputMaybe; +}; + +export enum Bdjuno_Provider_Account_Select_Column { + Address = 'address' +} + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis'; + average_time: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Aggregate = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Aggregate_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_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; +}; + + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Avg_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_avg_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Max_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_max_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Min_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_min_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Average_Block_Time_From_Genesis_Select_Column { + AverageTime = 'average_time', + Height = 'height' +} + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Stddev_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_stddev_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_stddev_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_stddev_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Sum_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_sum_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_var_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_var_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Variance_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_variance_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day = { + __typename?: 'bdjuno_provider_average_block_time_per_day'; + average_time: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Aggregate = { + __typename?: 'bdjuno_provider_average_block_time_per_day_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Aggregate_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_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; +}; + + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Avg_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_avg_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Max_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_max_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Min_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_min_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Average_Block_Time_Per_Day_Select_Column { + AverageTime = 'average_time', + Height = 'height' +} + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Stddev_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_stddev_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_stddev_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_stddev_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Sum_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_sum_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_var_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_var_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Variance_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_variance_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour = { + __typename?: 'bdjuno_provider_average_block_time_per_hour'; + average_time: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Aggregate = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Aggregate_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_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; +}; + + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Avg_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_avg_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Max_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_max_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Min_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_min_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Average_Block_Time_Per_Hour_Select_Column { + AverageTime = 'average_time', + Height = 'height' +} + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Stddev_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_stddev_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_stddev_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_stddev_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Sum_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_sum_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_var_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_var_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Variance_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_variance_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute = { + __typename?: 'bdjuno_provider_average_block_time_per_minute'; + average_time: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Aggregate = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Aggregate_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_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; +}; + + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Avg_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_avg_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Max_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_max_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Min_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_min_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Average_Block_Time_Per_Minute_Select_Column { + AverageTime = 'average_time', + Height = 'height' +} + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Stddev_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_stddev_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_stddev_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_stddev_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Sum_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_sum_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_var_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_var_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Variance_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_variance_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Bigint_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Block = { + __typename?: 'bdjuno_provider_block'; + hash: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + num_txs?: Maybe; + pre_commits: Array; + pre_commits_aggregate: Bdjuno_Provider_Pre_Commit_Aggregate; + proposal_deposits: Array; + proposal_deposits_aggregate: Bdjuno_Provider_Proposal_Deposit_Aggregate; + proposal_votes: Array; + proposal_votes_aggregate: Bdjuno_Provider_Proposal_Vote_Aggregate; + proposer_address?: Maybe; + timestamp: Scalars['bdjuno_provider_timestamp']; + total_gas?: Maybe; + transactions: Array; + transactions_aggregate: Bdjuno_Provider_Transaction_Aggregate; + validator?: Maybe; + validator_voting_powers: Array; + validator_voting_powers_aggregate: Bdjuno_Provider_Validator_Voting_Power_Aggregate; +}; + + +export type Bdjuno_Provider_BlockPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockProposal_Deposits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockProposal_Votes_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockTransactionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockTransactions_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Aggregate = { + __typename?: 'bdjuno_provider_block_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Block_Aggregate_Fields = { + __typename?: 'bdjuno_provider_block_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; +}; + + +export type Bdjuno_Provider_Block_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Avg_Fields = { + __typename?: 'bdjuno_provider_block_avg_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Avg_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Max_Fields = { + __typename?: 'bdjuno_provider_block_max_fields'; + hash?: Maybe; + height?: Maybe; + num_txs?: Maybe; + proposer_address?: Maybe; + timestamp?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Max_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Min_Fields = { + __typename?: 'bdjuno_provider_block_min_fields'; + hash?: Maybe; + height?: Maybe; + num_txs?: Maybe; + proposer_address?: Maybe; + timestamp?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Min_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions_aggregate?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +export enum Bdjuno_Provider_Block_Select_Column { + Hash = 'hash', + Height = 'height', + NumTxs = 'num_txs', + ProposerAddress = 'proposer_address', + Timestamp = 'timestamp', + TotalGas = 'total_gas' +} + +export type Bdjuno_Provider_Block_Stddev_Fields = { + __typename?: 'bdjuno_provider_block_stddev_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Stddev_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_block_stddev_pop_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Stddev_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_block_stddev_samp_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Stddev_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Sum_Fields = { + __typename?: 'bdjuno_provider_block_sum_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Sum_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_block_var_pop_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Var_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_block_var_samp_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Var_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Variance_Fields = { + __typename?: 'bdjuno_provider_block_variance_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Variance_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Community_Pool = { + __typename?: 'bdjuno_provider_community_pool'; + coins: Scalars['bdjuno_provider__dec_coin']; + height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Community_Pool_Aggregate = { + __typename?: 'bdjuno_provider_community_pool_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Community_Pool_Aggregate_Fields = { + __typename?: 'bdjuno_provider_community_pool_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; +}; + + +export type Bdjuno_Provider_Community_Pool_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Community_Pool_Avg_Fields = { + __typename?: 'bdjuno_provider_community_pool_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + coins?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Community_Pool_Max_Fields = { + __typename?: 'bdjuno_provider_community_pool_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Min_Fields = { + __typename?: 'bdjuno_provider_community_pool_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Order_By = { + coins?: InputMaybe; + height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Community_Pool_Select_Column { + Coins = 'coins', + Height = 'height' +} + +export type Bdjuno_Provider_Community_Pool_Stddev_Fields = { + __typename?: 'bdjuno_provider_community_pool_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_community_pool_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_community_pool_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Sum_Fields = { + __typename?: 'bdjuno_provider_community_pool_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_community_pool_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_community_pool_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Variance_Fields = { + __typename?: 'bdjuno_provider_community_pool_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params = { + __typename?: 'bdjuno_provider_distribution_params'; + height: Scalars['bdjuno_provider_bigint']; + one_row_id: Scalars['Boolean']; + params: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_Distribution_ParamsParamsArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Aggregate = { + __typename?: 'bdjuno_provider_distribution_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Distribution_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_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; +}; + + +export type Bdjuno_Provider_Distribution_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_distribution_params_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Max_Fields = { + __typename?: 'bdjuno_provider_distribution_params_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Min_Fields = { + __typename?: 'bdjuno_provider_distribution_params_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export enum Bdjuno_Provider_Distribution_Params_Select_Column { + Height = 'height', + OneRowId = 'one_row_id', + Params = 'params' +} + +export type Bdjuno_Provider_Distribution_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_distribution_params_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_distribution_params_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_distribution_params_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_distribution_params_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_distribution_params_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_distribution_params_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_distribution_params_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence = { + __typename?: 'bdjuno_provider_double_sign_evidence'; + doubleSignVoteByVoteAId: Bdjuno_Provider_Double_Sign_Vote; + double_sign_vote: Bdjuno_Provider_Double_Sign_Vote; + height: Scalars['bdjuno_provider_bigint']; + vote_a_id: Scalars['bdjuno_provider_bigint']; + vote_b_id: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Aggregate = { + __typename?: 'bdjuno_provider_double_sign_evidence_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Aggregate_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_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; +}; + + +export type Bdjuno_Provider_Double_Sign_Evidence_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Avg_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_avg_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Avg_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Max_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_max_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Max_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Min_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_min_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Min_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Order_By = { + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export enum Bdjuno_Provider_Double_Sign_Evidence_Select_Column { + Height = 'height', + VoteAId = 'vote_a_id', + VoteBId = 'vote_b_id' +} + +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_stddev_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_stddev_pop_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_stddev_samp_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Sum_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_sum_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Sum_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_var_pop_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Var_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_var_samp_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Var_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Variance_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_variance_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Variance_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote = { + __typename?: 'bdjuno_provider_double_sign_vote'; + block_id: Scalars['String']; + doubleSignEvidencesByVoteBId: Array; + doubleSignEvidencesByVoteBId_aggregate: Bdjuno_Provider_Double_Sign_Evidence_Aggregate; + double_sign_evidences: Array; + double_sign_evidences_aggregate: Bdjuno_Provider_Double_Sign_Evidence_Aggregate; + height: Scalars['bdjuno_provider_bigint']; + id: Scalars['Int']; + round: Scalars['Int']; + signature: Scalars['String']; + type: Scalars['bdjuno_provider_smallint']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + validator_index: Scalars['Int']; +}; + + +export type Bdjuno_Provider_Double_Sign_VoteDoubleSignEvidencesByVoteBIdArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Double_Sign_VoteDoubleSignEvidencesByVoteBId_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Double_Sign_VoteDouble_Sign_EvidencesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Double_Sign_VoteDouble_Sign_Evidences_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Aggregate = { + __typename?: 'bdjuno_provider_double_sign_vote_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Aggregate_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_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; +}; + + +export type Bdjuno_Provider_Double_Sign_Vote_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Avg_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_avg_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Avg_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId?: InputMaybe; + double_sign_evidences?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Max_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_max_fields'; + block_id?: Maybe; + height?: Maybe; + id?: Maybe; + round?: Maybe; + signature?: Maybe; + type?: Maybe; + validator_address?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Max_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Min_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_min_fields'; + block_id?: Maybe; + height?: Maybe; + id?: Maybe; + round?: Maybe; + signature?: Maybe; + type?: Maybe; + validator_address?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Min_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Order_By = { + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId_aggregate?: InputMaybe; + double_sign_evidences_aggregate?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +export enum Bdjuno_Provider_Double_Sign_Vote_Select_Column { + BlockId = 'block_id', + Height = 'height', + Id = 'id', + Round = 'round', + Signature = 'signature', + Type = 'type', + ValidatorAddress = 'validator_address', + ValidatorIndex = 'validator_index' +} + +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_stddev_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_stddev_pop_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_stddev_samp_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Sum_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_sum_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Sum_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_var_pop_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_var_samp_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Variance_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_variance_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Variance_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance = { + __typename?: 'bdjuno_provider_fee_grant_allowance'; + allowance: Scalars['bdjuno_provider_jsonb']; + grantee: Bdjuno_Provider_Account; + grantee_address: Scalars['String']; + granter: Bdjuno_Provider_Account; + granter_address: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + id: Scalars['Int']; +}; + + +export type Bdjuno_Provider_Fee_Grant_AllowanceAllowanceArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Aggregate = { + __typename?: 'bdjuno_provider_fee_grant_allowance_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Aggregate_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_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; +}; + + +export type Bdjuno_Provider_Fee_Grant_Allowance_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Avg_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_avg_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Avg_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + allowance?: InputMaybe; + grantee?: InputMaybe; + grantee_address?: InputMaybe; + granter?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Max_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_max_fields'; + grantee_address?: Maybe; + granter_address?: Maybe; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Max_Order_By = { + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Min_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_min_fields'; + grantee_address?: Maybe; + granter_address?: Maybe; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Min_Order_By = { + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Order_By = { + allowance?: InputMaybe; + grantee?: InputMaybe; + grantee_address?: InputMaybe; + granter?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; +}; + +export enum Bdjuno_Provider_Fee_Grant_Allowance_Select_Column { + Allowance = 'allowance', + GranteeAddress = 'grantee_address', + GranterAddress = 'granter_address', + Height = 'height', + Id = 'id' +} + +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_stddev_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_stddev_pop_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_stddev_samp_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Sum_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_sum_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Sum_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_var_pop_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Var_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_var_samp_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Var_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Variance_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_variance_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Variance_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Genesis = { + __typename?: 'bdjuno_provider_genesis'; + chain_id: Scalars['String']; + initial_height: Scalars['bdjuno_provider_bigint']; + time: Scalars['bdjuno_provider_timestamp']; +}; + +export type Bdjuno_Provider_Genesis_Aggregate = { + __typename?: 'bdjuno_provider_genesis_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Genesis_Aggregate_Fields = { + __typename?: 'bdjuno_provider_genesis_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; +}; + + +export type Bdjuno_Provider_Genesis_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Genesis_Avg_Fields = { + __typename?: 'bdjuno_provider_genesis_avg_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +export type Bdjuno_Provider_Genesis_Max_Fields = { + __typename?: 'bdjuno_provider_genesis_max_fields'; + chain_id?: Maybe; + initial_height?: Maybe; + time?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Min_Fields = { + __typename?: 'bdjuno_provider_genesis_min_fields'; + chain_id?: Maybe; + initial_height?: Maybe; + time?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Order_By = { + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +export enum Bdjuno_Provider_Genesis_Select_Column { + ChainId = 'chain_id', + InitialHeight = 'initial_height', + Time = 'time' +} + +export type Bdjuno_Provider_Genesis_Stddev_Fields = { + __typename?: 'bdjuno_provider_genesis_stddev_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_genesis_stddev_pop_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_genesis_stddev_samp_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Sum_Fields = { + __typename?: 'bdjuno_provider_genesis_sum_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_genesis_var_pop_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_genesis_var_samp_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Variance_Fields = { + __typename?: 'bdjuno_provider_genesis_variance_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params = { + __typename?: 'bdjuno_provider_gov_params'; + deposit_params: Scalars['bdjuno_provider_jsonb']; + height: Scalars['bdjuno_provider_bigint']; + one_row_id: Scalars['Boolean']; + tally_params: Scalars['bdjuno_provider_jsonb']; + voting_params: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_Gov_ParamsDeposit_ParamsArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_Gov_ParamsTally_ParamsArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_Gov_ParamsVoting_ParamsArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Gov_Params_Aggregate = { + __typename?: 'bdjuno_provider_gov_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Gov_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_gov_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; +}; + + +export type Bdjuno_Provider_Gov_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Gov_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_gov_params_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + deposit_params?: InputMaybe; + height?: InputMaybe; + one_row_id?: InputMaybe; + tally_params?: InputMaybe; + voting_params?: InputMaybe; +}; + +export type Bdjuno_Provider_Gov_Params_Max_Fields = { + __typename?: 'bdjuno_provider_gov_params_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Min_Fields = { + __typename?: 'bdjuno_provider_gov_params_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Order_By = { + deposit_params?: InputMaybe; + height?: InputMaybe; + one_row_id?: InputMaybe; + tally_params?: InputMaybe; + voting_params?: InputMaybe; +}; + +export enum Bdjuno_Provider_Gov_Params_Select_Column { + DepositParams = 'deposit_params', + Height = 'height', + OneRowId = 'one_row_id', + TallyParams = 'tally_params', + VotingParams = 'voting_params' +} + +export type Bdjuno_Provider_Gov_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_gov_params_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_gov_params_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_gov_params_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_gov_params_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_gov_params_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_gov_params_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_gov_params_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Inflation = { + __typename?: 'bdjuno_provider_inflation'; + height: Scalars['bdjuno_provider_bigint']; + value: Scalars['bdjuno_provider_numeric']; +}; + +export type Bdjuno_Provider_Inflation_Aggregate = { + __typename?: 'bdjuno_provider_inflation_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Inflation_Aggregate_Fields = { + __typename?: 'bdjuno_provider_inflation_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; +}; + + +export type Bdjuno_Provider_Inflation_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Inflation_Avg_Fields = { + __typename?: 'bdjuno_provider_inflation_avg_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + value?: InputMaybe; +}; + +export type Bdjuno_Provider_Inflation_Max_Fields = { + __typename?: 'bdjuno_provider_inflation_max_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Min_Fields = { + __typename?: 'bdjuno_provider_inflation_min_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Order_By = { + height?: InputMaybe; + value?: InputMaybe; +}; + +export enum Bdjuno_Provider_Inflation_Select_Column { + Height = 'height', + Value = 'value' +} + +export type Bdjuno_Provider_Inflation_Stddev_Fields = { + __typename?: 'bdjuno_provider_inflation_stddev_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_inflation_stddev_pop_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_inflation_stddev_samp_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Sum_Fields = { + __typename?: 'bdjuno_provider_inflation_sum_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_inflation_var_pop_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_inflation_var_samp_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Variance_Fields = { + __typename?: 'bdjuno_provider_inflation_variance_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Jsonb_Comparison_Exp = { + _contained_in?: InputMaybe; + _contains?: InputMaybe; + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _has_key?: InputMaybe; + _has_keys_all?: InputMaybe>; + _has_keys_any?: InputMaybe>; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Message = { + __typename?: 'bdjuno_provider_message'; + height: Scalars['bdjuno_provider_bigint']; + index: Scalars['bdjuno_provider_bigint']; + involved_accounts_addresses: Scalars['bdjuno_provider__text']; + partition_id: Scalars['bdjuno_provider_bigint']; + transaction?: Maybe; + transactionByPartitionIdTransactionHash?: Maybe; + transaction_hash: Scalars['String']; + type: Scalars['String']; + value: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_MessageValueArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Aggregate = { + __typename?: 'bdjuno_provider_message_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Message_Aggregate_Fields = { + __typename?: 'bdjuno_provider_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; +}; + + +export type Bdjuno_Provider_Message_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Avg_Fields = { + __typename?: 'bdjuno_provider_message_avg_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Avg_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe; + partition_id?: InputMaybe; + transaction?: InputMaybe; + transactionByPartitionIdTransactionHash?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Max_Fields = { + __typename?: 'bdjuno_provider_message_max_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; + transaction_hash?: Maybe; + type?: Maybe; +}; + +export type Bdjuno_Provider_Message_Max_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Min_Fields = { + __typename?: 'bdjuno_provider_message_min_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; + transaction_hash?: Maybe; + type?: Maybe; +}; + +export type Bdjuno_Provider_Message_Min_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe; + partition_id?: InputMaybe; + transaction?: InputMaybe; + transactionByPartitionIdTransactionHash?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +export enum Bdjuno_Provider_Message_Select_Column { + Height = 'height', + Index = 'index', + InvolvedAccountsAddresses = 'involved_accounts_addresses', + PartitionId = 'partition_id', + TransactionHash = 'transaction_hash', + Type = 'type', + Value = 'value' +} + +export type Bdjuno_Provider_Message_Stddev_Fields = { + __typename?: 'bdjuno_provider_message_stddev_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Stddev_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_message_stddev_pop_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Stddev_Pop_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_message_stddev_samp_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Stddev_Samp_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Sum_Fields = { + __typename?: 'bdjuno_provider_message_sum_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Sum_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_message_var_pop_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Var_Pop_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_message_var_samp_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Var_Samp_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Variance_Fields = { + __typename?: 'bdjuno_provider_message_variance_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Variance_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Messages_By_Address_Args = { + addresses?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; + types?: InputMaybe; +}; + +export type Bdjuno_Provider_Mint_Params = { + __typename?: 'bdjuno_provider_mint_params'; + height: Scalars['bdjuno_provider_bigint']; + one_row_id: Scalars['Boolean']; + params: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_Mint_ParamsParamsArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Mint_Params_Aggregate = { + __typename?: 'bdjuno_provider_mint_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Mint_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_mint_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; +}; + + +export type Bdjuno_Provider_Mint_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Mint_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_mint_params_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export type Bdjuno_Provider_Mint_Params_Max_Fields = { + __typename?: 'bdjuno_provider_mint_params_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Min_Fields = { + __typename?: 'bdjuno_provider_mint_params_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export enum Bdjuno_Provider_Mint_Params_Select_Column { + Height = 'height', + OneRowId = 'one_row_id', + Params = 'params' +} + +export type Bdjuno_Provider_Mint_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_mint_params_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_mint_params_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_mint_params_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_mint_params_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_mint_params_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_mint_params_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_mint_params_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Modules = { + __typename?: 'bdjuno_provider_modules'; + module_name: Scalars['String']; +}; + +export type Bdjuno_Provider_Modules_Aggregate = { + __typename?: 'bdjuno_provider_modules_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Modules_Aggregate_Fields = { + __typename?: 'bdjuno_provider_modules_aggregate_fields'; + count: Scalars['Int']; + max?: Maybe; + min?: Maybe; +}; + + +export type Bdjuno_Provider_Modules_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Modules_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + module_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Modules_Max_Fields = { + __typename?: 'bdjuno_provider_modules_max_fields'; + module_name?: Maybe; +}; + +export type Bdjuno_Provider_Modules_Min_Fields = { + __typename?: 'bdjuno_provider_modules_min_fields'; + module_name?: Maybe; +}; + +export type Bdjuno_Provider_Modules_Order_By = { + module_name?: InputMaybe; +}; + +export enum Bdjuno_Provider_Modules_Select_Column { + ModuleName = 'module_name' +} + +export type Bdjuno_Provider_Numeric_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export enum Bdjuno_Provider_Order_By { + Asc = 'asc', + AscNullsFirst = 'asc_nulls_first', + AscNullsLast = 'asc_nulls_last', + Desc = 'desc', + DescNullsFirst = 'desc_nulls_first', + DescNullsLast = 'desc_nulls_last' +} + +export type Bdjuno_Provider_Pre_Commit = { + __typename?: 'bdjuno_provider_pre_commit'; + height: Scalars['bdjuno_provider_bigint']; + proposer_priority: Scalars['bdjuno_provider_bigint']; + timestamp: Scalars['bdjuno_provider_timestamp']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Pre_Commit_Aggregate = { + __typename?: 'bdjuno_provider_pre_commit_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Pre_Commit_Aggregate_Fields = { + __typename?: 'bdjuno_provider_pre_commit_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; +}; + + +export type Bdjuno_Provider_Pre_Commit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Avg_Fields = { + __typename?: 'bdjuno_provider_pre_commit_avg_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Avg_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Max_Fields = { + __typename?: 'bdjuno_provider_pre_commit_max_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Max_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Min_Fields = { + __typename?: 'bdjuno_provider_pre_commit_min_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Min_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export enum Bdjuno_Provider_Pre_Commit_Select_Column { + Height = 'height', + ProposerPriority = 'proposer_priority', + Timestamp = 'timestamp', + ValidatorAddress = 'validator_address', + VotingPower = 'voting_power' +} + +export type Bdjuno_Provider_Pre_Commit_Stddev_Fields = { + __typename?: 'bdjuno_provider_pre_commit_stddev_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Stddev_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_pre_commit_stddev_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_pre_commit_stddev_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Sum_Fields = { + __typename?: 'bdjuno_provider_pre_commit_sum_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Sum_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_pre_commit_var_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Var_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_pre_commit_var_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Var_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Variance_Fields = { + __typename?: 'bdjuno_provider_pre_commit_variance_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Variance_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal = { + __typename?: 'bdjuno_provider_proposal'; + content: Scalars['bdjuno_provider_jsonb']; + deposit_end_time?: Maybe; + description: Scalars['String']; + id: Scalars['Int']; + proposal_deposits: Array; + proposal_deposits_aggregate: Bdjuno_Provider_Proposal_Deposit_Aggregate; + proposal_route: Scalars['String']; + proposal_tally_result?: Maybe; + proposal_tally_results: Array; + proposal_tally_results_aggregate: Bdjuno_Provider_Proposal_Tally_Result_Aggregate; + proposal_type: Scalars['String']; + proposal_votes: Array; + proposal_votes_aggregate: Bdjuno_Provider_Proposal_Vote_Aggregate; + proposer: Bdjuno_Provider_Account; + proposer_address: Scalars['String']; + staking_pool_snapshot?: Maybe; + status?: Maybe; + submit_time: Scalars['bdjuno_provider_timestamp']; + title: Scalars['String']; + validator_status_snapshots: Array; + validator_status_snapshots_aggregate: Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + + +export type Bdjuno_Provider_ProposalContentArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalProposal_Deposits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalProposal_Tally_ResultsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalProposal_Tally_Results_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalProposal_Votes_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalValidator_Status_SnapshotsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalValidator_Status_Snapshots_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Aggregate = { + __typename?: 'bdjuno_provider_proposal_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_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; +}; + + +export type Bdjuno_Provider_Proposal_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_avg_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Avg_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit = { + __typename?: 'bdjuno_provider_proposal_deposit'; + amount?: Maybe; + block?: Maybe; + depositor?: Maybe; + depositor_address?: Maybe; + height: Scalars['bdjuno_provider_bigint']; + proposal: Bdjuno_Provider_Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Aggregate = { + __typename?: 'bdjuno_provider_proposal_deposit_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_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; +}; + + +export type Bdjuno_Provider_Proposal_Deposit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_max_fields'; + depositor_address?: Maybe; + height?: Maybe; + proposal_id?: Maybe; + timestamp?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Max_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_min_fields'; + depositor_address?: Maybe; + height?: Maybe; + proposal_id?: Maybe; + timestamp?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Min_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Order_By = { + amount?: InputMaybe; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Deposit_Select_Column { + Amount = 'amount', + DepositorAddress = 'depositor_address', + Height = 'height', + ProposalId = 'proposal_id', + Timestamp = 'timestamp' +} + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_max_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Max_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_min_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Min_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Order_By = { + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results_aggregate?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots_aggregate?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Select_Column { + Content = 'content', + DepositEndTime = 'deposit_end_time', + Description = 'description', + Id = 'id', + ProposalRoute = 'proposal_route', + ProposalType = 'proposal_type', + ProposerAddress = 'proposer_address', + Status = 'status', + SubmitTime = 'submit_time', + Title = 'title', + VotingEndTime = 'voting_end_time', + VotingStartTime = 'voting_start_time' +} + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot'; + bonded_tokens: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + not_bonded_tokens: Scalars['String']; + proposal: Bdjuno_Provider_Proposal; + proposal_id: Scalars['Int']; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Aggregate = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_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; +}; + + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_max_fields'; + bonded_tokens?: Maybe; + height?: Maybe; + not_bonded_tokens?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_min_fields'; + bonded_tokens?: Maybe; + height?: Maybe; + not_bonded_tokens?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Order_By = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Select_Column { + BondedTokens = 'bonded_tokens', + Height = 'height', + NotBondedTokens = 'not_bonded_tokens', + ProposalId = 'proposal_id' +} + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_stddev_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_stddev_pop_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Pop_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_stddev_samp_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Samp_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_sum_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Sum_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result = { + __typename?: 'bdjuno_provider_proposal_tally_result'; + abstain: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + no: Scalars['String']; + no_with_veto: Scalars['String']; + proposal: Bdjuno_Provider_Proposal; + proposal_id: Scalars['Int']; + yes: Scalars['String']; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Aggregate = { + __typename?: 'bdjuno_provider_proposal_tally_result_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_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; +}; + + +export type Bdjuno_Provider_Proposal_Tally_Result_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_max_fields'; + abstain?: Maybe; + height?: Maybe; + no?: Maybe; + no_with_veto?: Maybe; + proposal_id?: Maybe; + yes?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Max_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_min_fields'; + abstain?: Maybe; + height?: Maybe; + no?: Maybe; + no_with_veto?: Maybe; + proposal_id?: Maybe; + yes?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Min_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Tally_Result_Select_Column { + Abstain = 'abstain', + Height = 'height', + No = 'no', + NoWithVeto = 'no_with_veto', + ProposalId = 'proposal_id', + Yes = 'yes' +} + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot'; + height: Scalars['bdjuno_provider_bigint']; + id: Scalars['Int']; + jailed: Scalars['Boolean']; + proposal?: Maybe; + proposal_id?: Maybe; + status: Scalars['Int']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_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; +}; + + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_avg_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Avg_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + id?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_max_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Max_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_min_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Min_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Select_Column { + Height = 'height', + Id = 'id', + Jailed = 'jailed', + ProposalId = 'proposal_id', + Status = 'status', + ValidatorAddress = 'validator_address', + VotingPower = 'voting_power' +} + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_stddev_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_stddev_pop_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_stddev_samp_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_sum_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Sum_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_var_pop_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Var_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_var_samp_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Var_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_variance_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Variance_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_var_pop_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Var_Pop_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_var_samp_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Var_Samp_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_variance_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Variance_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote = { + __typename?: 'bdjuno_provider_proposal_vote'; + account: Bdjuno_Provider_Account; + block: Bdjuno_Provider_Block; + height: Scalars['bdjuno_provider_bigint']; + option: Scalars['String']; + proposal: Bdjuno_Provider_Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; + voter_address: Scalars['String']; +}; + +export type Bdjuno_Provider_Proposal_Vote_Aggregate = { + __typename?: 'bdjuno_provider_proposal_vote_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Vote_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_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; +}; + + +export type Bdjuno_Provider_Proposal_Vote_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_max_fields'; + height?: Maybe; + option?: Maybe; + proposal_id?: Maybe; + timestamp?: Maybe; + voter_address?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Max_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_min_fields'; + height?: Maybe; + option?: Maybe; + proposal_id?: Maybe; + timestamp?: Maybe; + voter_address?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Min_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Order_By = { + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Vote_Select_Column { + Height = 'height', + Option = 'option', + ProposalId = 'proposal_id', + Timestamp = 'timestamp', + VoterAddress = 'voter_address' +} + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Slashing_Params = { + __typename?: 'bdjuno_provider_slashing_params'; + height: Scalars['bdjuno_provider_bigint']; + one_row_id: Scalars['Boolean']; + params: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_Slashing_ParamsParamsArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Aggregate = { + __typename?: 'bdjuno_provider_slashing_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Slashing_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_slashing_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; +}; + + +export type Bdjuno_Provider_Slashing_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_slashing_params_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Max_Fields = { + __typename?: 'bdjuno_provider_slashing_params_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Min_Fields = { + __typename?: 'bdjuno_provider_slashing_params_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export enum Bdjuno_Provider_Slashing_Params_Select_Column { + Height = 'height', + OneRowId = 'one_row_id', + Params = 'params' +} + +export type Bdjuno_Provider_Slashing_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_slashing_params_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_slashing_params_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_slashing_params_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_slashing_params_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_slashing_params_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_slashing_params_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_slashing_params_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Smallint_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan = { + __typename?: 'bdjuno_provider_software_upgrade_plan'; + height: Scalars['bdjuno_provider_bigint']; + info: Scalars['String']; + plan_name: Scalars['String']; + proposal?: Maybe; + proposal_id?: Maybe; + upgrade_height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Aggregate = { + __typename?: 'bdjuno_provider_software_upgrade_plan_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Aggregate_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_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; +}; + + +export type Bdjuno_Provider_Software_Upgrade_Plan_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Avg_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + info?: InputMaybe; + plan_name?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + upgrade_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Max_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_max_fields'; + height?: Maybe; + info?: Maybe; + plan_name?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Min_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_min_fields'; + height?: Maybe; + info?: Maybe; + plan_name?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Order_By = { + height?: InputMaybe; + info?: InputMaybe; + plan_name?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + upgrade_height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Software_Upgrade_Plan_Select_Column { + Height = 'height', + Info = 'info', + PlanName = 'plan_name', + ProposalId = 'proposal_id', + UpgradeHeight = 'upgrade_height' +} + +export type Bdjuno_Provider_Software_Upgrade_Plan_Stddev_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Sum_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Variance_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params = { + __typename?: 'bdjuno_provider_staking_params'; + height: Scalars['bdjuno_provider_bigint']; + one_row_id: Scalars['Boolean']; + params: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_Staking_ParamsParamsArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Params_Aggregate = { + __typename?: 'bdjuno_provider_staking_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Staking_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_staking_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; +}; + + +export type Bdjuno_Provider_Staking_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_staking_params_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Params_Max_Fields = { + __typename?: 'bdjuno_provider_staking_params_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Min_Fields = { + __typename?: 'bdjuno_provider_staking_params_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export enum Bdjuno_Provider_Staking_Params_Select_Column { + Height = 'height', + OneRowId = 'one_row_id', + Params = 'params' +} + +export type Bdjuno_Provider_Staking_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_staking_params_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_staking_params_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_staking_params_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_staking_params_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_staking_params_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_staking_params_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_staking_params_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool = { + __typename?: 'bdjuno_provider_staking_pool'; + bonded_tokens: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + not_bonded_tokens: Scalars['String']; + staked_not_bonded_tokens?: Maybe; + unbonding_tokens?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Aggregate = { + __typename?: 'bdjuno_provider_staking_pool_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Staking_Pool_Aggregate_Fields = { + __typename?: 'bdjuno_provider_staking_pool_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; +}; + + +export type Bdjuno_Provider_Staking_Pool_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Avg_Fields = { + __typename?: 'bdjuno_provider_staking_pool_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + staked_not_bonded_tokens?: InputMaybe; + unbonding_tokens?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Max_Fields = { + __typename?: 'bdjuno_provider_staking_pool_max_fields'; + bonded_tokens?: Maybe; + height?: Maybe; + not_bonded_tokens?: Maybe; + staked_not_bonded_tokens?: Maybe; + unbonding_tokens?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Min_Fields = { + __typename?: 'bdjuno_provider_staking_pool_min_fields'; + bonded_tokens?: Maybe; + height?: Maybe; + not_bonded_tokens?: Maybe; + staked_not_bonded_tokens?: Maybe; + unbonding_tokens?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Order_By = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + staked_not_bonded_tokens?: InputMaybe; + unbonding_tokens?: InputMaybe; +}; + +export enum Bdjuno_Provider_Staking_Pool_Select_Column { + BondedTokens = 'bonded_tokens', + Height = 'height', + NotBondedTokens = 'not_bonded_tokens', + StakedNotBondedTokens = 'staked_not_bonded_tokens', + UnbondingTokens = 'unbonding_tokens' +} + +export type Bdjuno_Provider_Staking_Pool_Stddev_Fields = { + __typename?: 'bdjuno_provider_staking_pool_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_staking_pool_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_staking_pool_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Sum_Fields = { + __typename?: 'bdjuno_provider_staking_pool_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_staking_pool_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_staking_pool_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Variance_Fields = { + __typename?: 'bdjuno_provider_staking_pool_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply = { + __typename?: 'bdjuno_provider_supply'; + coins: Scalars['bdjuno_provider__coin']; + height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Supply_Aggregate = { + __typename?: 'bdjuno_provider_supply_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Supply_Aggregate_Fields = { + __typename?: 'bdjuno_provider_supply_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; +}; + + +export type Bdjuno_Provider_Supply_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Supply_Avg_Fields = { + __typename?: 'bdjuno_provider_supply_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + coins?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Supply_Max_Fields = { + __typename?: 'bdjuno_provider_supply_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Min_Fields = { + __typename?: 'bdjuno_provider_supply_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Order_By = { + coins?: InputMaybe; + height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Supply_Select_Column { + Coins = 'coins', + Height = 'height' +} + +export type Bdjuno_Provider_Supply_Stddev_Fields = { + __typename?: 'bdjuno_provider_supply_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_supply_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_supply_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Sum_Fields = { + __typename?: 'bdjuno_provider_supply_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_supply_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_supply_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Variance_Fields = { + __typename?: 'bdjuno_provider_supply_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Timestamp_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Timestamptz_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Token = { + __typename?: 'bdjuno_provider_token'; + name: Scalars['String']; + token_units: Array; + token_units_aggregate: Bdjuno_Provider_Token_Unit_Aggregate; +}; + + +export type Bdjuno_Provider_TokenToken_UnitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_TokenToken_Units_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Aggregate = { + __typename?: 'bdjuno_provider_token_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Token_Aggregate_Fields = { + __typename?: 'bdjuno_provider_token_aggregate_fields'; + count: Scalars['Int']; + max?: Maybe; + min?: Maybe; +}; + + +export type Bdjuno_Provider_Token_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + name?: InputMaybe; + token_units?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Max_Fields = { + __typename?: 'bdjuno_provider_token_max_fields'; + name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Min_Fields = { + __typename?: 'bdjuno_provider_token_min_fields'; + name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Order_By = { + name?: InputMaybe; + token_units_aggregate?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price = { + __typename?: 'bdjuno_provider_token_price'; + id: Scalars['Int']; + market_cap: Scalars['bdjuno_provider_bigint']; + price: Scalars['bdjuno_provider_numeric']; + timestamp: Scalars['bdjuno_provider_timestamp']; + token_unit: Bdjuno_Provider_Token_Unit; + unit_name: Scalars['String']; +}; + +export type Bdjuno_Provider_Token_Price_Aggregate = { + __typename?: 'bdjuno_provider_token_price_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Token_Price_Aggregate_Fields = { + __typename?: 'bdjuno_provider_token_price_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; +}; + + +export type Bdjuno_Provider_Token_Price_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Avg_Fields = { + __typename?: 'bdjuno_provider_token_price_avg_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Avg_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History = { + __typename?: 'bdjuno_provider_token_price_history'; + market_cap: Scalars['bdjuno_provider_bigint']; + price: Scalars['bdjuno_provider_numeric']; + timestamp: Scalars['bdjuno_provider_timestamp']; + token_unit: Bdjuno_Provider_Token_Unit; + unit_name: Scalars['String']; +}; + +export type Bdjuno_Provider_Token_Price_History_Aggregate = { + __typename?: 'bdjuno_provider_token_price_history_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Token_Price_History_Aggregate_Fields = { + __typename?: 'bdjuno_provider_token_price_history_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; +}; + + +export type Bdjuno_Provider_Token_Price_History_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Avg_Fields = { + __typename?: 'bdjuno_provider_token_price_history_avg_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Avg_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Max_Fields = { + __typename?: 'bdjuno_provider_token_price_history_max_fields'; + market_cap?: Maybe; + price?: Maybe; + timestamp?: Maybe; + unit_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Max_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Min_Fields = { + __typename?: 'bdjuno_provider_token_price_history_min_fields'; + market_cap?: Maybe; + price?: Maybe; + timestamp?: Maybe; + unit_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Min_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +export enum Bdjuno_Provider_Token_Price_History_Select_Column { + MarketCap = 'market_cap', + Price = 'price', + Timestamp = 'timestamp', + UnitName = 'unit_name' +} + +export type Bdjuno_Provider_Token_Price_History_Stddev_Fields = { + __typename?: 'bdjuno_provider_token_price_history_stddev_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_token_price_history_stddev_pop_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_token_price_history_stddev_samp_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Sum_Fields = { + __typename?: 'bdjuno_provider_token_price_history_sum_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Sum_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_token_price_history_var_pop_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Var_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_token_price_history_var_samp_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Var_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Variance_Fields = { + __typename?: 'bdjuno_provider_token_price_history_variance_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Variance_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Max_Fields = { + __typename?: 'bdjuno_provider_token_price_max_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; + timestamp?: Maybe; + unit_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Max_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Min_Fields = { + __typename?: 'bdjuno_provider_token_price_min_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; + timestamp?: Maybe; + unit_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Min_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +export enum Bdjuno_Provider_Token_Price_Select_Column { + Id = 'id', + MarketCap = 'market_cap', + Price = 'price', + Timestamp = 'timestamp', + UnitName = 'unit_name' +} + +export type Bdjuno_Provider_Token_Price_Stddev_Fields = { + __typename?: 'bdjuno_provider_token_price_stddev_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_token_price_stddev_pop_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Pop_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_token_price_stddev_samp_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Samp_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Sum_Fields = { + __typename?: 'bdjuno_provider_token_price_sum_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Sum_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_token_price_var_pop_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Var_Pop_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_token_price_var_samp_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Var_Samp_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Variance_Fields = { + __typename?: 'bdjuno_provider_token_price_variance_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Variance_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export enum Bdjuno_Provider_Token_Select_Column { + Name = 'name' +} + +export type Bdjuno_Provider_Token_Unit = { + __typename?: 'bdjuno_provider_token_unit'; + aliases?: Maybe; + denom: Scalars['String']; + exponent: Scalars['Int']; + price_id?: Maybe; + token: Bdjuno_Provider_Token; + token_name: Scalars['String']; + token_price?: Maybe; + token_price_histories: Array; + token_price_histories_aggregate: Bdjuno_Provider_Token_Price_History_Aggregate; + token_prices: Array; + token_prices_aggregate: Bdjuno_Provider_Token_Price_Aggregate; +}; + + +export type Bdjuno_Provider_Token_UnitToken_Price_HistoriesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Token_UnitToken_Price_Histories_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Token_UnitToken_PricesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Token_UnitToken_Prices_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Aggregate = { + __typename?: 'bdjuno_provider_token_unit_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Token_Unit_Aggregate_Fields = { + __typename?: 'bdjuno_provider_token_unit_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; +}; + + +export type Bdjuno_Provider_Token_Unit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Avg_Fields = { + __typename?: 'bdjuno_provider_token_unit_avg_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Avg_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + aliases?: InputMaybe; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token?: InputMaybe; + token_name?: InputMaybe; + token_price?: InputMaybe; + token_price_histories?: InputMaybe; + token_prices?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Max_Fields = { + __typename?: 'bdjuno_provider_token_unit_max_fields'; + denom?: Maybe; + exponent?: Maybe; + price_id?: Maybe; + token_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Max_Order_By = { + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Min_Fields = { + __typename?: 'bdjuno_provider_token_unit_min_fields'; + denom?: Maybe; + exponent?: Maybe; + price_id?: Maybe; + token_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Min_Order_By = { + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Order_By = { + aliases?: InputMaybe; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token?: InputMaybe; + token_name?: InputMaybe; + token_price?: InputMaybe; + token_price_histories_aggregate?: InputMaybe; + token_prices_aggregate?: InputMaybe; +}; + +export enum Bdjuno_Provider_Token_Unit_Select_Column { + Aliases = 'aliases', + Denom = 'denom', + Exponent = 'exponent', + PriceId = 'price_id', + TokenName = 'token_name' +} + +export type Bdjuno_Provider_Token_Unit_Stddev_Fields = { + __typename?: 'bdjuno_provider_token_unit_stddev_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_token_unit_stddev_pop_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Pop_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_token_unit_stddev_samp_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Samp_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Sum_Fields = { + __typename?: 'bdjuno_provider_token_unit_sum_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Sum_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_token_unit_var_pop_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Var_Pop_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_token_unit_var_samp_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Var_Samp_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Variance_Fields = { + __typename?: 'bdjuno_provider_token_unit_variance_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Variance_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction = { + __typename?: 'bdjuno_provider_transaction'; + block: Bdjuno_Provider_Block; + fee: Scalars['bdjuno_provider_jsonb']; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + logs?: Maybe; + memo?: Maybe; + messages: Scalars['bdjuno_provider_jsonb']; + messagesByTransactionHashPartitionId: Array; + messagesByTransactionHashPartitionId_aggregate: Bdjuno_Provider_Message_Aggregate; + partition_id: Scalars['bdjuno_provider_bigint']; + raw_log?: Maybe; + signatures: Scalars['bdjuno_provider__text']; + signer_infos: Scalars['bdjuno_provider_jsonb']; + success: Scalars['Boolean']; +}; + + +export type Bdjuno_Provider_TransactionFeeArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionLogsArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionMessagesArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionMessagesByTransactionHashPartitionIdArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionMessagesByTransactionHashPartitionId_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionSigner_InfosArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Aggregate = { + __typename?: 'bdjuno_provider_transaction_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Transaction_Aggregate_Fields = { + __typename?: 'bdjuno_provider_transaction_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; +}; + + +export type Bdjuno_Provider_Transaction_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Avg_Fields = { + __typename?: 'bdjuno_provider_transaction_avg_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Avg_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + messagesByTransactionHashPartitionId?: InputMaybe; + partition_id?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Max_Fields = { + __typename?: 'bdjuno_provider_transaction_max_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash?: Maybe; + height?: Maybe; + memo?: Maybe; + partition_id?: Maybe; + raw_log?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Max_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + partition_id?: InputMaybe; + raw_log?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Min_Fields = { + __typename?: 'bdjuno_provider_transaction_min_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash?: Maybe; + height?: Maybe; + memo?: Maybe; + partition_id?: Maybe; + raw_log?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Min_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + partition_id?: InputMaybe; + raw_log?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Order_By = { + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + messagesByTransactionHashPartitionId_aggregate?: InputMaybe; + partition_id?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +export enum Bdjuno_Provider_Transaction_Select_Column { + Fee = 'fee', + GasUsed = 'gas_used', + GasWanted = 'gas_wanted', + Hash = 'hash', + Height = 'height', + Logs = 'logs', + Memo = 'memo', + Messages = 'messages', + PartitionId = 'partition_id', + RawLog = 'raw_log', + Signatures = 'signatures', + SignerInfos = 'signer_infos', + Success = 'success' +} + +export type Bdjuno_Provider_Transaction_Stddev_Fields = { + __typename?: 'bdjuno_provider_transaction_stddev_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_transaction_stddev_pop_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_transaction_stddev_samp_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Sum_Fields = { + __typename?: 'bdjuno_provider_transaction_sum_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Sum_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_transaction_var_pop_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Var_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_transaction_var_samp_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Var_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Variance_Fields = { + __typename?: 'bdjuno_provider_transaction_variance_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Variance_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator = { + __typename?: 'bdjuno_provider_validator'; + blocks: Array; + blocks_aggregate: Bdjuno_Provider_Block_Aggregate; + consensus_address: Scalars['String']; + consensus_pubkey: Scalars['String']; + double_sign_votes: Array; + double_sign_votes_aggregate: Bdjuno_Provider_Double_Sign_Vote_Aggregate; + pre_commits: Array; + pre_commits_aggregate: Bdjuno_Provider_Pre_Commit_Aggregate; + proposal_validator_status_snapshot?: Maybe; + proposal_validator_status_snapshots: Array; + proposal_validator_status_snapshots_aggregate: Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate; + validator_commissions: Array; + validator_commissions_aggregate: Bdjuno_Provider_Validator_Commission_Aggregate; + validator_descriptions: Array; + validator_descriptions_aggregate: Bdjuno_Provider_Validator_Description_Aggregate; + validator_info?: Maybe; + validator_infos: Array; + validator_infos_aggregate: Bdjuno_Provider_Validator_Info_Aggregate; + validator_signing_infos: Array; + validator_signing_infos_aggregate: Bdjuno_Provider_Validator_Signing_Info_Aggregate; + validator_statuses: Array; + validator_statuses_aggregate: Bdjuno_Provider_Validator_Status_Aggregate; + validator_voting_powers: Array; + validator_voting_powers_aggregate: Bdjuno_Provider_Validator_Voting_Power_Aggregate; +}; + + +export type Bdjuno_Provider_ValidatorBlocksArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorBlocks_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorDouble_Sign_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorDouble_Sign_Votes_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorProposal_Validator_Status_SnapshotsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorProposal_Validator_Status_Snapshots_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_CommissionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Commissions_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_DescriptionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Descriptions_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Infos_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Signing_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Signing_Infos_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_StatusesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Statuses_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Aggregate = { + __typename?: 'bdjuno_provider_validator_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_aggregate_fields'; + count: Scalars['Int']; + max?: Maybe; + min?: Maybe; +}; + + +export type Bdjuno_Provider_Validator_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + blocks?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes?: InputMaybe; + pre_commits?: InputMaybe; + proposal_validator_status_snapshot?: InputMaybe; + proposal_validator_status_snapshots?: InputMaybe; + validator_commissions?: InputMaybe; + validator_descriptions?: InputMaybe; + validator_info?: InputMaybe; + validator_infos?: InputMaybe; + validator_signing_infos?: InputMaybe; + validator_statuses?: InputMaybe; + validator_voting_powers?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission = { + __typename?: 'bdjuno_provider_validator_commission'; + commission: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; + min_self_delegation: Scalars['bdjuno_provider_bigint']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; +}; + +export type Bdjuno_Provider_Validator_Commission_Aggregate = { + __typename?: 'bdjuno_provider_validator_commission_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Commission_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_commission_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; +}; + + +export type Bdjuno_Provider_Validator_Commission_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_commission_avg_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Avg_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Max_Fields = { + __typename?: 'bdjuno_provider_validator_commission_max_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Max_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Min_Fields = { + __typename?: 'bdjuno_provider_validator_commission_min_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Min_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Commission_Select_Column { + Commission = 'commission', + Height = 'height', + MinSelfDelegation = 'min_self_delegation', + ValidatorAddress = 'validator_address' +} + +export type Bdjuno_Provider_Validator_Commission_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_commission_stddev_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_commission_stddev_pop_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Pop_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_commission_stddev_samp_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Samp_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_commission_sum_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Sum_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_commission_var_pop_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Var_Pop_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_commission_var_samp_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Var_Samp_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_commission_variance_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Variance_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description = { + __typename?: 'bdjuno_provider_validator_description'; + avatar_url?: Maybe; + details?: Maybe; + height: Scalars['bdjuno_provider_bigint']; + identity?: Maybe; + moniker?: Maybe; + security_contact?: Maybe; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + website?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Aggregate = { + __typename?: 'bdjuno_provider_validator_description_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Description_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_description_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; +}; + + +export type Bdjuno_Provider_Validator_Description_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_description_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Avg_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Max_Fields = { + __typename?: 'bdjuno_provider_validator_description_max_fields'; + avatar_url?: Maybe; + details?: Maybe; + height?: Maybe; + identity?: Maybe; + moniker?: Maybe; + security_contact?: Maybe; + validator_address?: Maybe; + website?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Max_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Min_Fields = { + __typename?: 'bdjuno_provider_validator_description_min_fields'; + avatar_url?: Maybe; + details?: Maybe; + height?: Maybe; + identity?: Maybe; + moniker?: Maybe; + security_contact?: Maybe; + validator_address?: Maybe; + website?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Min_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Description_Select_Column { + AvatarUrl = 'avatar_url', + Details = 'details', + Height = 'height', + Identity = 'identity', + Moniker = 'moniker', + SecurityContact = 'security_contact', + ValidatorAddress = 'validator_address', + Website = 'website' +} + +export type Bdjuno_Provider_Validator_Description_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_description_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_description_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Pop_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_description_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Samp_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_description_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Sum_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_description_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Var_Pop_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_description_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Var_Samp_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_description_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Variance_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info = { + __typename?: 'bdjuno_provider_validator_info'; + account?: Maybe; + consensus_address: Scalars['String']; + max_change_rate: Scalars['String']; + max_rate: Scalars['String']; + operator_address: Scalars['String']; + self_delegate_address?: Maybe; + validator: Bdjuno_Provider_Validator; +}; + +export type Bdjuno_Provider_Validator_Info_Aggregate = { + __typename?: 'bdjuno_provider_validator_info_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Info_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_info_aggregate_fields'; + count: Scalars['Int']; + max?: Maybe; + min?: Maybe; +}; + + +export type Bdjuno_Provider_Validator_Info_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Aggregate_Order_By = { + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; + validator?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Max_Fields = { + __typename?: 'bdjuno_provider_validator_info_max_fields'; + consensus_address?: Maybe; + max_change_rate?: Maybe; + max_rate?: Maybe; + operator_address?: Maybe; + self_delegate_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Info_Max_Order_By = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Min_Fields = { + __typename?: 'bdjuno_provider_validator_info_min_fields'; + consensus_address?: Maybe; + max_change_rate?: Maybe; + max_rate?: Maybe; + operator_address?: Maybe; + self_delegate_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Info_Min_Order_By = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Order_By = { + account?: InputMaybe; + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; + validator?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Info_Select_Column { + ConsensusAddress = 'consensus_address', + MaxChangeRate = 'max_change_rate', + MaxRate = 'max_rate', + OperatorAddress = 'operator_address', + SelfDelegateAddress = 'self_delegate_address' +} + +export type Bdjuno_Provider_Validator_Max_Fields = { + __typename?: 'bdjuno_provider_validator_max_fields'; + consensus_address?: Maybe; + consensus_pubkey?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Min_Fields = { + __typename?: 'bdjuno_provider_validator_min_fields'; + consensus_address?: Maybe; + consensus_pubkey?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Order_By = { + blocks_aggregate?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes_aggregate?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_validator_status_snapshot?: InputMaybe; + proposal_validator_status_snapshots_aggregate?: InputMaybe; + validator_commissions_aggregate?: InputMaybe; + validator_descriptions_aggregate?: InputMaybe; + validator_info?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + validator_signing_infos_aggregate?: InputMaybe; + validator_statuses_aggregate?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Select_Column { + ConsensusAddress = 'consensus_address', + ConsensusPubkey = 'consensus_pubkey' +} + +export type Bdjuno_Provider_Validator_Signing_Info = { + __typename?: 'bdjuno_provider_validator_signing_info'; + height: Scalars['bdjuno_provider_bigint']; + index_offset: Scalars['bdjuno_provider_bigint']; + jailed_until: Scalars['bdjuno_provider_timestamp']; + missed_blocks_counter: Scalars['bdjuno_provider_bigint']; + start_height: Scalars['bdjuno_provider_bigint']; + tombstoned: Scalars['Boolean']; + validator_address: Scalars['String']; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Aggregate = { + __typename?: 'bdjuno_provider_validator_signing_info_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_signing_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; +}; + + +export type Bdjuno_Provider_Validator_Signing_Info_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_avg_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Avg_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Max_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_max_fields'; + height?: Maybe; + index_offset?: Maybe; + jailed_until?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Max_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Min_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_min_fields'; + height?: Maybe; + index_offset?: Maybe; + jailed_until?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Min_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Signing_Info_Select_Column { + Height = 'height', + IndexOffset = 'index_offset', + JailedUntil = 'jailed_until', + MissedBlocksCounter = 'missed_blocks_counter', + StartHeight = 'start_height', + Tombstoned = 'tombstoned', + ValidatorAddress = 'validator_address' +} + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_stddev_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_stddev_pop_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_stddev_samp_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_sum_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Sum_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_var_pop_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Var_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_var_samp_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Var_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_variance_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Variance_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status = { + __typename?: 'bdjuno_provider_validator_status'; + height: Scalars['bdjuno_provider_bigint']; + jailed: Scalars['Boolean']; + status: Scalars['Int']; + tombstoned: Scalars['Boolean']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; +}; + +export type Bdjuno_Provider_Validator_Status_Aggregate = { + __typename?: 'bdjuno_provider_validator_status_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Status_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_status_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; +}; + + +export type Bdjuno_Provider_Validator_Status_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_status_avg_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Avg_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + tombstoned?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Max_Fields = { + __typename?: 'bdjuno_provider_validator_status_max_fields'; + height?: Maybe; + status?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Max_Order_By = { + height?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Min_Fields = { + __typename?: 'bdjuno_provider_validator_status_min_fields'; + height?: Maybe; + status?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Min_Order_By = { + height?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Order_By = { + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + tombstoned?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Status_Select_Column { + Height = 'height', + Jailed = 'jailed', + Status = 'status', + Tombstoned = 'tombstoned', + ValidatorAddress = 'validator_address' +} + +export type Bdjuno_Provider_Validator_Status_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_status_stddev_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_status_stddev_pop_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Pop_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_status_stddev_samp_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Samp_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_status_sum_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Sum_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_status_var_pop_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Var_Pop_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_status_var_samp_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Var_Samp_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_status_variance_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Variance_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power = { + __typename?: 'bdjuno_provider_validator_voting_power'; + block: Bdjuno_Provider_Block; + height: Scalars['bdjuno_provider_bigint']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Aggregate = { + __typename?: 'bdjuno_provider_validator_voting_power_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_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; +}; + + +export type Bdjuno_Provider_Validator_Voting_Power_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_avg_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Avg_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + height?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Max_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_max_fields'; + height?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Max_Order_By = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Min_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_min_fields'; + height?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Min_Order_By = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Order_By = { + block?: InputMaybe; + height?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Voting_Power_Select_Column { + Height = 'height', + ValidatorAddress = 'validator_address', + VotingPower = 'voting_power' +} + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_stddev_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_stddev_pop_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Pop_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_stddev_samp_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Samp_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_sum_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Sum_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_var_pop_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Var_Pop_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_var_samp_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Var_Samp_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_variance_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Variance_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account = { + __typename?: 'bdjuno_provider_vesting_account'; + account: Bdjuno_Provider_Account; + address: Scalars['String']; + end_time: Scalars['bdjuno_provider_timestamp']; + id: Scalars['Int']; + original_vesting: Scalars['bdjuno_provider__coin']; + start_time?: Maybe; + type: Scalars['String']; + vesting_periods: Array; + vesting_periods_aggregate: Bdjuno_Provider_Vesting_Period_Aggregate; +}; + + +export type Bdjuno_Provider_Vesting_AccountVesting_PeriodsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Vesting_AccountVesting_Periods_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Aggregate = { + __typename?: 'bdjuno_provider_vesting_account_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Vesting_Account_Aggregate_Fields = { + __typename?: 'bdjuno_provider_vesting_account_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; +}; + + +export type Bdjuno_Provider_Vesting_Account_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Avg_Fields = { + __typename?: 'bdjuno_provider_vesting_account_avg_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Avg_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + id?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Max_Fields = { + __typename?: 'bdjuno_provider_vesting_account_max_fields'; + address?: Maybe; + end_time?: Maybe; + id?: Maybe; + start_time?: Maybe; + type?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Max_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + id?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Min_Fields = { + __typename?: 'bdjuno_provider_vesting_account_min_fields'; + address?: Maybe; + end_time?: Maybe; + id?: Maybe; + start_time?: Maybe; + type?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Min_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + id?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Order_By = { + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + id?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods_aggregate?: InputMaybe; +}; + +export enum Bdjuno_Provider_Vesting_Account_Select_Column { + Address = 'address', + EndTime = 'end_time', + Id = 'id', + OriginalVesting = 'original_vesting', + StartTime = 'start_time', + Type = 'type' +} + +export type Bdjuno_Provider_Vesting_Account_Stddev_Fields = { + __typename?: 'bdjuno_provider_vesting_account_stddev_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_vesting_account_stddev_pop_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Pop_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_vesting_account_stddev_samp_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Samp_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Sum_Fields = { + __typename?: 'bdjuno_provider_vesting_account_sum_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Sum_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_vesting_account_var_pop_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Var_Pop_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_vesting_account_var_samp_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Var_Samp_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Variance_Fields = { + __typename?: 'bdjuno_provider_vesting_account_variance_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Variance_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period = { + __typename?: 'bdjuno_provider_vesting_period'; + amount: Scalars['bdjuno_provider__coin']; + length: Scalars['bdjuno_provider_bigint']; + period_order: Scalars['bdjuno_provider_bigint']; + vesting_account: Bdjuno_Provider_Vesting_Account; + vesting_account_id: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Vesting_Period_Aggregate = { + __typename?: 'bdjuno_provider_vesting_period_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Vesting_Period_Aggregate_Fields = { + __typename?: 'bdjuno_provider_vesting_period_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; +}; + + +export type Bdjuno_Provider_Vesting_Period_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Avg_Fields = { + __typename?: 'bdjuno_provider_vesting_period_avg_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Avg_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Max_Fields = { + __typename?: 'bdjuno_provider_vesting_period_max_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Max_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Min_Fields = { + __typename?: 'bdjuno_provider_vesting_period_min_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Min_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Order_By = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export enum Bdjuno_Provider_Vesting_Period_Select_Column { + Amount = 'amount', + Length = 'length', + PeriodOrder = 'period_order', + VestingAccountId = 'vesting_account_id' +} + +export type Bdjuno_Provider_Vesting_Period_Stddev_Fields = { + __typename?: 'bdjuno_provider_vesting_period_stddev_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_vesting_period_stddev_pop_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_vesting_period_stddev_samp_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Sum_Fields = { + __typename?: 'bdjuno_provider_vesting_period_sum_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Sum_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_vesting_period_var_pop_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Var_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_vesting_period_var_samp_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Var_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Variance_Fields = { + __typename?: 'bdjuno_provider_vesting_period_variance_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Variance_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Providerquery_Root = { + __typename?: 'bdjuno_providerquery_root'; + account: Array; + account_aggregate: Bdjuno_Provider_Account_Aggregate; + account_by_pk?: Maybe; + action_account_balance?: Maybe; + action_delegation?: Maybe; + action_delegation_reward?: Maybe>>; + action_delegation_total?: Maybe; + action_delegator_withdraw_address: Bdjuno_Provider_ActionAddress; + action_redelegation?: Maybe; + action_unbonding_delegation?: Maybe; + action_unbonding_delegation_total?: Maybe; + action_validator_commission_amount?: Maybe; + action_validator_delegations?: Maybe; + action_validator_redelegations_from?: Maybe; + action_validator_unbonding_delegations?: Maybe; + average_block_time_from_genesis: Array; + average_block_time_from_genesis_aggregate: Bdjuno_Provider_Average_Block_Time_From_Genesis_Aggregate; + average_block_time_per_day: Array; + average_block_time_per_day_aggregate: Bdjuno_Provider_Average_Block_Time_Per_Day_Aggregate; + average_block_time_per_hour: Array; + average_block_time_per_hour_aggregate: Bdjuno_Provider_Average_Block_Time_Per_Hour_Aggregate; + average_block_time_per_minute: Array; + average_block_time_per_minute_aggregate: Bdjuno_Provider_Average_Block_Time_Per_Minute_Aggregate; + block: Array; + block_aggregate: Bdjuno_Provider_Block_Aggregate; + block_by_pk?: Maybe; + community_pool: Array; + community_pool_aggregate: Bdjuno_Provider_Community_Pool_Aggregate; + distribution_params: Array; + distribution_params_aggregate: Bdjuno_Provider_Distribution_Params_Aggregate; + distribution_params_by_pk?: Maybe; + double_sign_evidence: Array; + double_sign_evidence_aggregate: Bdjuno_Provider_Double_Sign_Evidence_Aggregate; + double_sign_vote: Array; + double_sign_vote_aggregate: Bdjuno_Provider_Double_Sign_Vote_Aggregate; + double_sign_vote_by_pk?: Maybe; + fee_grant_allowance: Array; + fee_grant_allowance_aggregate: Bdjuno_Provider_Fee_Grant_Allowance_Aggregate; + fee_grant_allowance_by_pk?: Maybe; + genesis: Array; + genesis_aggregate: Bdjuno_Provider_Genesis_Aggregate; + gov_params: Array; + gov_params_aggregate: Bdjuno_Provider_Gov_Params_Aggregate; + gov_params_by_pk?: Maybe; + inflation: Array; + inflation_aggregate: Bdjuno_Provider_Inflation_Aggregate; + message: Array; + message_aggregate: Bdjuno_Provider_Message_Aggregate; + messages_by_address: Array; + messages_by_address_aggregate: Bdjuno_Provider_Message_Aggregate; + mint_params: Array; + mint_params_aggregate: Bdjuno_Provider_Mint_Params_Aggregate; + mint_params_by_pk?: Maybe; + modules: Array; + modules_aggregate: Bdjuno_Provider_Modules_Aggregate; + modules_by_pk?: Maybe; + pre_commit: Array; + pre_commit_aggregate: Bdjuno_Provider_Pre_Commit_Aggregate; + proposal: Array; + proposal_aggregate: Bdjuno_Provider_Proposal_Aggregate; + proposal_by_pk?: Maybe; + proposal_deposit: Array; + proposal_deposit_aggregate: Bdjuno_Provider_Proposal_Deposit_Aggregate; + proposal_staking_pool_snapshot: Array; + proposal_staking_pool_snapshot_aggregate: Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Aggregate; + proposal_staking_pool_snapshot_by_pk?: Maybe; + proposal_tally_result: Array; + proposal_tally_result_aggregate: Bdjuno_Provider_Proposal_Tally_Result_Aggregate; + proposal_tally_result_by_pk?: Maybe; + proposal_validator_status_snapshot: Array; + proposal_validator_status_snapshot_aggregate: Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate; + proposal_validator_status_snapshot_by_pk?: Maybe; + proposal_vote: Array; + proposal_vote_aggregate: Bdjuno_Provider_Proposal_Vote_Aggregate; + slashing_params: Array; + slashing_params_aggregate: Bdjuno_Provider_Slashing_Params_Aggregate; + slashing_params_by_pk?: Maybe; + software_upgrade_plan: Array; + software_upgrade_plan_aggregate: Bdjuno_Provider_Software_Upgrade_Plan_Aggregate; + staking_params: Array; + staking_params_aggregate: Bdjuno_Provider_Staking_Params_Aggregate; + staking_params_by_pk?: Maybe; + staking_pool: Array; + staking_pool_aggregate: Bdjuno_Provider_Staking_Pool_Aggregate; + supply: Array; + supply_aggregate: Bdjuno_Provider_Supply_Aggregate; + token: Array; + token_aggregate: Bdjuno_Provider_Token_Aggregate; + token_price: Array; + token_price_aggregate: Bdjuno_Provider_Token_Price_Aggregate; + token_price_by_pk?: Maybe; + token_price_history: Array; + token_price_history_aggregate: Bdjuno_Provider_Token_Price_History_Aggregate; + token_unit: Array; + token_unit_aggregate: Bdjuno_Provider_Token_Unit_Aggregate; + transaction: Array; + transaction_aggregate: Bdjuno_Provider_Transaction_Aggregate; + validator: Array; + validator_aggregate: Bdjuno_Provider_Validator_Aggregate; + validator_by_pk?: Maybe; + validator_commission: Array; + validator_commission_aggregate: Bdjuno_Provider_Validator_Commission_Aggregate; + validator_commission_by_pk?: Maybe; + validator_description: Array; + validator_description_aggregate: Bdjuno_Provider_Validator_Description_Aggregate; + validator_description_by_pk?: Maybe; + validator_info: Array; + validator_info_aggregate: Bdjuno_Provider_Validator_Info_Aggregate; + validator_info_by_pk?: Maybe; + validator_signing_info: Array; + validator_signing_info_aggregate: Bdjuno_Provider_Validator_Signing_Info_Aggregate; + validator_signing_info_by_pk?: Maybe; + validator_status: Array; + validator_status_aggregate: Bdjuno_Provider_Validator_Status_Aggregate; + validator_status_by_pk?: Maybe; + validator_voting_power: Array; + validator_voting_power_aggregate: Bdjuno_Provider_Validator_Voting_Power_Aggregate; + validator_voting_power_by_pk?: Maybe; + vesting_account: Array; + vesting_account_aggregate: Bdjuno_Provider_Vesting_Account_Aggregate; + vesting_account_by_pk?: Maybe; + vesting_period: Array; + vesting_period_aggregate: Bdjuno_Provider_Vesting_Period_Aggregate; +}; + + +export type Bdjuno_Providerquery_RootAccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAccount_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAccount_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootAction_Account_BalanceArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_DelegationArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Delegation_RewardArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Delegation_TotalArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Delegator_Withdraw_AddressArgs = { + address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootAction_RedelegationArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Unbonding_DelegationArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Unbonding_Delegation_TotalArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Validator_Commission_AmountArgs = { + address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootAction_Validator_DelegationsArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Validator_Redelegations_FromArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Validator_Unbonding_DelegationsArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_From_GenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_From_Genesis_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_DayArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_Day_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_HourArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_Hour_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_MinuteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_Minute_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootBlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootBlock_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootBlock_By_PkArgs = { + height: Scalars['bdjuno_provider_bigint']; +}; + + +export type Bdjuno_Providerquery_RootCommunity_PoolArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootCommunity_Pool_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDistribution_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDistribution_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDistribution_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_EvidenceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_Evidence_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_Vote_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_Vote_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootFee_Grant_AllowanceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootFee_Grant_Allowance_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootFee_Grant_Allowance_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootGenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootGenesis_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootGov_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootGov_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootGov_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootInflationArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootInflation_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMessageArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMessage_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMessages_By_AddressArgs = { + args: Bdjuno_Provider_Messages_By_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMessages_By_Address_AggregateArgs = { + args: Bdjuno_Provider_Messages_By_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMint_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMint_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMint_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootModulesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootModules_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootModules_By_PkArgs = { + module_name: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootPre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootPre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposalArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootProposal_DepositArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Deposit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Staking_Pool_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Staking_Pool_Snapshot_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Staking_Pool_Snapshot_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootProposal_Tally_ResultArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Tally_Result_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Tally_Result_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootProposal_Validator_Status_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Validator_Status_Snapshot_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Validator_Status_Snapshot_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootProposal_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Vote_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSlashing_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSlashing_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSlashing_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootSoftware_Upgrade_PlanArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSoftware_Upgrade_Plan_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootStaking_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootStaking_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootStaking_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootStaking_PoolArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootStaking_Pool_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSupplyArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSupply_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootTokenArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_PriceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_Price_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_Price_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootToken_Price_HistoryArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_Price_History_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_UnitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_Unit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootTransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootTransaction_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_CommissionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Commission_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Commission_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_DescriptionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Description_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Description_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Info_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Info_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Signing_Info_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_StatusArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Status_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Status_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_Voting_PowerArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Voting_Power_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Voting_Power_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootVesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootVesting_Account_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootVesting_Account_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootVesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootVesting_Period_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "bigint". All fields are combined with logical 'AND'. */ +export type Bigint_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "block" */ +export type Block = { + __typename?: 'block'; + /** An object relationship */ + ccv_validator?: Maybe; + hash: Scalars['String']; + height: Scalars['bigint']; + num_txs?: Maybe; + /** An array relationship */ + pre_commits: Array; + /** An aggregate relationship */ + pre_commits_aggregate: Pre_Commit_Aggregate; + proposer_address?: Maybe; + timestamp: Scalars['timestamp']; + total_gas?: Maybe; + /** An array relationship */ + transactions: Array; + /** An object relationship */ + validator?: Maybe; +}; + + +/** columns and relationships of "block" */ +export type BlockPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockTransactionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "block" */ +export type Block_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "block" */ +export type Block_Avg_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "block". All fields are combined with a logical 'AND'. */ +export type Block_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + ccv_validator?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions?: InputMaybe; + validator?: InputMaybe; +}; + +/** order by max() on columns of table "block" */ +export type Block_Max_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by min() on columns of table "block" */ +export type Block_Min_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Ordering options when selecting data from "block". */ +export type Block_Order_By = { + ccv_validator?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions_aggregate?: InputMaybe; + validator?: InputMaybe; +}; + +/** select columns of table "block" */ +export enum Block_Select_Column { + /** column name */ + Hash = 'hash', + /** column name */ + Height = 'height', + /** column name */ + NumTxs = 'num_txs', + /** column name */ + ProposerAddress = 'proposer_address', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + TotalGas = 'total_gas' +} + +/** order by stddev() on columns of table "block" */ +export type Block_Stddev_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "block" */ +export type Block_Stddev_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "block" */ +export type Block_Stddev_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Streaming cursor of the table "block" */ +export type Block_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Block_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Block_Stream_Cursor_Value_Input = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by sum() on columns of table "block" */ +export type Block_Sum_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by var_pop() on columns of table "block" */ +export type Block_Var_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by var_samp() on columns of table "block" */ +export type Block_Var_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by variance() on columns of table "block" */ +export type Block_Variance_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "bytea". All fields are combined with logical 'AND'. */ +export type Bytea_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "ccv_consumer_chain" */ +export type Ccv_Consumer_Chain = { + __typename?: 'ccv_consumer_chain'; + chain_id?: Maybe; + height: Scalars['bigint']; + initial_val_set?: Maybe; + provider_channel_id?: Maybe; + provider_client_id: Scalars['String']; + provider_client_state?: Maybe; + provider_consensus_state?: Maybe; +}; + + +/** columns and relationships of "ccv_consumer_chain" */ +export type Ccv_Consumer_ChainInitial_Val_SetArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "ccv_consumer_chain" */ +export type Ccv_Consumer_ChainProvider_Client_StateArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "ccv_consumer_chain" */ +export type Ccv_Consumer_ChainProvider_Consensus_StateArgs = { + path?: InputMaybe; +}; + +/** aggregated selection of "ccv_consumer_chain" */ +export type Ccv_Consumer_Chain_Aggregate = { + __typename?: 'ccv_consumer_chain_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "ccv_consumer_chain" */ +export type Ccv_Consumer_Chain_Aggregate_Fields = { + __typename?: 'ccv_consumer_chain_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 "ccv_consumer_chain" */ +export type Ccv_Consumer_Chain_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Ccv_Consumer_Chain_Avg_Fields = { + __typename?: 'ccv_consumer_chain_avg_fields'; + height?: Maybe; +}; + +/** Boolean expression to filter rows from the table "ccv_consumer_chain". All fields are combined with a logical 'AND'. */ +export type Ccv_Consumer_Chain_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + chain_id?: InputMaybe; + height?: InputMaybe; + initial_val_set?: InputMaybe; + provider_channel_id?: InputMaybe; + provider_client_id?: InputMaybe; + provider_client_state?: InputMaybe; + provider_consensus_state?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Ccv_Consumer_Chain_Max_Fields = { + __typename?: 'ccv_consumer_chain_max_fields'; + chain_id?: Maybe; + height?: Maybe; + provider_channel_id?: Maybe; + provider_client_id?: Maybe; +}; + +/** aggregate min on columns */ +export type Ccv_Consumer_Chain_Min_Fields = { + __typename?: 'ccv_consumer_chain_min_fields'; + chain_id?: Maybe; + height?: Maybe; + provider_channel_id?: Maybe; + provider_client_id?: Maybe; +}; + +/** Ordering options when selecting data from "ccv_consumer_chain". */ +export type Ccv_Consumer_Chain_Order_By = { + chain_id?: InputMaybe; + height?: InputMaybe; + initial_val_set?: InputMaybe; + provider_channel_id?: InputMaybe; + provider_client_id?: InputMaybe; + provider_client_state?: InputMaybe; + provider_consensus_state?: InputMaybe; +}; + +/** select columns of table "ccv_consumer_chain" */ +export enum Ccv_Consumer_Chain_Select_Column { + /** column name */ + ChainId = 'chain_id', + /** column name */ + Height = 'height', + /** column name */ + InitialValSet = 'initial_val_set', + /** column name */ + ProviderChannelId = 'provider_channel_id', + /** column name */ + ProviderClientId = 'provider_client_id', + /** column name */ + ProviderClientState = 'provider_client_state', + /** column name */ + ProviderConsensusState = 'provider_consensus_state' +} + +/** aggregate stddev on columns */ +export type Ccv_Consumer_Chain_Stddev_Fields = { + __typename?: 'ccv_consumer_chain_stddev_fields'; + height?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Ccv_Consumer_Chain_Stddev_Pop_Fields = { + __typename?: 'ccv_consumer_chain_stddev_pop_fields'; + height?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Ccv_Consumer_Chain_Stddev_Samp_Fields = { + __typename?: 'ccv_consumer_chain_stddev_samp_fields'; + height?: Maybe; +}; + +/** Streaming cursor of the table "ccv_consumer_chain" */ +export type Ccv_Consumer_Chain_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Ccv_Consumer_Chain_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Ccv_Consumer_Chain_Stream_Cursor_Value_Input = { + chain_id?: InputMaybe; + height?: InputMaybe; + initial_val_set?: InputMaybe; + provider_channel_id?: InputMaybe; + provider_client_id?: InputMaybe; + provider_client_state?: InputMaybe; + provider_consensus_state?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Ccv_Consumer_Chain_Sum_Fields = { + __typename?: 'ccv_consumer_chain_sum_fields'; + height?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Ccv_Consumer_Chain_Var_Pop_Fields = { + __typename?: 'ccv_consumer_chain_var_pop_fields'; + height?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Ccv_Consumer_Chain_Var_Samp_Fields = { + __typename?: 'ccv_consumer_chain_var_samp_fields'; + height?: Maybe; +}; + +/** aggregate variance on columns */ +export type Ccv_Consumer_Chain_Variance_Fields = { + __typename?: 'ccv_consumer_chain_variance_fields'; + height?: Maybe; +}; + +/** columns and relationships of "ccv_consumer_params" */ +export type Ccv_Consumer_Params = { + __typename?: 'ccv_consumer_params'; + height: Scalars['bigint']; + one_row_id: Scalars['Boolean']; + params: Scalars['jsonb']; +}; + + +/** columns and relationships of "ccv_consumer_params" */ +export type Ccv_Consumer_ParamsParamsArgs = { + path?: InputMaybe; +}; + +/** aggregated selection of "ccv_consumer_params" */ +export type Ccv_Consumer_Params_Aggregate = { + __typename?: 'ccv_consumer_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "ccv_consumer_params" */ +export type Ccv_Consumer_Params_Aggregate_Fields = { + __typename?: 'ccv_consumer_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 "ccv_consumer_params" */ +export type Ccv_Consumer_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Ccv_Consumer_Params_Avg_Fields = { + __typename?: 'ccv_consumer_params_avg_fields'; + height?: Maybe; +}; + +/** Boolean expression to filter rows from the table "ccv_consumer_params". All fields are combined with a logical 'AND'. */ +export type Ccv_Consumer_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Ccv_Consumer_Params_Max_Fields = { + __typename?: 'ccv_consumer_params_max_fields'; + height?: Maybe; +}; + +/** aggregate min on columns */ +export type Ccv_Consumer_Params_Min_Fields = { + __typename?: 'ccv_consumer_params_min_fields'; + height?: Maybe; +}; + +/** Ordering options when selecting data from "ccv_consumer_params". */ +export type Ccv_Consumer_Params_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +/** select columns of table "ccv_consumer_params" */ +export enum Ccv_Consumer_Params_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + OneRowId = 'one_row_id', + /** column name */ + Params = 'params' +} + +/** aggregate stddev on columns */ +export type Ccv_Consumer_Params_Stddev_Fields = { + __typename?: 'ccv_consumer_params_stddev_fields'; + height?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Ccv_Consumer_Params_Stddev_Pop_Fields = { + __typename?: 'ccv_consumer_params_stddev_pop_fields'; + height?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Ccv_Consumer_Params_Stddev_Samp_Fields = { + __typename?: 'ccv_consumer_params_stddev_samp_fields'; + height?: Maybe; +}; + +/** Streaming cursor of the table "ccv_consumer_params" */ +export type Ccv_Consumer_Params_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Ccv_Consumer_Params_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Ccv_Consumer_Params_Stream_Cursor_Value_Input = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Ccv_Consumer_Params_Sum_Fields = { + __typename?: 'ccv_consumer_params_sum_fields'; + height?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Ccv_Consumer_Params_Var_Pop_Fields = { + __typename?: 'ccv_consumer_params_var_pop_fields'; + height?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Ccv_Consumer_Params_Var_Samp_Fields = { + __typename?: 'ccv_consumer_params_var_samp_fields'; + height?: Maybe; +}; + +/** aggregate variance on columns */ +export type Ccv_Consumer_Params_Variance_Fields = { + __typename?: 'ccv_consumer_params_variance_fields'; + height?: Maybe; +}; + +/** columns and relationships of "ccv_validator" */ +export type Ccv_Validator = { + __typename?: 'ccv_validator'; + ccv_validator?: Maybe; + ccv_validator_info?: Maybe; + consumer_consensus_address: Scalars['String']; + consumer_operator_address: Scalars['String']; + consumer_self_delegate_address: Scalars['String']; + height: Scalars['bigint']; + provider_consensus_address: Scalars['String']; + provider_operator_address: Scalars['String']; + provider_self_delegate_address: Scalars['String']; + validator?: Maybe; +}; + +/** Boolean expression to filter rows from the table "ccv_validator". All fields are combined with a logical 'AND'. */ +export type Ccv_Validator_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + consumer_consensus_address?: InputMaybe; + consumer_operator_address?: InputMaybe; + consumer_self_delegate_address?: InputMaybe; + height?: InputMaybe; + provider_consensus_address?: InputMaybe; + provider_operator_address?: InputMaybe; + provider_self_delegate_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "ccv_validator". */ +export type Ccv_Validator_Order_By = { + consumer_consensus_address?: InputMaybe; + consumer_operator_address?: InputMaybe; + consumer_self_delegate_address?: InputMaybe; + height?: InputMaybe; + provider_consensus_address?: InputMaybe; + provider_operator_address?: InputMaybe; + provider_self_delegate_address?: InputMaybe; +}; + +/** select columns of table "ccv_validator" */ +export enum Ccv_Validator_Select_Column { + /** column name */ + ConsumerConsensusAddress = 'consumer_consensus_address', + /** column name */ + ConsumerOperatorAddress = 'consumer_operator_address', + /** column name */ + ConsumerSelfDelegateAddress = 'consumer_self_delegate_address', + /** column name */ + Height = 'height', + /** column name */ + ProviderConsensusAddress = 'provider_consensus_address', + /** column name */ + ProviderOperatorAddress = 'provider_operator_address', + /** column name */ + ProviderSelfDelegateAddress = 'provider_self_delegate_address' +} + +/** Streaming cursor of the table "ccv_validator" */ +export type Ccv_Validator_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Ccv_Validator_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Ccv_Validator_Stream_Cursor_Value_Input = { + consumer_consensus_address?: InputMaybe; + consumer_operator_address?: InputMaybe; + consumer_self_delegate_address?: InputMaybe; + height?: InputMaybe; + provider_consensus_address?: InputMaybe; + provider_operator_address?: InputMaybe; + provider_self_delegate_address?: InputMaybe; +}; + +/** ordering argument of a cursor */ +export enum Cursor_Ordering { + /** ascending ordering of the cursor */ + Asc = 'ASC', + /** descending ordering of the cursor */ + Desc = 'DESC' +} + +/** columns and relationships of "fee_grant_allowance" */ +export type Fee_Grant_Allowance = { + __typename?: 'fee_grant_allowance'; + allowance: Scalars['jsonb']; + /** An object relationship */ + grantee: Account; + grantee_address: Scalars['String']; + /** An object relationship */ + granter: Account; + granter_address: Scalars['String']; + height: Scalars['bigint']; +}; + + +/** columns and relationships of "fee_grant_allowance" */ +export type Fee_Grant_AllowanceAllowanceArgs = { + path?: InputMaybe; +}; + +/** order by aggregate values of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Avg_Order_By = { + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "fee_grant_allowance". All fields are combined with a logical 'AND'. */ +export type Fee_Grant_Allowance_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + allowance?: InputMaybe; + grantee?: InputMaybe; + grantee_address?: InputMaybe; + granter?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** order by max() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Max_Order_By = { + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** order by min() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Min_Order_By = { + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "fee_grant_allowance". */ +export type Fee_Grant_Allowance_Order_By = { + allowance?: InputMaybe; + grantee?: InputMaybe; + grantee_address?: InputMaybe; + granter?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "fee_grant_allowance" */ +export enum Fee_Grant_Allowance_Select_Column { + /** column name */ + Allowance = 'allowance', + /** column name */ + GranteeAddress = 'grantee_address', + /** column name */ + GranterAddress = 'granter_address', + /** column name */ + Height = 'height' +} + +/** order by stddev() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stddev_Order_By = { + height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stddev_Pop_Order_By = { + height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stddev_Samp_Order_By = { + height?: InputMaybe; +}; + +/** Streaming cursor of the table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Fee_Grant_Allowance_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Fee_Grant_Allowance_Stream_Cursor_Value_Input = { + allowance?: InputMaybe; + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** order by sum() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Sum_Order_By = { + height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Var_Pop_Order_By = { + height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Var_Samp_Order_By = { + height?: InputMaybe; +}; + +/** order by variance() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Variance_Order_By = { + height?: InputMaybe; +}; + +/** columns and relationships of "genesis" */ +export type Genesis = { + __typename?: 'genesis'; + chain_id: Scalars['String']; + initial_height: Scalars['bigint']; + time: Scalars['timestamp']; +}; + +/** Boolean expression to filter rows from the table "genesis". All fields are combined with a logical 'AND'. */ +export type Genesis_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +/** Ordering options when selecting data from "genesis". */ +export type Genesis_Order_By = { + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +/** select columns of table "genesis" */ +export enum Genesis_Select_Column { + /** column name */ + ChainId = 'chain_id', + /** column name */ + InitialHeight = 'initial_height', + /** column name */ + Time = 'time' +} + +/** Streaming cursor of the table "genesis" */ +export type Genesis_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Genesis_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Genesis_Stream_Cursor_Value_Input = { + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +export type Jsonb_Cast_Exp = { + String?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. */ +export type Jsonb_Comparison_Exp = { + _cast?: InputMaybe; + /** is the column contained in the given json value */ + _contained_in?: InputMaybe; + /** does the column contain the given json value at the top level */ + _contains?: InputMaybe; + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + /** does the string exist as a top-level key in the column */ + _has_key?: InputMaybe; + /** do all of these strings exist as top-level keys in the column */ + _has_keys_all?: InputMaybe>; + /** do any of these strings exist as top-level keys in the column */ + _has_keys_any?: InputMaybe>; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "message" */ +export type Message = { + __typename?: 'message'; + height: Scalars['bigint']; + index: Scalars['bigint']; + involved_accounts_addresses: Scalars['_text']; + /** An object relationship */ + transaction?: Maybe; + /** An object relationship */ + transactionByPartitionIdTransactionHash?: Maybe; + transaction_hash: Scalars['String']; + type: Scalars['String']; + value: Scalars['jsonb']; +}; + + +/** columns and relationships of "message" */ +export type MessageValueArgs = { + path?: InputMaybe; +}; + +/** order by aggregate values of table "message" */ +export type Message_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "message" */ +export type Message_Avg_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "message". All fields are combined with a logical 'AND'. */ +export type Message_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe<_Text_Comparison_Exp>; + transaction?: InputMaybe; + transactionByPartitionIdTransactionHash?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +/** order by max() on columns of table "message" */ +export type Message_Max_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; +}; + +/** order by min() on columns of table "message" */ +export type Message_Min_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; +}; + +/** Ordering options when selecting data from "message". */ +export type Message_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe; + transaction?: InputMaybe; + transactionByPartitionIdTransactionHash?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +/** select columns of table "message" */ +export enum Message_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Index = 'index', + /** column name */ + InvolvedAccountsAddresses = 'involved_accounts_addresses', + /** column name */ + TransactionHash = 'transaction_hash', + /** column name */ + Type = 'type', + /** column name */ + Value = 'value' +} + +/** order by stddev() on columns of table "message" */ +export type Message_Stddev_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "message" */ +export type Message_Stddev_Pop_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "message" */ +export type Message_Stddev_Samp_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** Streaming cursor of the table "message" */ +export type Message_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Message_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Message_Stream_Cursor_Value_Input = { + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +/** order by sum() on columns of table "message" */ +export type Message_Sum_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by var_pop() on columns of table "message" */ +export type Message_Var_Pop_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by var_samp() on columns of table "message" */ +export type Message_Var_Samp_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by variance() on columns of table "message" */ +export type Message_Variance_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +export type Messages_By_Address_Args = { + addresses?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; + types?: InputMaybe; +}; + +/** columns and relationships of "modules" */ +export type Modules = { + __typename?: 'modules'; + module_name: Scalars['String']; +}; + +/** Boolean expression to filter rows from the table "modules". All fields are combined with a logical 'AND'. */ +export type Modules_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + module_name?: InputMaybe; +}; + +/** Ordering options when selecting data from "modules". */ +export type Modules_Order_By = { + module_name?: InputMaybe; +}; + +/** select columns of table "modules" */ +export enum Modules_Select_Column { + /** column name */ + ModuleName = 'module_name' +} + +/** Streaming cursor of the table "modules" */ +export type Modules_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Modules_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Modules_Stream_Cursor_Value_Input = { + module_name?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "numeric". All fields are combined with logical 'AND'. */ +export type Numeric_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** column ordering options */ +export enum Order_By { + /** in ascending order, nulls last */ + Asc = 'asc', + /** in ascending order, nulls first */ + AscNullsFirst = 'asc_nulls_first', + /** in ascending order, nulls last */ + AscNullsLast = 'asc_nulls_last', + /** in descending order, nulls first */ + Desc = 'desc', + /** in descending order, nulls first */ + DescNullsFirst = 'desc_nulls_first', + /** in descending order, nulls last */ + DescNullsLast = 'desc_nulls_last' +} + +/** columns and relationships of "pre_commit" */ +export type Pre_Commit = { + __typename?: 'pre_commit'; + height: Scalars['bigint']; + proposer_priority: Scalars['bigint']; + timestamp: Scalars['timestamp']; + /** An object relationship */ + validator: Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** aggregated selection of "pre_commit" */ +export type Pre_Commit_Aggregate = { + __typename?: 'pre_commit_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Pre_Commit_Aggregate_Bool_Exp = { + count?: InputMaybe; +}; + +export type Pre_Commit_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + +/** aggregate fields of "pre_commit" */ +export type Pre_Commit_Aggregate_Fields = { + __typename?: 'pre_commit_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 "pre_commit" */ +export type Pre_Commit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "pre_commit" */ +export type Pre_Commit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Pre_Commit_Avg_Fields = { + __typename?: 'pre_commit_avg_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by avg() on columns of table "pre_commit" */ +export type Pre_Commit_Avg_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "pre_commit". All fields are combined with a logical 'AND'. */ +export type Pre_Commit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Pre_Commit_Max_Fields = { + __typename?: 'pre_commit_max_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by max() on columns of table "pre_commit" */ +export type Pre_Commit_Max_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Pre_Commit_Min_Fields = { + __typename?: 'pre_commit_min_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by min() on columns of table "pre_commit" */ +export type Pre_Commit_Min_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "pre_commit". */ +export type Pre_Commit_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "pre_commit" */ +export enum Pre_Commit_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + ProposerPriority = 'proposer_priority', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** aggregate stddev on columns */ +export type Pre_Commit_Stddev_Fields = { + __typename?: 'pre_commit_stddev_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev() on columns of table "pre_commit" */ +export type Pre_Commit_Stddev_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Pre_Commit_Stddev_Pop_Fields = { + __typename?: 'pre_commit_stddev_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_pop() on columns of table "pre_commit" */ +export type Pre_Commit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Pre_Commit_Stddev_Samp_Fields = { + __typename?: 'pre_commit_stddev_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_samp() on columns of table "pre_commit" */ +export type Pre_Commit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Streaming cursor of the table "pre_commit" */ +export type Pre_Commit_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Pre_Commit_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Pre_Commit_Stream_Cursor_Value_Input = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Pre_Commit_Sum_Fields = { + __typename?: 'pre_commit_sum_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by sum() on columns of table "pre_commit" */ +export type Pre_Commit_Sum_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Pre_Commit_Var_Pop_Fields = { + __typename?: 'pre_commit_var_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_pop() on columns of table "pre_commit" */ +export type Pre_Commit_Var_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Pre_Commit_Var_Samp_Fields = { + __typename?: 'pre_commit_var_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_samp() on columns of table "pre_commit" */ +export type Pre_Commit_Var_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Pre_Commit_Variance_Fields = { + __typename?: 'pre_commit_variance_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by variance() on columns of table "pre_commit" */ +export type Pre_Commit_Variance_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Proposal_Aggregate_Bool_Exp = { + count?: InputMaybe; +}; + +export type Proposal_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + +/** columns and relationships of "account" */ +export type Provider_Account = { + __typename?: 'provider_account'; + address: Scalars['String']; + /** An array relationship */ + proposal_deposits: Array; + /** An array relationship */ + proposal_votes: Array; + /** An array relationship */ + proposals: Array; + /** An aggregate relationship */ + proposals_aggregate: Provider_Proposal_Aggregate; + /** An array relationship */ + validator_infos: Array; + /** An object relationship */ + vesting_account?: Maybe; + /** An array relationship */ + vesting_accounts: Array; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountProposalsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountProposals_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountValidator_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountVesting_AccountsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "account". All fields are combined with a logical 'AND'. */ +export type Provider_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + address?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposals?: InputMaybe; + proposals_aggregate?: InputMaybe; + validator_infos?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts?: InputMaybe; +}; + +/** Ordering options when selecting data from "account". */ +export type Provider_Account_Order_By = { + address?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposals_aggregate?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts_aggregate?: InputMaybe; +}; + +/** select columns of table "account" */ +export enum Provider_Account_Select_Column { + /** column name */ + Address = 'address' +} + +/** Streaming cursor of the table "account" */ +export type Provider_Account_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Account_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Account_Stream_Cursor_Value_Input = { + address?: InputMaybe; +}; + +/** columns and relationships of "block" */ +export type Provider_Block = { + __typename?: 'provider_block'; + hash: Scalars['String']; + height: Scalars['bigint']; + num_txs?: Maybe; + /** An array relationship */ + pre_commits: Array; + /** An aggregate relationship */ + pre_commits_aggregate: Provider_Pre_Commit_Aggregate; + /** An array relationship */ + proposal_deposits: Array; + /** An array relationship */ + proposal_votes: Array; + proposer_address?: Maybe; + timestamp: Scalars['timestamp']; + total_gas?: Maybe; + /** An array relationship */ + transactions: Array; + /** An object relationship */ + validator?: Maybe; + /** An array relationship */ + validator_voting_powers: Array; + /** An aggregate relationship */ + validator_voting_powers_aggregate: Provider_Validator_Voting_Power_Aggregate; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockTransactionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "block" */ +export type Provider_Block_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "block" */ +export type Provider_Block_Avg_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "block". All fields are combined with a logical 'AND'. */ +export type Provider_Block_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** order by max() on columns of table "block" */ +export type Provider_Block_Max_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by min() on columns of table "block" */ +export type Provider_Block_Min_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Ordering options when selecting data from "block". */ +export type Provider_Block_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions_aggregate?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** select columns of table "block" */ +export enum Provider_Block_Select_Column { + /** column name */ + Hash = 'hash', + /** column name */ + Height = 'height', + /** column name */ + NumTxs = 'num_txs', + /** column name */ + ProposerAddress = 'proposer_address', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + TotalGas = 'total_gas' +} + +/** order by stddev() on columns of table "block" */ +export type Provider_Block_Stddev_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "block" */ +export type Provider_Block_Stddev_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "block" */ +export type Provider_Block_Stddev_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Streaming cursor of the table "block" */ +export type Provider_Block_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Block_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Block_Stream_Cursor_Value_Input = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by sum() on columns of table "block" */ +export type Provider_Block_Sum_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by var_pop() on columns of table "block" */ +export type Provider_Block_Var_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by var_samp() on columns of table "block" */ +export type Provider_Block_Var_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by variance() on columns of table "block" */ +export type Provider_Block_Variance_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** ordering argument of a cursor */ +export enum Provider_Cursor_Ordering { + /** ascending ordering of the cursor */ + Asc = 'ASC', + /** descending ordering of the cursor */ + Desc = 'DESC' +} + +/** columns and relationships of "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence = { + __typename?: 'provider_double_sign_evidence'; + /** An object relationship */ + doubleSignVoteByVoteAId: Provider_Double_Sign_Vote; + /** An object relationship */ + double_sign_vote: Provider_Double_Sign_Vote; + height: Scalars['bigint']; + vote_a_id: Scalars['bigint']; + vote_b_id: Scalars['bigint']; +}; + +/** order by aggregate values of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Avg_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "double_sign_evidence". All fields are combined with a logical 'AND'. */ +export type Provider_Double_Sign_Evidence_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by max() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Max_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by min() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Min_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** Ordering options when selecting data from "double_sign_evidence". */ +export type Provider_Double_Sign_Evidence_Order_By = { + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** select columns of table "double_sign_evidence" */ +export enum Provider_Double_Sign_Evidence_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + VoteAId = 'vote_a_id', + /** column name */ + VoteBId = 'vote_b_id' +} + +/** order by stddev() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Stddev_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Stddev_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Stddev_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** Streaming cursor of the table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Double_Sign_Evidence_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Double_Sign_Evidence_Stream_Cursor_Value_Input = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by sum() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Sum_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Var_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Var_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by variance() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Variance_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** columns and relationships of "double_sign_vote" */ +export type Provider_Double_Sign_Vote = { + __typename?: 'provider_double_sign_vote'; + block_id: Scalars['String']; + /** An array relationship */ + doubleSignEvidencesByVoteBId: Array; + /** An array relationship */ + double_sign_evidences: Array; + height: Scalars['bigint']; + round: Scalars['Int']; + signature: Scalars['String']; + type: Scalars['smallint']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; + validator_index: Scalars['Int']; +}; + + +/** columns and relationships of "double_sign_vote" */ +export type Provider_Double_Sign_VoteDoubleSignEvidencesByVoteBIdArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "double_sign_vote" */ +export type Provider_Double_Sign_VoteDouble_Sign_EvidencesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Avg_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "double_sign_vote". All fields are combined with a logical 'AND'. */ +export type Provider_Double_Sign_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId?: InputMaybe; + double_sign_evidences?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by max() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Max_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by min() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Min_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** Ordering options when selecting data from "double_sign_vote". */ +export type Provider_Double_Sign_Vote_Order_By = { + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId_aggregate?: InputMaybe; + double_sign_evidences_aggregate?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** select columns of table "double_sign_vote" */ +export enum Provider_Double_Sign_Vote_Select_Column { + /** column name */ + BlockId = 'block_id', + /** column name */ + Height = 'height', + /** column name */ + Round = 'round', + /** column name */ + Signature = 'signature', + /** column name */ + Type = 'type', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + ValidatorIndex = 'validator_index' +} + +/** order by stddev() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Stddev_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** Streaming cursor of the table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Double_Sign_Vote_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Double_Sign_Vote_Stream_Cursor_Value_Input = { + block_id?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by sum() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Sum_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by var_pop() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by var_samp() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by variance() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Variance_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** columns and relationships of "pre_commit" */ +export type Provider_Pre_Commit = { + __typename?: 'provider_pre_commit'; + height: Scalars['bigint']; + proposer_priority: Scalars['bigint']; + timestamp: Scalars['timestamp']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** aggregated selection of "pre_commit" */ +export type Provider_Pre_Commit_Aggregate = { + __typename?: 'provider_pre_commit_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "pre_commit" */ +export type Provider_Pre_Commit_Aggregate_Fields = { + __typename?: 'provider_pre_commit_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 "pre_commit" */ +export type Provider_Pre_Commit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "pre_commit" */ +export type Provider_Pre_Commit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Provider_Pre_Commit_Avg_Fields = { + __typename?: 'provider_pre_commit_avg_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by avg() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Avg_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "pre_commit". All fields are combined with a logical 'AND'. */ +export type Provider_Pre_Commit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Provider_Pre_Commit_Max_Fields = { + __typename?: 'provider_pre_commit_max_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by max() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Max_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Provider_Pre_Commit_Min_Fields = { + __typename?: 'provider_pre_commit_min_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by min() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Min_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "pre_commit". */ +export type Provider_Pre_Commit_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "pre_commit" */ +export enum Provider_Pre_Commit_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + ProposerPriority = 'proposer_priority', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** aggregate stddev on columns */ +export type Provider_Pre_Commit_Stddev_Fields = { + __typename?: 'provider_pre_commit_stddev_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Stddev_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Provider_Pre_Commit_Stddev_Pop_Fields = { + __typename?: 'provider_pre_commit_stddev_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_pop() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Provider_Pre_Commit_Stddev_Samp_Fields = { + __typename?: 'provider_pre_commit_stddev_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_samp() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Streaming cursor of the table "pre_commit" */ +export type Provider_Pre_Commit_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Pre_Commit_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Pre_Commit_Stream_Cursor_Value_Input = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Provider_Pre_Commit_Sum_Fields = { + __typename?: 'provider_pre_commit_sum_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by sum() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Sum_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Provider_Pre_Commit_Var_Pop_Fields = { + __typename?: 'provider_pre_commit_var_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_pop() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Var_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Provider_Pre_Commit_Var_Samp_Fields = { + __typename?: 'provider_pre_commit_var_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_samp() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Var_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Provider_Pre_Commit_Variance_Fields = { + __typename?: 'provider_pre_commit_variance_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by variance() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Variance_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** columns and relationships of "proposal" */ +export type Provider_Proposal = { + __typename?: 'provider_proposal'; + content: Scalars['jsonb']; + deposit_end_time?: Maybe; + description: Scalars['String']; + id: Scalars['Int']; + /** An array relationship */ + proposal_deposits: Array; + proposal_route: Scalars['String']; + /** An object relationship */ + proposal_tally_result?: Maybe; + /** An array relationship */ + proposal_tally_results: Array; + proposal_type: Scalars['String']; + /** An array relationship */ + proposal_votes: Array; + /** An object relationship */ + proposer: Provider_Account; + proposer_address: Scalars['String']; + /** An object relationship */ + staking_pool_snapshot?: Maybe; + status?: Maybe; + submit_time: Scalars['timestamp']; + title: Scalars['String']; + /** An array relationship */ + validator_status_snapshots: Array; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalContentArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalProposal_Tally_ResultsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalValidator_Status_SnapshotsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** aggregated selection of "proposal" */ +export type Provider_Proposal_Aggregate = { + __typename?: 'provider_proposal_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "proposal" */ +export type Provider_Proposal_Aggregate_Fields = { + __typename?: 'provider_proposal_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 "proposal" */ +export type Provider_Proposal_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "proposal" */ +export type Provider_Proposal_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Provider_Proposal_Avg_Fields = { + __typename?: 'provider_proposal_avg_fields'; + id?: Maybe; +}; + +/** order by avg() on columns of table "proposal" */ +export type Provider_Proposal_Avg_Order_By = { + id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** columns and relationships of "proposal_deposit" */ +export type Provider_Proposal_Deposit = { + __typename?: 'provider_proposal_deposit'; + amount?: Maybe; + /** An object relationship */ + block?: Maybe; + /** An object relationship */ + depositor?: Maybe; + depositor_address?: Maybe; + height: Scalars['bigint']; + /** An object relationship */ + proposal: Provider_Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; +}; + +/** order by aggregate values of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_deposit". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Deposit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe<_Coin_Comparison_Exp>; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Max_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Min_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_deposit". */ +export type Provider_Proposal_Deposit_Order_By = { + amount?: InputMaybe; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** select columns of table "proposal_deposit" */ +export enum Provider_Proposal_Deposit_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + DepositorAddress = 'depositor_address', + /** column name */ + Height = 'height', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Timestamp = 'timestamp' +} + +/** order by stddev() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Deposit_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Deposit_Stream_Cursor_Value_Input = { + amount?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Provider_Proposal_Max_Fields = { + __typename?: 'provider_proposal_max_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +/** order by max() on columns of table "proposal" */ +export type Provider_Proposal_Max_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Provider_Proposal_Min_Fields = { + __typename?: 'provider_proposal_min_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +/** order by min() on columns of table "proposal" */ +export type Provider_Proposal_Min_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal". */ +export type Provider_Proposal_Order_By = { + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results_aggregate?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots_aggregate?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** select columns of table "proposal" */ +export enum Provider_Proposal_Select_Column { + /** column name */ + Content = 'content', + /** column name */ + DepositEndTime = 'deposit_end_time', + /** column name */ + Description = 'description', + /** column name */ + Id = 'id', + /** column name */ + ProposalRoute = 'proposal_route', + /** column name */ + ProposalType = 'proposal_type', + /** column name */ + ProposerAddress = 'proposer_address', + /** column name */ + Status = 'status', + /** column name */ + SubmitTime = 'submit_time', + /** column name */ + Title = 'title', + /** column name */ + VotingEndTime = 'voting_end_time', + /** column name */ + VotingStartTime = 'voting_start_time' +} + +/** columns and relationships of "proposal_staking_pool_snapshot" */ +export type Provider_Proposal_Staking_Pool_Snapshot = { + __typename?: 'provider_proposal_staking_pool_snapshot'; + bonded_tokens: Scalars['String']; + height: Scalars['bigint']; + not_bonded_tokens: Scalars['String']; + /** An object relationship */ + proposal: Provider_Proposal; + proposal_id: Scalars['Int']; +}; + +/** Boolean expression to filter rows from the table "proposal_staking_pool_snapshot". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Staking_Pool_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_staking_pool_snapshot". */ +export type Provider_Proposal_Staking_Pool_Snapshot_Order_By = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** select columns of table "proposal_staking_pool_snapshot" */ +export enum Provider_Proposal_Staking_Pool_Snapshot_Select_Column { + /** column name */ + BondedTokens = 'bonded_tokens', + /** column name */ + Height = 'height', + /** column name */ + NotBondedTokens = 'not_bonded_tokens', + /** column name */ + ProposalId = 'proposal_id' +} + +/** Streaming cursor of the table "proposal_staking_pool_snapshot" */ +export type Provider_Proposal_Staking_Pool_Snapshot_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Staking_Pool_Snapshot_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Staking_Pool_Snapshot_Stream_Cursor_Value_Input = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** aggregate stddev on columns */ +export type Provider_Proposal_Stddev_Fields = { + __typename?: 'provider_proposal_stddev_fields'; + id?: Maybe; +}; + +/** order by stddev() on columns of table "proposal" */ +export type Provider_Proposal_Stddev_Order_By = { + id?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Provider_Proposal_Stddev_Pop_Fields = { + __typename?: 'provider_proposal_stddev_pop_fields'; + id?: Maybe; +}; + +/** order by stddev_pop() on columns of table "proposal" */ +export type Provider_Proposal_Stddev_Pop_Order_By = { + id?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Provider_Proposal_Stddev_Samp_Fields = { + __typename?: 'provider_proposal_stddev_samp_fields'; + id?: Maybe; +}; + +/** order by stddev_samp() on columns of table "proposal" */ +export type Provider_Proposal_Stddev_Samp_Order_By = { + id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal" */ +export type Provider_Proposal_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Stream_Cursor_Value_Input = { + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Provider_Proposal_Sum_Fields = { + __typename?: 'provider_proposal_sum_fields'; + id?: Maybe; +}; + +/** order by sum() on columns of table "proposal" */ +export type Provider_Proposal_Sum_Order_By = { + id?: InputMaybe; +}; + +/** columns and relationships of "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result = { + __typename?: 'provider_proposal_tally_result'; + abstain: Scalars['String']; + height: Scalars['bigint']; + no: Scalars['String']; + no_with_veto: Scalars['String']; + /** An object relationship */ + proposal: Provider_Proposal; + proposal_id: Scalars['Int']; + yes: Scalars['String']; +}; + +/** order by aggregate values of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_tally_result". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Tally_Result_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Max_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Min_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_tally_result". */ +export type Provider_Proposal_Tally_Result_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** select columns of table "proposal_tally_result" */ +export enum Provider_Proposal_Tally_Result_Select_Column { + /** column name */ + Abstain = 'abstain', + /** column name */ + Height = 'height', + /** column name */ + No = 'no', + /** column name */ + NoWithVeto = 'no_with_veto', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Yes = 'yes' +} + +/** order by stddev() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Tally_Result_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Tally_Result_Stream_Cursor_Value_Input = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** columns and relationships of "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot = { + __typename?: 'provider_proposal_validator_status_snapshot'; + height: Scalars['bigint']; + jailed: Scalars['Boolean']; + /** An object relationship */ + proposal?: Maybe; + proposal_id?: Maybe; + status: Scalars['Int']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** order by aggregate values of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_validator_status_snapshot". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Validator_Status_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Max_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Min_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_validator_status_snapshot". */ +export type Provider_Proposal_Validator_Status_Snapshot_Order_By = { + height?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "proposal_validator_status_snapshot" */ +export enum Provider_Proposal_Validator_Status_Snapshot_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Jailed = 'jailed', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Status = 'status', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** order by stddev() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Validator_Status_Snapshot_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Validator_Status_Snapshot_Stream_Cursor_Value_Input = { + height?: InputMaybe; + jailed?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Provider_Proposal_Var_Pop_Fields = { + __typename?: 'provider_proposal_var_pop_fields'; + id?: Maybe; +}; + +/** order by var_pop() on columns of table "proposal" */ +export type Provider_Proposal_Var_Pop_Order_By = { + id?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Provider_Proposal_Var_Samp_Fields = { + __typename?: 'provider_proposal_var_samp_fields'; + id?: Maybe; +}; + +/** order by var_samp() on columns of table "proposal" */ +export type Provider_Proposal_Var_Samp_Order_By = { + id?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Provider_Proposal_Variance_Fields = { + __typename?: 'provider_proposal_variance_fields'; + id?: Maybe; +}; + +/** order by variance() on columns of table "proposal" */ +export type Provider_Proposal_Variance_Order_By = { + id?: InputMaybe; +}; + +/** columns and relationships of "proposal_vote" */ +export type Provider_Proposal_Vote = { + __typename?: 'provider_proposal_vote'; + /** An object relationship */ + account: Provider_Account; + /** An object relationship */ + block?: Maybe; + height: Scalars['bigint']; + option: Scalars['String']; + /** An object relationship */ + proposal: Provider_Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; + voter_address: Scalars['String']; +}; + +/** order by aggregate values of table "proposal_vote" */ +export type Provider_Proposal_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_vote". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Max_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Min_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_vote". */ +export type Provider_Proposal_Vote_Order_By = { + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** select columns of table "proposal_vote" */ +export enum Provider_Proposal_Vote_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Option = 'option', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + VoterAddress = 'voter_address' +} + +/** order by stddev() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_vote" */ +export type Provider_Proposal_Vote_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Vote_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Vote_Stream_Cursor_Value_Input = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Provider_Provider_Query = { + __typename?: 'provider_provider_query'; + /** fetch data from the table: "account" */ + provider_account: Array; + /** fetch data from the table: "account" using primary key columns */ + provider_account_by_pk?: Maybe; + /** fetch data from the table: "block" */ + provider_block: Array; + /** fetch data from the table: "block" using primary key columns */ + provider_block_by_pk?: Maybe; + /** fetch data from the table: "double_sign_evidence" */ + provider_double_sign_evidence: Array; + /** fetch data from the table: "double_sign_vote" */ + provider_double_sign_vote: Array; + /** fetch data from the table: "pre_commit" */ + provider_pre_commit: Array; + /** fetch aggregated fields from the table: "pre_commit" */ + provider_pre_commit_aggregate: Provider_Pre_Commit_Aggregate; + /** fetch data from the table: "proposal" */ + provider_proposal: Array; + /** fetch aggregated fields from the table: "proposal" */ + provider_proposal_aggregate: Provider_Proposal_Aggregate; + /** fetch data from the table: "proposal" using primary key columns */ + provider_proposal_by_pk?: Maybe; + /** fetch data from the table: "proposal_deposit" */ + provider_proposal_deposit: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" */ + provider_proposal_staking_pool_snapshot: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" using primary key columns */ + provider_proposal_staking_pool_snapshot_by_pk?: Maybe; + /** fetch data from the table: "proposal_tally_result" */ + provider_proposal_tally_result: Array; + /** fetch data from the table: "proposal_tally_result" using primary key columns */ + provider_proposal_tally_result_by_pk?: Maybe; + /** fetch data from the table: "proposal_validator_status_snapshot" */ + provider_proposal_validator_status_snapshot: Array; + /** fetch data from the table: "proposal_vote" */ + provider_proposal_vote: Array; + /** fetch data from the table: "slashing_params" */ + provider_slashing_params: Array; + /** fetch aggregated fields from the table: "slashing_params" */ + provider_slashing_params_aggregate: Provider_Slashing_Params_Aggregate; + /** fetch data from the table: "transaction" */ + provider_transaction: Array; + /** fetch data from the table: "validator" */ + provider_validator: Array; + /** fetch data from the table: "validator" using primary key columns */ + provider_validator_by_pk?: Maybe; + /** fetch data from the table: "validator_commission" */ + provider_validator_commission: Array; + /** fetch data from the table: "validator_commission" using primary key columns */ + provider_validator_commission_by_pk?: Maybe; + /** fetch data from the table: "validator_description" */ + provider_validator_description: Array; + /** fetch data from the table: "validator_description" using primary key columns */ + provider_validator_description_by_pk?: Maybe; + /** fetch data from the table: "validator_info" */ + provider_validator_info: Array; + /** fetch data from the table: "validator_info" using primary key columns */ + provider_validator_info_by_pk?: Maybe; + /** fetch data from the table: "validator_signing_info" */ + provider_validator_signing_info: Array; + /** fetch data from the table: "validator_signing_info" using primary key columns */ + provider_validator_signing_info_by_pk?: Maybe; + /** fetch data from the table: "validator_status" */ + provider_validator_status: Array; + /** fetch aggregated fields from the table: "validator_status" */ + provider_validator_status_aggregate: Provider_Validator_Status_Aggregate; + /** fetch data from the table: "validator_status" using primary key columns */ + provider_validator_status_by_pk?: Maybe; + /** fetch data from the table: "validator_voting_power" */ + provider_validator_voting_power: Array; + /** fetch aggregated fields from the table: "validator_voting_power" */ + provider_validator_voting_power_aggregate: Provider_Validator_Voting_Power_Aggregate; + /** fetch data from the table: "validator_voting_power" using primary key columns */ + provider_validator_voting_power_by_pk?: Maybe; + /** fetch data from the table: "vesting_account" */ + provider_vesting_account: Array; + /** fetch data from the table: "vesting_period" */ + provider_vesting_period: Array; +}; + + +export type Provider_Provider_QueryProvider_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Account_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_BlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Block_By_PkArgs = { + height: Scalars['bigint']; +}; + + +export type Provider_Provider_QueryProvider_Double_Sign_EvidenceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Double_Sign_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Pre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Pre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_ProposalArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Provider_Provider_QueryProvider_Proposal_DepositArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Staking_Pool_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Staking_Pool_Snapshot_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Tally_ResultArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Tally_Result_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Validator_Status_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Slashing_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Slashing_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_TransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_ValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_CommissionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Commission_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_DescriptionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Description_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Info_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_StatusArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Status_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Status_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_Voting_PowerArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Voting_Power_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Voting_Power_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Vesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Vesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Provider_Provider_Subscription = { + __typename?: 'provider_provider_subscription'; + /** fetch data from the table: "account" */ + provider_account: Array; + /** fetch data from the table: "account" using primary key columns */ + provider_account_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "account" */ + provider_account_stream: Array; + /** fetch data from the table: "block" */ + provider_block: Array; + /** fetch data from the table: "block" using primary key columns */ + provider_block_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "block" */ + provider_block_stream: Array; + /** fetch data from the table: "double_sign_evidence" */ + provider_double_sign_evidence: Array; + /** fetch data from the table in a streaming manner: "double_sign_evidence" */ + provider_double_sign_evidence_stream: Array; + /** fetch data from the table: "double_sign_vote" */ + provider_double_sign_vote: Array; + /** fetch data from the table in a streaming manner: "double_sign_vote" */ + provider_double_sign_vote_stream: Array; + /** fetch data from the table: "pre_commit" */ + provider_pre_commit: Array; + /** fetch aggregated fields from the table: "pre_commit" */ + provider_pre_commit_aggregate: Provider_Pre_Commit_Aggregate; + /** fetch data from the table in a streaming manner: "pre_commit" */ + provider_pre_commit_stream: Array; + /** fetch data from the table: "proposal" */ + provider_proposal: Array; + /** fetch aggregated fields from the table: "proposal" */ + provider_proposal_aggregate: Provider_Proposal_Aggregate; + /** fetch data from the table: "proposal" using primary key columns */ + provider_proposal_by_pk?: Maybe; + /** fetch data from the table: "proposal_deposit" */ + provider_proposal_deposit: Array; + /** fetch data from the table in a streaming manner: "proposal_deposit" */ + provider_proposal_deposit_stream: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" */ + provider_proposal_staking_pool_snapshot: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" using primary key columns */ + provider_proposal_staking_pool_snapshot_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "proposal_staking_pool_snapshot" */ + provider_proposal_staking_pool_snapshot_stream: Array; + /** fetch data from the table in a streaming manner: "proposal" */ + provider_proposal_stream: Array; + /** fetch data from the table: "proposal_tally_result" */ + provider_proposal_tally_result: Array; + /** fetch data from the table: "proposal_tally_result" using primary key columns */ + provider_proposal_tally_result_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "proposal_tally_result" */ + provider_proposal_tally_result_stream: Array; + /** fetch data from the table: "proposal_validator_status_snapshot" */ + provider_proposal_validator_status_snapshot: Array; + /** fetch data from the table in a streaming manner: "proposal_validator_status_snapshot" */ + provider_proposal_validator_status_snapshot_stream: Array; + /** fetch data from the table: "proposal_vote" */ + provider_proposal_vote: Array; + /** fetch data from the table in a streaming manner: "proposal_vote" */ + provider_proposal_vote_stream: Array; + /** fetch data from the table: "slashing_params" */ + provider_slashing_params: Array; + /** fetch aggregated fields from the table: "slashing_params" */ + provider_slashing_params_aggregate: Provider_Slashing_Params_Aggregate; + /** fetch data from the table in a streaming manner: "slashing_params" */ + provider_slashing_params_stream: Array; + /** fetch data from the table: "transaction" */ + provider_transaction: Array; + /** fetch data from the table in a streaming manner: "transaction" */ + provider_transaction_stream: Array; + /** fetch data from the table: "validator" */ + provider_validator: Array; + /** fetch data from the table: "validator" using primary key columns */ + provider_validator_by_pk?: Maybe; + /** fetch data from the table: "validator_commission" */ + provider_validator_commission: Array; + /** fetch data from the table: "validator_commission" using primary key columns */ + provider_validator_commission_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_commission" */ + provider_validator_commission_stream: Array; + /** fetch data from the table: "validator_description" */ + provider_validator_description: Array; + /** fetch data from the table: "validator_description" using primary key columns */ + provider_validator_description_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_description" */ + provider_validator_description_stream: Array; + /** fetch data from the table: "validator_info" */ + provider_validator_info: Array; + /** fetch data from the table: "validator_info" using primary key columns */ + provider_validator_info_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_info" */ + provider_validator_info_stream: Array; + /** fetch data from the table: "validator_signing_info" */ + provider_validator_signing_info: Array; + /** fetch data from the table: "validator_signing_info" using primary key columns */ + provider_validator_signing_info_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_signing_info" */ + provider_validator_signing_info_stream: Array; + /** fetch data from the table: "validator_status" */ + provider_validator_status: Array; + /** fetch aggregated fields from the table: "validator_status" */ + provider_validator_status_aggregate: Provider_Validator_Status_Aggregate; + /** fetch data from the table: "validator_status" using primary key columns */ + provider_validator_status_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_status" */ + provider_validator_status_stream: Array; + /** fetch data from the table in a streaming manner: "validator" */ + provider_validator_stream: Array; + /** fetch data from the table: "validator_voting_power" */ + provider_validator_voting_power: Array; + /** fetch aggregated fields from the table: "validator_voting_power" */ + provider_validator_voting_power_aggregate: Provider_Validator_Voting_Power_Aggregate; + /** fetch data from the table: "validator_voting_power" using primary key columns */ + provider_validator_voting_power_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_voting_power" */ + provider_validator_voting_power_stream: Array; + /** fetch data from the table: "vesting_account" */ + provider_vesting_account: Array; + /** fetch data from the table in a streaming manner: "vesting_account" */ + provider_vesting_account_stream: Array; + /** fetch data from the table: "vesting_period" */ + provider_vesting_period: Array; + /** fetch data from the table in a streaming manner: "vesting_period" */ + provider_vesting_period_stream: Array; +}; + + +export type Provider_Provider_SubscriptionProvider_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Account_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Account_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_BlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Block_By_PkArgs = { + height: Scalars['bigint']; +}; + + +export type Provider_Provider_SubscriptionProvider_Block_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Double_Sign_EvidenceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Double_Sign_Evidence_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Double_Sign_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Double_Sign_Vote_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Pre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Pre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Pre_Commit_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_ProposalArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_DepositArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Deposit_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Staking_Pool_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Staking_Pool_Snapshot_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Staking_Pool_Snapshot_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Tally_ResultArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Tally_Result_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Tally_Result_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Validator_Status_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Validator_Status_Snapshot_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Vote_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Slashing_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Slashing_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Slashing_Params_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_TransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Transaction_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_ValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_CommissionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Commission_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Commission_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_DescriptionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Description_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Description_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Info_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Info_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Signing_Info_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_StatusArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Status_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Status_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Status_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Voting_PowerArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Voting_Power_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Voting_Power_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Voting_Power_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Vesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Vesting_Account_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Vesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Vesting_Period_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + +/** columns and relationships of "slashing_params" */ +export type Provider_Slashing_Params = { + __typename?: 'provider_slashing_params'; + height: Scalars['bigint']; + params: Scalars['jsonb']; +}; + + +/** columns and relationships of "slashing_params" */ +export type Provider_Slashing_ParamsParamsArgs = { + path?: InputMaybe; +}; + +/** aggregated selection of "slashing_params" */ +export type Provider_Slashing_Params_Aggregate = { + __typename?: 'provider_slashing_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "slashing_params" */ +export type Provider_Slashing_Params_Aggregate_Fields = { + __typename?: 'provider_slashing_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 "slashing_params" */ +export type Provider_Slashing_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Provider_Slashing_Params_Avg_Fields = { + __typename?: 'provider_slashing_params_avg_fields'; + height?: Maybe; +}; + +/** Boolean expression to filter rows from the table "slashing_params". All fields are combined with a logical 'AND'. */ +export type Provider_Slashing_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + params?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Provider_Slashing_Params_Max_Fields = { + __typename?: 'provider_slashing_params_max_fields'; + height?: Maybe; +}; + +/** aggregate min on columns */ +export type Provider_Slashing_Params_Min_Fields = { + __typename?: 'provider_slashing_params_min_fields'; + height?: Maybe; +}; + +/** Ordering options when selecting data from "slashing_params". */ +export type Provider_Slashing_Params_Order_By = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** select columns of table "slashing_params" */ +export enum Provider_Slashing_Params_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Params = 'params' +} + +/** aggregate stddev on columns */ +export type Provider_Slashing_Params_Stddev_Fields = { + __typename?: 'provider_slashing_params_stddev_fields'; + height?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Provider_Slashing_Params_Stddev_Pop_Fields = { + __typename?: 'provider_slashing_params_stddev_pop_fields'; + height?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Provider_Slashing_Params_Stddev_Samp_Fields = { + __typename?: 'provider_slashing_params_stddev_samp_fields'; + height?: Maybe; +}; + +/** Streaming cursor of the table "slashing_params" */ +export type Provider_Slashing_Params_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Slashing_Params_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Slashing_Params_Stream_Cursor_Value_Input = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Provider_Slashing_Params_Sum_Fields = { + __typename?: 'provider_slashing_params_sum_fields'; + height?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Provider_Slashing_Params_Var_Pop_Fields = { + __typename?: 'provider_slashing_params_var_pop_fields'; + height?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Provider_Slashing_Params_Var_Samp_Fields = { + __typename?: 'provider_slashing_params_var_samp_fields'; + height?: Maybe; +}; + +/** aggregate variance on columns */ +export type Provider_Slashing_Params_Variance_Fields = { + __typename?: 'provider_slashing_params_variance_fields'; + height?: Maybe; +}; + +/** columns and relationships of "transaction" */ +export type Provider_Transaction = { + __typename?: 'provider_transaction'; + /** An object relationship */ + block: Provider_Block; + fee: Scalars['jsonb']; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash: Scalars['String']; + height: Scalars['bigint']; + logs?: Maybe; + memo?: Maybe; + messages: Scalars['jsonb']; + raw_log?: Maybe; + signatures: Scalars['_text']; + signer_infos: Scalars['jsonb']; + success: Scalars['Boolean']; +}; + + +/** columns and relationships of "transaction" */ +export type Provider_TransactionFeeArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type Provider_TransactionLogsArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type Provider_TransactionMessagesArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type Provider_TransactionSigner_InfosArgs = { + path?: InputMaybe; +}; + +/** order by aggregate values of table "transaction" */ +export type Provider_Transaction_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "transaction" */ +export type Provider_Transaction_Avg_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "transaction". All fields are combined with a logical 'AND'. */ +export type Provider_Transaction_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe<_Text_Comparison_Exp>; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** order by max() on columns of table "transaction" */ +export type Provider_Transaction_Max_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + raw_log?: InputMaybe; +}; + +/** order by min() on columns of table "transaction" */ +export type Provider_Transaction_Min_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + raw_log?: InputMaybe; +}; + +/** Ordering options when selecting data from "transaction". */ +export type Provider_Transaction_Order_By = { + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** select columns of table "transaction" */ +export enum Provider_Transaction_Select_Column { + /** column name */ + Fee = 'fee', + /** column name */ + GasUsed = 'gas_used', + /** column name */ + GasWanted = 'gas_wanted', + /** column name */ + Hash = 'hash', + /** column name */ + Height = 'height', + /** column name */ + Logs = 'logs', + /** column name */ + Memo = 'memo', + /** column name */ + Messages = 'messages', + /** column name */ + RawLog = 'raw_log', + /** column name */ + Signatures = 'signatures', + /** column name */ + SignerInfos = 'signer_infos', + /** column name */ + Success = 'success' +} + +/** order by stddev() on columns of table "transaction" */ +export type Provider_Transaction_Stddev_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "transaction" */ +export type Provider_Transaction_Stddev_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "transaction" */ +export type Provider_Transaction_Stddev_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** Streaming cursor of the table "transaction" */ +export type Provider_Transaction_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Transaction_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Transaction_Stream_Cursor_Value_Input = { + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** order by sum() on columns of table "transaction" */ +export type Provider_Transaction_Sum_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "transaction" */ +export type Provider_Transaction_Var_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "transaction" */ +export type Provider_Transaction_Var_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by variance() on columns of table "transaction" */ +export type Provider_Transaction_Variance_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "validator" */ +export type Provider_Validator = { + __typename?: 'provider_validator'; + /** An array relationship */ + blocks: Array; + consensus_address: Scalars['String']; + consensus_pubkey: Scalars['String']; + /** An array relationship */ + double_sign_votes: Array; + /** An array relationship */ + pre_commits: Array; + /** An aggregate relationship */ + pre_commits_aggregate: Provider_Pre_Commit_Aggregate; + /** An array relationship */ + validator_commissions: Array; + /** An array relationship */ + validator_descriptions: Array; + /** An object relationship */ + validator_info?: Maybe; + /** An array relationship */ + validator_infos: Array; + /** An array relationship */ + validator_signing_infos: Array; + /** An array relationship */ + validator_statuses: Array; + /** An aggregate relationship */ + validator_statuses_aggregate: Provider_Validator_Status_Aggregate; + /** An array relationship */ + validator_voting_powers: Array; + /** An aggregate relationship */ + validator_voting_powers_aggregate: Provider_Validator_Voting_Power_Aggregate; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorBlocksArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorDouble_Sign_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_CommissionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_DescriptionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_Signing_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_StatusesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_Statuses_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + blocks?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes?: InputMaybe; + pre_commits?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + validator_commissions?: InputMaybe; + validator_descriptions?: InputMaybe; + validator_info?: InputMaybe; + validator_infos?: InputMaybe; + validator_signing_infos?: InputMaybe; + validator_statuses?: InputMaybe; + validator_statuses_aggregate?: InputMaybe; + validator_voting_powers?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** columns and relationships of "validator_commission" */ +export type Provider_Validator_Commission = { + __typename?: 'provider_validator_commission'; + commission: Scalars['numeric']; + height: Scalars['bigint']; + min_self_delegation: Scalars['bigint']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; +}; + +/** order by aggregate values of table "validator_commission" */ +export type Provider_Validator_Commission_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Avg_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_commission". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Commission_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by max() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Max_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by min() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Min_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_commission". */ +export type Provider_Validator_Commission_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** select columns of table "validator_commission" */ +export enum Provider_Validator_Commission_Select_Column { + /** column name */ + Commission = 'commission', + /** column name */ + Height = 'height', + /** column name */ + MinSelfDelegation = 'min_self_delegation', + /** column name */ + ValidatorAddress = 'validator_address' +} + +/** order by stddev() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Stddev_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Stddev_Pop_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Stddev_Samp_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_commission" */ +export type Provider_Validator_Commission_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Commission_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Commission_Stream_Cursor_Value_Input = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by sum() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Sum_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by var_pop() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Var_Pop_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by var_samp() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Var_Samp_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by variance() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Variance_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** columns and relationships of "validator_description" */ +export type Provider_Validator_Description = { + __typename?: 'provider_validator_description'; + avatar_url?: Maybe; + details?: Maybe; + height: Scalars['bigint']; + identity?: Maybe; + moniker?: Maybe; + security_contact?: Maybe; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; + website?: Maybe; +}; + +/** order by aggregate values of table "validator_description" */ +export type Provider_Validator_Description_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "validator_description" */ +export type Provider_Validator_Description_Avg_Order_By = { + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_description". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Description_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** order by max() on columns of table "validator_description" */ +export type Provider_Validator_Description_Max_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** order by min() on columns of table "validator_description" */ +export type Provider_Validator_Description_Min_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_description". */ +export type Provider_Validator_Description_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** select columns of table "validator_description" */ +export enum Provider_Validator_Description_Select_Column { + /** column name */ + AvatarUrl = 'avatar_url', + /** column name */ + Details = 'details', + /** column name */ + Height = 'height', + /** column name */ + Identity = 'identity', + /** column name */ + Moniker = 'moniker', + /** column name */ + SecurityContact = 'security_contact', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + Website = 'website' +} + +/** order by stddev() on columns of table "validator_description" */ +export type Provider_Validator_Description_Stddev_Order_By = { + height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "validator_description" */ +export type Provider_Validator_Description_Stddev_Pop_Order_By = { + height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "validator_description" */ +export type Provider_Validator_Description_Stddev_Samp_Order_By = { + height?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_description" */ +export type Provider_Validator_Description_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Description_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Description_Stream_Cursor_Value_Input = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** order by sum() on columns of table "validator_description" */ +export type Provider_Validator_Description_Sum_Order_By = { + height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "validator_description" */ +export type Provider_Validator_Description_Var_Pop_Order_By = { + height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "validator_description" */ +export type Provider_Validator_Description_Var_Samp_Order_By = { + height?: InputMaybe; +}; + +/** order by variance() on columns of table "validator_description" */ +export type Provider_Validator_Description_Variance_Order_By = { + height?: InputMaybe; +}; + +/** columns and relationships of "validator_info" */ +export type Provider_Validator_Info = { + __typename?: 'provider_validator_info'; + /** An object relationship */ + account?: Maybe; + consensus_address: Scalars['String']; + max_change_rate: Scalars['String']; + max_rate: Scalars['String']; + operator_address: Scalars['String']; + self_delegate_address?: Maybe; + /** An object relationship */ + validator: Provider_Validator; +}; + +/** order by aggregate values of table "validator_info" */ +export type Provider_Validator_Info_Aggregate_Order_By = { + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_info". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; + validator?: InputMaybe; +}; + +/** order by max() on columns of table "validator_info" */ +export type Provider_Validator_Info_Max_Order_By = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +/** order by min() on columns of table "validator_info" */ +export type Provider_Validator_Info_Min_Order_By = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_info". */ +export type Provider_Validator_Info_Order_By = { + account?: InputMaybe; + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; + validator?: InputMaybe; +}; + +/** select columns of table "validator_info" */ +export enum Provider_Validator_Info_Select_Column { + /** column name */ + ConsensusAddress = 'consensus_address', + /** column name */ + MaxChangeRate = 'max_change_rate', + /** column name */ + MaxRate = 'max_rate', + /** column name */ + OperatorAddress = 'operator_address', + /** column name */ + SelfDelegateAddress = 'self_delegate_address' +} + +/** Streaming cursor of the table "validator_info" */ +export type Provider_Validator_Info_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Info_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Info_Stream_Cursor_Value_Input = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator". */ +export type Provider_Validator_Order_By = { + blocks_aggregate?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes_aggregate?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + validator_commissions_aggregate?: InputMaybe; + validator_descriptions_aggregate?: InputMaybe; + validator_info?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + validator_signing_infos_aggregate?: InputMaybe; + validator_statuses_aggregate?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** select columns of table "validator" */ +export enum Provider_Validator_Select_Column { + /** column name */ + ConsensusAddress = 'consensus_address', + /** column name */ + ConsensusPubkey = 'consensus_pubkey' +} + +/** columns and relationships of "validator_signing_info" */ +export type Provider_Validator_Signing_Info = { + __typename?: 'provider_validator_signing_info'; + height: Scalars['bigint']; + index_offset: Scalars['bigint']; + jailed_until: Scalars['timestamp']; + missed_blocks_counter: Scalars['bigint']; + start_height: Scalars['bigint']; + tombstoned: Scalars['Boolean']; + validator_address: Scalars['String']; +}; + +/** order by aggregate values of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Avg_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_signing_info". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Signing_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by max() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Max_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by min() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Min_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_signing_info". */ +export type Provider_Validator_Signing_Info_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** select columns of table "validator_signing_info" */ +export enum Provider_Validator_Signing_Info_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + IndexOffset = 'index_offset', + /** column name */ + JailedUntil = 'jailed_until', + /** column name */ + MissedBlocksCounter = 'missed_blocks_counter', + /** column name */ + StartHeight = 'start_height', + /** column name */ + Tombstoned = 'tombstoned', + /** column name */ + ValidatorAddress = 'validator_address' +} + +/** order by stddev() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Stddev_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Stddev_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Stddev_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Signing_Info_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Signing_Info_Stream_Cursor_Value_Input = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by sum() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Sum_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Var_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Var_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by variance() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Variance_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** columns and relationships of "validator_status" */ +export type Provider_Validator_Status = { + __typename?: 'provider_validator_status'; + height: Scalars['bigint']; + jailed: Scalars['Boolean']; + status: Scalars['Int']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; +}; + +/** aggregated selection of "validator_status" */ +export type Provider_Validator_Status_Aggregate = { + __typename?: 'provider_validator_status_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "validator_status" */ +export type Provider_Validator_Status_Aggregate_Fields = { + __typename?: 'provider_validator_status_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 "validator_status" */ +export type Provider_Validator_Status_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "validator_status" */ +export type Provider_Validator_Status_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Provider_Validator_Status_Avg_Fields = { + __typename?: 'provider_validator_status_avg_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by avg() on columns of table "validator_status" */ +export type Provider_Validator_Status_Avg_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_status". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Status_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Provider_Validator_Status_Max_Fields = { + __typename?: 'provider_validator_status_max_fields'; + height?: Maybe; + status?: Maybe; + validator_address?: Maybe; +}; + +/** order by max() on columns of table "validator_status" */ +export type Provider_Validator_Status_Max_Order_By = { + height?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Provider_Validator_Status_Min_Fields = { + __typename?: 'provider_validator_status_min_fields'; + height?: Maybe; + status?: Maybe; + validator_address?: Maybe; +}; + +/** order by min() on columns of table "validator_status" */ +export type Provider_Validator_Status_Min_Order_By = { + height?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_status". */ +export type Provider_Validator_Status_Order_By = { + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** select columns of table "validator_status" */ +export enum Provider_Validator_Status_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Jailed = 'jailed', + /** column name */ + Status = 'status', + /** column name */ + ValidatorAddress = 'validator_address' +} + +/** select "validator_status_aggregate_bool_exp_bool_and_arguments_columns" columns of table "validator_status" */ +export enum Provider_Validator_Status_Select_Column_Validator_Status_Aggregate_Bool_Exp_Bool_And_Arguments_Columns { + /** column name */ + Jailed = 'jailed' +} + +/** select "validator_status_aggregate_bool_exp_bool_or_arguments_columns" columns of table "validator_status" */ +export enum Provider_Validator_Status_Select_Column_Validator_Status_Aggregate_Bool_Exp_Bool_Or_Arguments_Columns { + /** column name */ + Jailed = 'jailed' +} + +/** aggregate stddev on columns */ +export type Provider_Validator_Status_Stddev_Fields = { + __typename?: 'provider_validator_status_stddev_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by stddev() on columns of table "validator_status" */ +export type Provider_Validator_Status_Stddev_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Provider_Validator_Status_Stddev_Pop_Fields = { + __typename?: 'provider_validator_status_stddev_pop_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by stddev_pop() on columns of table "validator_status" */ +export type Provider_Validator_Status_Stddev_Pop_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Provider_Validator_Status_Stddev_Samp_Fields = { + __typename?: 'provider_validator_status_stddev_samp_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by stddev_samp() on columns of table "validator_status" */ +export type Provider_Validator_Status_Stddev_Samp_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_status" */ +export type Provider_Validator_Status_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Status_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Status_Stream_Cursor_Value_Input = { + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Provider_Validator_Status_Sum_Fields = { + __typename?: 'provider_validator_status_sum_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by sum() on columns of table "validator_status" */ +export type Provider_Validator_Status_Sum_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Provider_Validator_Status_Var_Pop_Fields = { + __typename?: 'provider_validator_status_var_pop_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by var_pop() on columns of table "validator_status" */ +export type Provider_Validator_Status_Var_Pop_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Provider_Validator_Status_Var_Samp_Fields = { + __typename?: 'provider_validator_status_var_samp_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by var_samp() on columns of table "validator_status" */ +export type Provider_Validator_Status_Var_Samp_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Provider_Validator_Status_Variance_Fields = { + __typename?: 'provider_validator_status_variance_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by variance() on columns of table "validator_status" */ +export type Provider_Validator_Status_Variance_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** Streaming cursor of the table "validator" */ +export type Provider_Validator_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Stream_Cursor_Value_Input = { + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; +}; + +/** columns and relationships of "validator_voting_power" */ +export type Provider_Validator_Voting_Power = { + __typename?: 'provider_validator_voting_power'; + /** An object relationship */ + block: Provider_Block; + height: Scalars['bigint']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** aggregated selection of "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Aggregate = { + __typename?: 'provider_validator_voting_power_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Aggregate_Fields = { + __typename?: 'provider_validator_voting_power_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 "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Provider_Validator_Voting_Power_Avg_Fields = { + __typename?: 'provider_validator_voting_power_avg_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by avg() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Avg_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_voting_power". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Voting_Power_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + height?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Provider_Validator_Voting_Power_Max_Fields = { + __typename?: 'provider_validator_voting_power_max_fields'; + height?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by max() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Max_Order_By = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Provider_Validator_Voting_Power_Min_Fields = { + __typename?: 'provider_validator_voting_power_min_fields'; + height?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by min() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Min_Order_By = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_voting_power". */ +export type Provider_Validator_Voting_Power_Order_By = { + block?: InputMaybe; + height?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "validator_voting_power" */ +export enum Provider_Validator_Voting_Power_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** aggregate stddev on columns */ +export type Provider_Validator_Voting_Power_Stddev_Fields = { + __typename?: 'provider_validator_voting_power_stddev_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Stddev_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Provider_Validator_Voting_Power_Stddev_Pop_Fields = { + __typename?: 'provider_validator_voting_power_stddev_pop_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_pop() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Stddev_Pop_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Provider_Validator_Voting_Power_Stddev_Samp_Fields = { + __typename?: 'provider_validator_voting_power_stddev_samp_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_samp() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Stddev_Samp_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Voting_Power_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Voting_Power_Stream_Cursor_Value_Input = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Provider_Validator_Voting_Power_Sum_Fields = { + __typename?: 'provider_validator_voting_power_sum_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by sum() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Sum_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Provider_Validator_Voting_Power_Var_Pop_Fields = { + __typename?: 'provider_validator_voting_power_var_pop_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_pop() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Var_Pop_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Provider_Validator_Voting_Power_Var_Samp_Fields = { + __typename?: 'provider_validator_voting_power_var_samp_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_samp() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Var_Samp_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Provider_Validator_Voting_Power_Variance_Fields = { + __typename?: 'provider_validator_voting_power_variance_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by variance() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Variance_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** columns and relationships of "vesting_account" */ +export type Provider_Vesting_Account = { + __typename?: 'provider_vesting_account'; + /** An object relationship */ + account: Provider_Account; + address: Scalars['String']; + end_time: Scalars['timestamp']; + original_vesting: Scalars['_coin']; + start_time?: Maybe; + type: Scalars['String']; + /** An array relationship */ + vesting_periods: Array; +}; + + +/** columns and relationships of "vesting_account" */ +export type Provider_Vesting_AccountVesting_PeriodsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "vesting_account" */ +export type Provider_Vesting_Account_Aggregate_Order_By = { + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "vesting_account". All fields are combined with a logical 'AND'. */ +export type Provider_Vesting_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe<_Coin_Comparison_Exp>; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods?: InputMaybe; +}; + +/** order by max() on columns of table "vesting_account" */ +export type Provider_Vesting_Account_Max_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +/** order by min() on columns of table "vesting_account" */ +export type Provider_Vesting_Account_Min_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +/** Ordering options when selecting data from "vesting_account". */ +export type Provider_Vesting_Account_Order_By = { + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods_aggregate?: InputMaybe; +}; + +/** select columns of table "vesting_account" */ +export enum Provider_Vesting_Account_Select_Column { + /** column name */ + Address = 'address', + /** column name */ + EndTime = 'end_time', + /** column name */ + OriginalVesting = 'original_vesting', + /** column name */ + StartTime = 'start_time', + /** column name */ + Type = 'type' +} + +/** Streaming cursor of the table "vesting_account" */ +export type Provider_Vesting_Account_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Vesting_Account_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Vesting_Account_Stream_Cursor_Value_Input = { + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +/** columns and relationships of "vesting_period" */ +export type Provider_Vesting_Period = { + __typename?: 'provider_vesting_period'; + amount: Scalars['_coin']; + length: Scalars['bigint']; + period_order: Scalars['bigint']; + /** An object relationship */ + vesting_account: Provider_Vesting_Account; +}; + +/** order by aggregate values of table "vesting_period" */ +export type Provider_Vesting_Period_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Avg_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "vesting_period". All fields are combined with a logical 'AND'. */ +export type Provider_Vesting_Period_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe<_Coin_Comparison_Exp>; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; +}; + +/** order by max() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Max_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by min() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Min_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** Ordering options when selecting data from "vesting_period". */ +export type Provider_Vesting_Period_Order_By = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; +}; + +/** select columns of table "vesting_period" */ +export enum Provider_Vesting_Period_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + Length = 'length', + /** column name */ + PeriodOrder = 'period_order' +} + +/** order by stddev() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Stddev_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Stddev_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Stddev_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** Streaming cursor of the table "vesting_period" */ +export type Provider_Vesting_Period_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Vesting_Period_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Vesting_Period_Stream_Cursor_Value_Input = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by sum() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Sum_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by var_pop() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Var_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by var_samp() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Var_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by variance() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Variance_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +export type Query_Root = { + __typename?: 'query_root'; + /** fetch data from the table: "account" */ + account: Array; + /** fetch data from the table: "account" using primary key columns */ + account_by_pk?: Maybe; + action_account_balance?: Maybe; + /** fetch data from the table: "average_block_time_from_genesis" */ + average_block_time_from_genesis: Array; + /** fetch data from the table: "average_block_time_per_day" */ + average_block_time_per_day: Array; + /** fetch data from the table: "average_block_time_per_hour" */ + average_block_time_per_hour: Array; + /** fetch data from the table: "average_block_time_per_minute" */ + average_block_time_per_minute: Array; + bdjuno_provider?: Maybe; + /** fetch data from the table: "block" */ + block: Array; + /** fetch data from the table: "block" using primary key columns */ + block_by_pk?: Maybe; + /** fetch data from the table: "ccv_consumer_chain" */ + ccv_consumer_chain: Array; + /** fetch aggregated fields from the table: "ccv_consumer_chain" */ + ccv_consumer_chain_aggregate: Ccv_Consumer_Chain_Aggregate; + /** fetch data from the table: "ccv_consumer_params" */ + ccv_consumer_params: Array; + /** fetch aggregated fields from the table: "ccv_consumer_params" */ + ccv_consumer_params_aggregate: Ccv_Consumer_Params_Aggregate; + /** fetch data from the table: "ccv_consumer_params" using primary key columns */ + ccv_consumer_params_by_pk?: Maybe; + /** fetch data from the table: "ccv_validator" */ + ccv_validator: Array; + /** fetch data from the table: "ccv_validator" using primary key columns */ + ccv_validator_by_pk?: Maybe; + /** fetch data from the table: "fee_grant_allowance" */ + fee_grant_allowance: Array; + /** fetch data from the table: "genesis" */ + genesis: Array; + /** fetch data from the table: "message" */ + message: Array; + /** execute function "messages_by_address" which returns "message" */ + messages_by_address: Array; + /** fetch data from the table: "modules" */ + modules: Array; + /** fetch data from the table: "modules" using primary key columns */ + modules_by_pk?: Maybe; + /** fetch data from the table: "pre_commit" */ + pre_commit: Array; + /** fetch aggregated fields from the table: "pre_commit" */ + pre_commit_aggregate: Pre_Commit_Aggregate; + provider?: Maybe; + /** fetch data from the table: "slashing_params" */ + slashing_params: Array; + /** fetch data from the table: "supply" */ + supply: Array; + /** fetch data from the table: "token" */ + token: Array; + /** fetch data from the table: "token_price" */ + token_price: Array; + /** fetch data from the table: "token_price_history" */ + token_price_history: Array; + /** fetch data from the table: "token_unit" */ + token_unit: Array; + /** fetch data from the table: "transaction" */ + transaction: Array; + /** fetch data from the table: "validator" */ + validator: Array; + /** fetch data from the table: "validator" using primary key columns */ + validator_by_pk?: Maybe; + /** fetch data from the table: "validator_signing_info" */ + validator_signing_info: Array; + /** fetch data from the table: "validator_signing_info" using primary key columns */ + validator_signing_info_by_pk?: Maybe; + /** fetch data from the table: "vesting_account" */ + vesting_account: Array; + /** fetch data from the table: "vesting_period" */ + vesting_period: Array; + /** fetch data from the table: "wasm_code" */ + wasm_code: Array; + /** fetch aggregated fields from the table: "wasm_code" */ + wasm_code_aggregate: Wasm_Code_Aggregate; + /** fetch data from the table: "wasm_contract" */ + wasm_contract: Array; + /** fetch aggregated fields from the table: "wasm_contract" */ + wasm_contract_aggregate: Wasm_Contract_Aggregate; + /** fetch data from the table: "wasm_execute_contract" */ + wasm_execute_contract: Array; + /** fetch aggregated fields from the table: "wasm_execute_contract" */ + wasm_execute_contract_aggregate: Wasm_Execute_Contract_Aggregate; + /** fetch data from the table: "wasm_params" */ + wasm_params: Array; + /** fetch aggregated fields from the table: "wasm_params" */ + wasm_params_aggregate: Wasm_Params_Aggregate; + /** fetch data from the table: "wasm_params" using primary key columns */ + wasm_params_by_pk?: Maybe; +}; + + +export type Query_RootAccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootAccount_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Query_RootAction_Account_BalanceArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Query_RootAverage_Block_Time_From_GenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootAverage_Block_Time_Per_DayArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootAverage_Block_Time_Per_HourArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootAverage_Block_Time_Per_MinuteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootBlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootBlock_By_PkArgs = { + height: Scalars['bigint']; +}; + + +export type Query_RootCcv_Consumer_ChainArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootCcv_Consumer_Chain_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootCcv_Consumer_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootCcv_Consumer_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootCcv_Consumer_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Query_RootCcv_ValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootCcv_Validator_By_PkArgs = { + consumer_consensus_address: Scalars['String']; +}; + + +export type Query_RootFee_Grant_AllowanceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootGenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootMessageArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootMessages_By_AddressArgs = { + args: Messages_By_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootModulesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootModules_By_PkArgs = { + module_name: Scalars['String']; +}; + + +export type Query_RootPre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootPre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootSlashing_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootSupplyArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootTokenArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootToken_PriceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootToken_Price_HistoryArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootToken_UnitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootTransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Query_RootValidator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Query_RootVesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootVesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_CodeArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Code_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Execute_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Execute_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + +/** columns and relationships of "slashing_params" */ +export type Slashing_Params = { + __typename?: 'slashing_params'; + height: Scalars['bigint']; + params: Scalars['jsonb']; +}; + + +/** columns and relationships of "slashing_params" */ +export type Slashing_ParamsParamsArgs = { + path?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "slashing_params". All fields are combined with a logical 'AND'. */ +export type Slashing_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + params?: InputMaybe; +}; + +/** Ordering options when selecting data from "slashing_params". */ +export type Slashing_Params_Order_By = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** select columns of table "slashing_params" */ +export enum Slashing_Params_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Params = 'params' +} + +/** Streaming cursor of the table "slashing_params" */ +export type Slashing_Params_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Slashing_Params_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Slashing_Params_Stream_Cursor_Value_Input = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "smallint". All fields are combined with logical 'AND'. */ +export type Smallint_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Subscription_Root = { + __typename?: 'subscription_root'; + /** fetch data from the table: "account" */ + account: Array; + /** fetch data from the table: "account" using primary key columns */ + account_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "account" */ + account_stream: Array; + /** fetch data from the table: "average_block_time_from_genesis" */ + average_block_time_from_genesis: Array; + /** fetch data from the table in a streaming manner: "average_block_time_from_genesis" */ + average_block_time_from_genesis_stream: Array; + /** fetch data from the table: "average_block_time_per_day" */ + average_block_time_per_day: Array; + /** fetch data from the table in a streaming manner: "average_block_time_per_day" */ + average_block_time_per_day_stream: Array; + /** fetch data from the table: "average_block_time_per_hour" */ + average_block_time_per_hour: Array; + /** fetch data from the table in a streaming manner: "average_block_time_per_hour" */ + average_block_time_per_hour_stream: Array; + /** fetch data from the table: "average_block_time_per_minute" */ + average_block_time_per_minute: Array; + /** fetch data from the table in a streaming manner: "average_block_time_per_minute" */ + average_block_time_per_minute_stream: Array; + /** fetch data from the table: "block" */ + block: Array; + /** fetch data from the table: "block" using primary key columns */ + block_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "block" */ + block_stream: Array; + /** fetch data from the table: "ccv_consumer_chain" */ + ccv_consumer_chain: Array; + /** fetch aggregated fields from the table: "ccv_consumer_chain" */ + ccv_consumer_chain_aggregate: Ccv_Consumer_Chain_Aggregate; + /** fetch data from the table in a streaming manner: "ccv_consumer_chain" */ + ccv_consumer_chain_stream: Array; + /** fetch data from the table: "ccv_consumer_params" */ + ccv_consumer_params: Array; + /** fetch aggregated fields from the table: "ccv_consumer_params" */ + ccv_consumer_params_aggregate: Ccv_Consumer_Params_Aggregate; + /** fetch data from the table: "ccv_consumer_params" using primary key columns */ + ccv_consumer_params_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "ccv_consumer_params" */ + ccv_consumer_params_stream: Array; + /** fetch data from the table: "ccv_validator" */ + ccv_validator: Array; + /** fetch data from the table: "ccv_validator" using primary key columns */ + ccv_validator_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "ccv_validator" */ + ccv_validator_stream: Array; + /** fetch data from the table: "fee_grant_allowance" */ + fee_grant_allowance: Array; + /** fetch data from the table in a streaming manner: "fee_grant_allowance" */ + fee_grant_allowance_stream: Array; + /** fetch data from the table: "genesis" */ + genesis: Array; + /** fetch data from the table in a streaming manner: "genesis" */ + genesis_stream: Array; + /** fetch data from the table: "message" */ + message: Array; + /** fetch data from the table in a streaming manner: "message" */ + message_stream: Array; + /** execute function "messages_by_address" which returns "message" */ + messages_by_address: Array; + /** fetch data from the table: "modules" */ + modules: Array; + /** fetch data from the table: "modules" using primary key columns */ + modules_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "modules" */ + modules_stream: Array; + /** fetch data from the table: "pre_commit" */ + pre_commit: Array; + /** fetch aggregated fields from the table: "pre_commit" */ + pre_commit_aggregate: Pre_Commit_Aggregate; + /** fetch data from the table in a streaming manner: "pre_commit" */ + pre_commit_stream: Array; + provider?: Maybe; + /** fetch data from the table: "slashing_params" */ + slashing_params: Array; + /** fetch data from the table in a streaming manner: "slashing_params" */ + slashing_params_stream: Array; + /** fetch data from the table: "supply" */ + supply: Array; + /** fetch data from the table in a streaming manner: "supply" */ + supply_stream: Array; + /** fetch data from the table: "token" */ + token: Array; + /** fetch data from the table: "token_price" */ + token_price: Array; + /** fetch data from the table: "token_price_history" */ + token_price_history: Array; + /** fetch data from the table in a streaming manner: "token_price_history" */ + token_price_history_stream: Array; + /** fetch data from the table in a streaming manner: "token_price" */ + token_price_stream: Array; + /** fetch data from the table in a streaming manner: "token" */ + token_stream: Array; + /** fetch data from the table: "token_unit" */ + token_unit: Array; + /** fetch data from the table in a streaming manner: "token_unit" */ + token_unit_stream: Array; + /** fetch data from the table: "transaction" */ + transaction: Array; + /** fetch data from the table in a streaming manner: "transaction" */ + transaction_stream: Array; + /** fetch data from the table: "validator" */ + validator: Array; + /** fetch data from the table: "validator" using primary key columns */ + validator_by_pk?: Maybe; + /** fetch data from the table: "validator_signing_info" */ + validator_signing_info: Array; + /** fetch data from the table: "validator_signing_info" using primary key columns */ + validator_signing_info_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_signing_info" */ + validator_signing_info_stream: Array; + /** fetch data from the table in a streaming manner: "validator" */ + validator_stream: Array; + /** fetch data from the table: "vesting_account" */ + vesting_account: Array; + /** fetch data from the table in a streaming manner: "vesting_account" */ + vesting_account_stream: Array; + /** fetch data from the table: "vesting_period" */ + vesting_period: Array; + /** fetch data from the table in a streaming manner: "vesting_period" */ + vesting_period_stream: Array; + /** fetch data from the table: "wasm_code" */ + wasm_code: Array; + /** fetch aggregated fields from the table: "wasm_code" */ + wasm_code_aggregate: Wasm_Code_Aggregate; + /** fetch data from the table in a streaming manner: "wasm_code" */ + wasm_code_stream: Array; + /** fetch data from the table: "wasm_contract" */ + wasm_contract: Array; + /** fetch aggregated fields from the table: "wasm_contract" */ + wasm_contract_aggregate: Wasm_Contract_Aggregate; + /** fetch data from the table in a streaming manner: "wasm_contract" */ + wasm_contract_stream: Array; + /** fetch data from the table: "wasm_execute_contract" */ + wasm_execute_contract: Array; + /** fetch aggregated fields from the table: "wasm_execute_contract" */ + wasm_execute_contract_aggregate: Wasm_Execute_Contract_Aggregate; + /** fetch data from the table in a streaming manner: "wasm_execute_contract" */ + wasm_execute_contract_stream: Array; + /** fetch data from the table: "wasm_params" */ + wasm_params: Array; + /** fetch aggregated fields from the table: "wasm_params" */ + wasm_params_aggregate: Wasm_Params_Aggregate; + /** fetch data from the table: "wasm_params" using primary key columns */ + wasm_params_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "wasm_params" */ + wasm_params_stream: Array; +}; + + +export type Subscription_RootAccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootAccount_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Subscription_RootAccount_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_From_GenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_From_Genesis_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_DayArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_Day_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_HourArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_Hour_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_MinuteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_Minute_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootBlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootBlock_By_PkArgs = { + height: Scalars['bigint']; +}; + + +export type Subscription_RootBlock_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_Consumer_ChainArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_Consumer_Chain_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_Consumer_Chain_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_Consumer_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_Consumer_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_Consumer_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Subscription_RootCcv_Consumer_Params_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_ValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_Validator_By_PkArgs = { + consumer_consensus_address: Scalars['String']; +}; + + +export type Subscription_RootCcv_Validator_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootFee_Grant_AllowanceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootFee_Grant_Allowance_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootGenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootGenesis_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootMessageArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootMessage_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootMessages_By_AddressArgs = { + args: Messages_By_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootModulesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootModules_By_PkArgs = { + module_name: Scalars['String']; +}; + + +export type Subscription_RootModules_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootPre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootPre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootPre_Commit_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootSlashing_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootSlashing_Params_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootSupplyArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootSupply_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootTokenArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_PriceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_Price_HistoryArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_Price_History_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_Price_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_UnitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_Unit_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootTransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootTransaction_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Subscription_RootValidator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Subscription_RootValidator_Signing_Info_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootVesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootVesting_Account_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootVesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootVesting_Period_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_CodeArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Code_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Code_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Contract_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Execute_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Execute_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Execute_Contract_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Subscription_RootWasm_Params_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + +/** columns and relationships of "supply" */ +export type Supply = { + __typename?: 'supply'; + coins: Scalars['_coin']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "supply". All fields are combined with a logical 'AND'. */ +export type Supply_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + coins?: InputMaybe<_Coin_Comparison_Exp>; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "supply". */ +export type Supply_Order_By = { + coins?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "supply" */ +export enum Supply_Select_Column { + /** column name */ + Coins = 'coins', + /** column name */ + Height = 'height' +} + +/** Streaming cursor of the table "supply" */ +export type Supply_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Supply_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Supply_Stream_Cursor_Value_Input = { + coins?: InputMaybe; + height?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "timestamp". All fields are combined with logical 'AND'. */ +export type Timestamp_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "timestamptz". All fields are combined with logical 'AND'. */ +export type Timestamptz_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "token" */ +export type Token = { + __typename?: 'token'; + name: Scalars['String']; + /** An array relationship */ + token_units: Array; +}; + + +/** columns and relationships of "token" */ +export type TokenToken_UnitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "token". All fields are combined with a logical 'AND'. */ +export type Token_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + name?: InputMaybe; + token_units?: InputMaybe; +}; + +/** Ordering options when selecting data from "token". */ +export type Token_Order_By = { + name?: InputMaybe; + token_units_aggregate?: InputMaybe; +}; + +/** columns and relationships of "token_price" */ +export type Token_Price = { + __typename?: 'token_price'; + market_cap: Scalars['bigint']; + price: Scalars['numeric']; + timestamp: Scalars['timestamp']; + /** An object relationship */ + token_unit: Token_Unit; + unit_name: Scalars['String']; +}; + +/** order by aggregate values of table "token_price" */ +export type Token_Price_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "token_price" */ +export type Token_Price_Avg_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "token_price". All fields are combined with a logical 'AND'. */ +export type Token_Price_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** columns and relationships of "token_price_history" */ +export type Token_Price_History = { + __typename?: 'token_price_history'; + market_cap: Scalars['bigint']; + price: Scalars['numeric']; + timestamp: Scalars['timestamp']; + /** An object relationship */ + token_unit: Token_Unit; + unit_name: Scalars['String']; +}; + +/** order by aggregate values of table "token_price_history" */ +export type Token_Price_History_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "token_price_history" */ +export type Token_Price_History_Avg_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "token_price_history". All fields are combined with a logical 'AND'. */ +export type Token_Price_History_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** order by max() on columns of table "token_price_history" */ +export type Token_Price_History_Max_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** order by min() on columns of table "token_price_history" */ +export type Token_Price_History_Min_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** Ordering options when selecting data from "token_price_history". */ +export type Token_Price_History_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** select columns of table "token_price_history" */ +export enum Token_Price_History_Select_Column { + /** column name */ + MarketCap = 'market_cap', + /** column name */ + Price = 'price', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + UnitName = 'unit_name' +} + +/** order by stddev() on columns of table "token_price_history" */ +export type Token_Price_History_Stddev_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "token_price_history" */ +export type Token_Price_History_Stddev_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "token_price_history" */ +export type Token_Price_History_Stddev_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** Streaming cursor of the table "token_price_history" */ +export type Token_Price_History_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Token_Price_History_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Token_Price_History_Stream_Cursor_Value_Input = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** order by sum() on columns of table "token_price_history" */ +export type Token_Price_History_Sum_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by var_pop() on columns of table "token_price_history" */ +export type Token_Price_History_Var_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by var_samp() on columns of table "token_price_history" */ +export type Token_Price_History_Var_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by variance() on columns of table "token_price_history" */ +export type Token_Price_History_Variance_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by max() on columns of table "token_price" */ +export type Token_Price_Max_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** order by min() on columns of table "token_price" */ +export type Token_Price_Min_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** Ordering options when selecting data from "token_price". */ +export type Token_Price_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** select columns of table "token_price" */ +export enum Token_Price_Select_Column { + /** column name */ + MarketCap = 'market_cap', + /** column name */ + Price = 'price', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + UnitName = 'unit_name' +} + +/** order by stddev() on columns of table "token_price" */ +export type Token_Price_Stddev_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "token_price" */ +export type Token_Price_Stddev_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "token_price" */ +export type Token_Price_Stddev_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** Streaming cursor of the table "token_price" */ +export type Token_Price_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Token_Price_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Token_Price_Stream_Cursor_Value_Input = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** order by sum() on columns of table "token_price" */ +export type Token_Price_Sum_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by var_pop() on columns of table "token_price" */ +export type Token_Price_Var_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by var_samp() on columns of table "token_price" */ +export type Token_Price_Var_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by variance() on columns of table "token_price" */ +export type Token_Price_Variance_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** select columns of table "token" */ +export enum Token_Select_Column { + /** column name */ + Name = 'name' +} + +/** Streaming cursor of the table "token" */ +export type Token_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Token_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Token_Stream_Cursor_Value_Input = { + name?: InputMaybe; +}; + +/** columns and relationships of "token_unit" */ +export type Token_Unit = { + __typename?: 'token_unit'; + aliases?: Maybe; + denom: Scalars['String']; + exponent: Scalars['Int']; + price_id?: Maybe; + /** An object relationship */ + token: Token; + token_name: Scalars['String']; + /** An object relationship */ + token_price?: Maybe; + /** An array relationship */ + token_price_histories: Array; + /** An array relationship */ + token_prices: Array; +}; + + +/** columns and relationships of "token_unit" */ +export type Token_UnitToken_Price_HistoriesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "token_unit" */ +export type Token_UnitToken_PricesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "token_unit" */ +export type Token_Unit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "token_unit" */ +export type Token_Unit_Avg_Order_By = { + exponent?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "token_unit". All fields are combined with a logical 'AND'. */ +export type Token_Unit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + aliases?: InputMaybe<_Text_Comparison_Exp>; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token?: InputMaybe; + token_name?: InputMaybe; + token_price?: InputMaybe; + token_price_histories?: InputMaybe; + token_prices?: InputMaybe; +}; + +/** order by max() on columns of table "token_unit" */ +export type Token_Unit_Max_Order_By = { + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; +}; + +/** order by min() on columns of table "token_unit" */ +export type Token_Unit_Min_Order_By = { + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; +}; + +/** Ordering options when selecting data from "token_unit". */ +export type Token_Unit_Order_By = { + aliases?: InputMaybe; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token?: InputMaybe; + token_name?: InputMaybe; + token_price?: InputMaybe; + token_price_histories_aggregate?: InputMaybe; + token_prices_aggregate?: InputMaybe; +}; + +/** select columns of table "token_unit" */ +export enum Token_Unit_Select_Column { + /** column name */ + Aliases = 'aliases', + /** column name */ + Denom = 'denom', + /** column name */ + Exponent = 'exponent', + /** column name */ + PriceId = 'price_id', + /** column name */ + TokenName = 'token_name' +} + +/** order by stddev() on columns of table "token_unit" */ +export type Token_Unit_Stddev_Order_By = { + exponent?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "token_unit" */ +export type Token_Unit_Stddev_Pop_Order_By = { + exponent?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "token_unit" */ +export type Token_Unit_Stddev_Samp_Order_By = { + exponent?: InputMaybe; +}; + +/** Streaming cursor of the table "token_unit" */ +export type Token_Unit_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Token_Unit_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Token_Unit_Stream_Cursor_Value_Input = { + aliases?: InputMaybe; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; +}; + +/** order by sum() on columns of table "token_unit" */ +export type Token_Unit_Sum_Order_By = { + exponent?: InputMaybe; +}; + +/** order by var_pop() on columns of table "token_unit" */ +export type Token_Unit_Var_Pop_Order_By = { + exponent?: InputMaybe; +}; + +/** order by var_samp() on columns of table "token_unit" */ +export type Token_Unit_Var_Samp_Order_By = { + exponent?: InputMaybe; +}; + +/** order by variance() on columns of table "token_unit" */ +export type Token_Unit_Variance_Order_By = { + exponent?: InputMaybe; +}; + +/** columns and relationships of "transaction" */ +export type Transaction = { + __typename?: 'transaction'; + /** An object relationship */ + block: Block; + fee: Scalars['jsonb']; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash: Scalars['String']; + height: Scalars['bigint']; + logs?: Maybe; + memo?: Maybe; + messages: Scalars['jsonb']; + /** An array relationship */ + messagesByTransactionHashPartitionId: Array; + raw_log?: Maybe; + signatures: Scalars['_text']; + signer_infos: Scalars['jsonb']; + success: Scalars['Boolean']; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionFeeArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionLogsArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionMessagesArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionMessagesByTransactionHashPartitionIdArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionSigner_InfosArgs = { + path?: InputMaybe; +}; + +/** order by aggregate values of table "transaction" */ +export type Transaction_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "transaction" */ +export type Transaction_Avg_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "transaction". All fields are combined with a logical 'AND'. */ +export type Transaction_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + messagesByTransactionHashPartitionId?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe<_Text_Comparison_Exp>; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** order by max() on columns of table "transaction" */ +export type Transaction_Max_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + raw_log?: InputMaybe; +}; + +/** order by min() on columns of table "transaction" */ +export type Transaction_Min_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + raw_log?: InputMaybe; +}; + +/** Ordering options when selecting data from "transaction". */ +export type Transaction_Order_By = { + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + messagesByTransactionHashPartitionId_aggregate?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** select columns of table "transaction" */ +export enum Transaction_Select_Column { + /** column name */ + Fee = 'fee', + /** column name */ + GasUsed = 'gas_used', + /** column name */ + GasWanted = 'gas_wanted', + /** column name */ + Hash = 'hash', + /** column name */ + Height = 'height', + /** column name */ + Logs = 'logs', + /** column name */ + Memo = 'memo', + /** column name */ + Messages = 'messages', + /** column name */ + RawLog = 'raw_log', + /** column name */ + Signatures = 'signatures', + /** column name */ + SignerInfos = 'signer_infos', + /** column name */ + Success = 'success' +} + +/** order by stddev() on columns of table "transaction" */ +export type Transaction_Stddev_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "transaction" */ +export type Transaction_Stddev_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "transaction" */ +export type Transaction_Stddev_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** Streaming cursor of the table "transaction" */ +export type Transaction_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Transaction_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Transaction_Stream_Cursor_Value_Input = { + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** order by sum() on columns of table "transaction" */ +export type Transaction_Sum_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "transaction" */ +export type Transaction_Var_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "transaction" */ +export type Transaction_Var_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by variance() on columns of table "transaction" */ +export type Transaction_Variance_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "validator" */ +export type Validator = { + __typename?: 'validator'; + /** An array relationship */ + blocks: Array; + consensus_address: Scalars['String']; + consensus_pubkey: Scalars['String']; + /** An array relationship */ + pre_commits: Array; + /** An aggregate relationship */ + pre_commits_aggregate: Pre_Commit_Aggregate; + /** An array relationship */ + validator_signing_infos: Array; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorBlocksArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorValidator_Signing_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator". All fields are combined with a logical 'AND'. */ +export type Validator_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + blocks?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + pre_commits?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + validator_signing_infos?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator". */ +export type Validator_Order_By = { + blocks_aggregate?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + validator_signing_infos_aggregate?: InputMaybe; +}; + +/** select columns of table "validator" */ +export enum Validator_Select_Column { + /** column name */ + ConsensusAddress = 'consensus_address', + /** column name */ + ConsensusPubkey = 'consensus_pubkey' +} + +/** columns and relationships of "validator_signing_info" */ +export type Validator_Signing_Info = { + __typename?: 'validator_signing_info'; + /** An object relationship */ + ccv_validator_signing_info?: Maybe; + height: Scalars['bigint']; + index_offset: Scalars['bigint']; + jailed_until: Scalars['timestamp']; + missed_blocks_counter: Scalars['bigint']; + start_height: Scalars['bigint']; + tombstoned: Scalars['Boolean']; + validator_address: Scalars['String']; +}; + +/** order by aggregate values of table "validator_signing_info" */ +export type Validator_Signing_Info_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Avg_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_signing_info". All fields are combined with a logical 'AND'. */ +export type Validator_Signing_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + ccv_validator_signing_info?: InputMaybe; + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by max() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Max_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by min() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Min_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_signing_info". */ +export type Validator_Signing_Info_Order_By = { + ccv_validator_signing_info?: InputMaybe; + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** select columns of table "validator_signing_info" */ +export enum Validator_Signing_Info_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + IndexOffset = 'index_offset', + /** column name */ + JailedUntil = 'jailed_until', + /** column name */ + MissedBlocksCounter = 'missed_blocks_counter', + /** column name */ + StartHeight = 'start_height', + /** column name */ + Tombstoned = 'tombstoned', + /** column name */ + ValidatorAddress = 'validator_address' +} + +/** order by stddev() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Stddev_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Stddev_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Stddev_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_signing_info" */ +export type Validator_Signing_Info_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Validator_Signing_Info_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Validator_Signing_Info_Stream_Cursor_Value_Input = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by sum() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Sum_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Var_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Var_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by variance() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Variance_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Validator_Status_Aggregate_Bool_Exp = { + bool_and?: InputMaybe; + bool_or?: InputMaybe; + count?: InputMaybe; +}; + +export type Validator_Status_Aggregate_Bool_Exp_Bool_And = { + arguments: Provider_Validator_Status_Select_Column_Validator_Status_Aggregate_Bool_Exp_Bool_And_Arguments_Columns; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Boolean_Comparison_Exp; +}; + +export type Validator_Status_Aggregate_Bool_Exp_Bool_Or = { + arguments: Provider_Validator_Status_Select_Column_Validator_Status_Aggregate_Bool_Exp_Bool_Or_Arguments_Columns; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Boolean_Comparison_Exp; +}; + +export type Validator_Status_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + +/** Streaming cursor of the table "validator" */ +export type Validator_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Validator_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Validator_Stream_Cursor_Value_Input = { + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; +}; + +export type Validator_Voting_Power_Aggregate_Bool_Exp = { + count?: InputMaybe; +}; + +export type Validator_Voting_Power_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + +/** columns and relationships of "vesting_account" */ +export type Vesting_Account = { + __typename?: 'vesting_account'; + /** An object relationship */ + account: Account; + address: Scalars['String']; + end_time: Scalars['timestamp']; + original_vesting: Scalars['_coin']; + start_time?: Maybe; + type: Scalars['String']; + /** An array relationship */ + vesting_periods: Array; +}; + + +/** columns and relationships of "vesting_account" */ +export type Vesting_AccountVesting_PeriodsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "vesting_account" */ +export type Vesting_Account_Aggregate_Order_By = { + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "vesting_account". All fields are combined with a logical 'AND'. */ +export type Vesting_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe<_Coin_Comparison_Exp>; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods?: InputMaybe; +}; + +/** order by max() on columns of table "vesting_account" */ +export type Vesting_Account_Max_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +/** order by min() on columns of table "vesting_account" */ +export type Vesting_Account_Min_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +/** Ordering options when selecting data from "vesting_account". */ +export type Vesting_Account_Order_By = { + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods_aggregate?: InputMaybe; +}; + +/** select columns of table "vesting_account" */ +export enum Vesting_Account_Select_Column { + /** column name */ + Address = 'address', + /** column name */ + EndTime = 'end_time', + /** column name */ + OriginalVesting = 'original_vesting', + /** column name */ + StartTime = 'start_time', + /** column name */ + Type = 'type' +} + +/** Streaming cursor of the table "vesting_account" */ +export type Vesting_Account_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Vesting_Account_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Vesting_Account_Stream_Cursor_Value_Input = { + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +/** columns and relationships of "vesting_period" */ +export type Vesting_Period = { + __typename?: 'vesting_period'; + amount: Scalars['_coin']; + length: Scalars['bigint']; + period_order: Scalars['bigint']; + /** An object relationship */ + vesting_account: Vesting_Account; +}; + +/** order by aggregate values of table "vesting_period" */ +export type Vesting_Period_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "vesting_period" */ +export type Vesting_Period_Avg_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "vesting_period". All fields are combined with a logical 'AND'. */ +export type Vesting_Period_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe<_Coin_Comparison_Exp>; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; +}; + +/** order by max() on columns of table "vesting_period" */ +export type Vesting_Period_Max_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by min() on columns of table "vesting_period" */ +export type Vesting_Period_Min_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** Ordering options when selecting data from "vesting_period". */ +export type Vesting_Period_Order_By = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; +}; + +/** select columns of table "vesting_period" */ +export enum Vesting_Period_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + Length = 'length', + /** column name */ + PeriodOrder = 'period_order' +} + +/** order by stddev() on columns of table "vesting_period" */ +export type Vesting_Period_Stddev_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "vesting_period" */ +export type Vesting_Period_Stddev_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "vesting_period" */ +export type Vesting_Period_Stddev_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** Streaming cursor of the table "vesting_period" */ +export type Vesting_Period_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Vesting_Period_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Vesting_Period_Stream_Cursor_Value_Input = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by sum() on columns of table "vesting_period" */ +export type Vesting_Period_Sum_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by var_pop() on columns of table "vesting_period" */ +export type Vesting_Period_Var_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by var_samp() on columns of table "vesting_period" */ +export type Vesting_Period_Var_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by variance() on columns of table "vesting_period" */ +export type Vesting_Period_Variance_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** columns and relationships of "wasm_code" */ +export type Wasm_Code = { + __typename?: 'wasm_code'; + byte_code: Scalars['bytea']; + code_id: Scalars['bigint']; + height: Scalars['bigint']; + instantiate_permission?: Maybe; + sender?: Maybe; + /** An array relationship */ + wasm_contracts: Array; + /** An aggregate relationship */ + wasm_contracts_aggregate: Wasm_Contract_Aggregate; +}; + + +/** columns and relationships of "wasm_code" */ +export type Wasm_CodeWasm_ContractsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "wasm_code" */ +export type Wasm_CodeWasm_Contracts_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** aggregated selection of "wasm_code" */ +export type Wasm_Code_Aggregate = { + __typename?: 'wasm_code_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "wasm_code" */ +export type Wasm_Code_Aggregate_Fields = { + __typename?: 'wasm_code_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 "wasm_code" */ +export type Wasm_Code_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Code_Avg_Fields = { + __typename?: 'wasm_code_avg_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** Boolean expression to filter rows from the table "wasm_code". All fields are combined with a logical 'AND'. */ +export type Wasm_Code_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + byte_code?: InputMaybe; + code_id?: InputMaybe; + height?: InputMaybe; + instantiate_permission?: InputMaybe; + sender?: InputMaybe; + wasm_contracts?: InputMaybe; + wasm_contracts_aggregate?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Code_Max_Fields = { + __typename?: 'wasm_code_max_fields'; + code_id?: Maybe; + height?: Maybe; + instantiate_permission?: Maybe; + sender?: Maybe; +}; + +/** aggregate min on columns */ +export type Wasm_Code_Min_Fields = { + __typename?: 'wasm_code_min_fields'; + code_id?: Maybe; + height?: Maybe; + instantiate_permission?: Maybe; + sender?: Maybe; +}; + +/** Ordering options when selecting data from "wasm_code". */ +export type Wasm_Code_Order_By = { + byte_code?: InputMaybe; + code_id?: InputMaybe; + height?: InputMaybe; + instantiate_permission?: InputMaybe; + sender?: InputMaybe; + wasm_contracts_aggregate?: InputMaybe; +}; + +/** select columns of table "wasm_code" */ +export enum Wasm_Code_Select_Column { + /** column name */ + ByteCode = 'byte_code', + /** column name */ + CodeId = 'code_id', + /** column name */ + Height = 'height', + /** column name */ + InstantiatePermission = 'instantiate_permission', + /** column name */ + Sender = 'sender' +} + +/** aggregate stddev on columns */ +export type Wasm_Code_Stddev_Fields = { + __typename?: 'wasm_code_stddev_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Wasm_Code_Stddev_Pop_Fields = { + __typename?: 'wasm_code_stddev_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Wasm_Code_Stddev_Samp_Fields = { + __typename?: 'wasm_code_stddev_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** Streaming cursor of the table "wasm_code" */ +export type Wasm_Code_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Wasm_Code_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Wasm_Code_Stream_Cursor_Value_Input = { + byte_code?: InputMaybe; + code_id?: InputMaybe; + height?: InputMaybe; + instantiate_permission?: InputMaybe; + sender?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Wasm_Code_Sum_Fields = { + __typename?: 'wasm_code_sum_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Wasm_Code_Var_Pop_Fields = { + __typename?: 'wasm_code_var_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Wasm_Code_Var_Samp_Fields = { + __typename?: 'wasm_code_var_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate variance on columns */ +export type Wasm_Code_Variance_Fields = { + __typename?: 'wasm_code_variance_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** columns and relationships of "wasm_contract" */ +export type Wasm_Contract = { + __typename?: 'wasm_contract'; + /** An object relationship */ + account: Account; + admin?: Maybe; + code_id: Scalars['bigint']; + contract_address: Scalars['String']; + contract_info_extension?: Maybe; + contract_states: Scalars['jsonb']; + creator: Scalars['String']; + data?: Maybe; + funds: Scalars['_coin']; + height: Scalars['bigint']; + instantiated_at: Scalars['timestamp']; + label?: Maybe; + raw_contract_message: Scalars['jsonb']; + sender?: Maybe; + /** An object relationship */ + wasm_code: Wasm_Code; + /** An array relationship */ + wasm_execute_contracts: Array; + /** An aggregate relationship */ + wasm_execute_contracts_aggregate: Wasm_Execute_Contract_Aggregate; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractContract_StatesArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractRaw_Contract_MessageArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractWasm_Execute_ContractsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractWasm_Execute_Contracts_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** aggregated selection of "wasm_contract" */ +export type Wasm_Contract_Aggregate = { + __typename?: 'wasm_contract_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Wasm_Contract_Aggregate_Bool_Exp = { + count?: InputMaybe; +}; + +export type Wasm_Contract_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + +/** aggregate fields of "wasm_contract" */ +export type Wasm_Contract_Aggregate_Fields = { + __typename?: 'wasm_contract_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 "wasm_contract" */ +export type Wasm_Contract_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "wasm_contract" */ +export type Wasm_Contract_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Contract_Avg_Fields = { + __typename?: 'wasm_contract_avg_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by avg() on columns of table "wasm_contract" */ +export type Wasm_Contract_Avg_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "wasm_contract". All fields are combined with a logical 'AND'. */ +export type Wasm_Contract_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + contract_states?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + funds?: InputMaybe<_Coin_Comparison_Exp>; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_code?: InputMaybe; + wasm_execute_contracts?: InputMaybe; + wasm_execute_contracts_aggregate?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Contract_Max_Fields = { + __typename?: 'wasm_contract_max_fields'; + admin?: Maybe; + code_id?: Maybe; + contract_address?: Maybe; + contract_info_extension?: Maybe; + creator?: Maybe; + data?: Maybe; + height?: Maybe; + instantiated_at?: Maybe; + label?: Maybe; + sender?: Maybe; +}; + +/** order by max() on columns of table "wasm_contract" */ +export type Wasm_Contract_Max_Order_By = { + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + sender?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Wasm_Contract_Min_Fields = { + __typename?: 'wasm_contract_min_fields'; + admin?: Maybe; + code_id?: Maybe; + contract_address?: Maybe; + contract_info_extension?: Maybe; + creator?: Maybe; + data?: Maybe; + height?: Maybe; + instantiated_at?: Maybe; + label?: Maybe; + sender?: Maybe; +}; + +/** order by min() on columns of table "wasm_contract" */ +export type Wasm_Contract_Min_Order_By = { + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + sender?: InputMaybe; +}; + +/** Ordering options when selecting data from "wasm_contract". */ +export type Wasm_Contract_Order_By = { + account?: InputMaybe; + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + contract_states?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + funds?: InputMaybe; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_code?: InputMaybe; + wasm_execute_contracts_aggregate?: InputMaybe; +}; + +/** select columns of table "wasm_contract" */ +export enum Wasm_Contract_Select_Column { + /** column name */ + Admin = 'admin', + /** column name */ + CodeId = 'code_id', + /** column name */ + ContractAddress = 'contract_address', + /** column name */ + ContractInfoExtension = 'contract_info_extension', + /** column name */ + ContractStates = 'contract_states', + /** column name */ + Creator = 'creator', + /** column name */ + Data = 'data', + /** column name */ + Funds = 'funds', + /** column name */ + Height = 'height', + /** column name */ + InstantiatedAt = 'instantiated_at', + /** column name */ + Label = 'label', + /** column name */ + RawContractMessage = 'raw_contract_message', + /** column name */ + Sender = 'sender' +} + +/** aggregate stddev on columns */ +export type Wasm_Contract_Stddev_Fields = { + __typename?: 'wasm_contract_stddev_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by stddev() on columns of table "wasm_contract" */ +export type Wasm_Contract_Stddev_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Wasm_Contract_Stddev_Pop_Fields = { + __typename?: 'wasm_contract_stddev_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by stddev_pop() on columns of table "wasm_contract" */ +export type Wasm_Contract_Stddev_Pop_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Wasm_Contract_Stddev_Samp_Fields = { + __typename?: 'wasm_contract_stddev_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by stddev_samp() on columns of table "wasm_contract" */ +export type Wasm_Contract_Stddev_Samp_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** Streaming cursor of the table "wasm_contract" */ +export type Wasm_Contract_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Wasm_Contract_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Wasm_Contract_Stream_Cursor_Value_Input = { + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + contract_states?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + funds?: InputMaybe; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Wasm_Contract_Sum_Fields = { + __typename?: 'wasm_contract_sum_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by sum() on columns of table "wasm_contract" */ +export type Wasm_Contract_Sum_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Wasm_Contract_Var_Pop_Fields = { + __typename?: 'wasm_contract_var_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by var_pop() on columns of table "wasm_contract" */ +export type Wasm_Contract_Var_Pop_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Wasm_Contract_Var_Samp_Fields = { + __typename?: 'wasm_contract_var_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by var_samp() on columns of table "wasm_contract" */ +export type Wasm_Contract_Var_Samp_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Wasm_Contract_Variance_Fields = { + __typename?: 'wasm_contract_variance_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by variance() on columns of table "wasm_contract" */ +export type Wasm_Contract_Variance_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "wasm_execute_contract" */ +export type Wasm_Execute_Contract = { + __typename?: 'wasm_execute_contract'; + contract_address: Scalars['String']; + data?: Maybe; + executed_at: Scalars['timestamp']; + funds: Scalars['_coin']; + height: Scalars['bigint']; + raw_contract_message: Scalars['jsonb']; + sender: Scalars['String']; + /** An object relationship */ + wasm_contract: Wasm_Contract; +}; + + +/** columns and relationships of "wasm_execute_contract" */ +export type Wasm_Execute_ContractRaw_Contract_MessageArgs = { + path?: InputMaybe; +}; + +/** aggregated selection of "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate = { + __typename?: 'wasm_execute_contract_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Wasm_Execute_Contract_Aggregate_Bool_Exp = { + count?: InputMaybe; +}; + +export type Wasm_Execute_Contract_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + +/** aggregate fields of "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate_Fields = { + __typename?: 'wasm_execute_contract_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 "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Execute_Contract_Avg_Fields = { + __typename?: 'wasm_execute_contract_avg_fields'; + height?: Maybe; +}; + +/** order by avg() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Avg_Order_By = { + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "wasm_execute_contract". All fields are combined with a logical 'AND'. */ +export type Wasm_Execute_Contract_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + funds?: InputMaybe<_Coin_Comparison_Exp>; + height?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_contract?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Execute_Contract_Max_Fields = { + __typename?: 'wasm_execute_contract_max_fields'; + contract_address?: Maybe; + data?: Maybe; + executed_at?: Maybe; + height?: Maybe; + sender?: Maybe; +}; + +/** order by max() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Max_Order_By = { + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + height?: InputMaybe; + sender?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Wasm_Execute_Contract_Min_Fields = { + __typename?: 'wasm_execute_contract_min_fields'; + contract_address?: Maybe; + data?: Maybe; + executed_at?: Maybe; + height?: Maybe; + sender?: Maybe; +}; + +/** order by min() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Min_Order_By = { + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + height?: InputMaybe; + sender?: InputMaybe; +}; + +/** Ordering options when selecting data from "wasm_execute_contract". */ +export type Wasm_Execute_Contract_Order_By = { + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + funds?: InputMaybe; + height?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_contract?: InputMaybe; +}; + +/** select columns of table "wasm_execute_contract" */ +export enum Wasm_Execute_Contract_Select_Column { + /** column name */ + ContractAddress = 'contract_address', + /** column name */ + Data = 'data', + /** column name */ + ExecutedAt = 'executed_at', + /** column name */ + Funds = 'funds', + /** column name */ + Height = 'height', + /** column name */ + RawContractMessage = 'raw_contract_message', + /** column name */ + Sender = 'sender' +} + +/** aggregate stddev on columns */ +export type Wasm_Execute_Contract_Stddev_Fields = { + __typename?: 'wasm_execute_contract_stddev_fields'; + height?: Maybe; +}; + +/** order by stddev() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Stddev_Order_By = { + height?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Wasm_Execute_Contract_Stddev_Pop_Fields = { + __typename?: 'wasm_execute_contract_stddev_pop_fields'; + height?: Maybe; +}; + +/** order by stddev_pop() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Stddev_Pop_Order_By = { + height?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Wasm_Execute_Contract_Stddev_Samp_Fields = { + __typename?: 'wasm_execute_contract_stddev_samp_fields'; + height?: Maybe; +}; + +/** order by stddev_samp() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Stddev_Samp_Order_By = { + height?: InputMaybe; +}; + +/** Streaming cursor of the table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Wasm_Execute_Contract_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Wasm_Execute_Contract_Stream_Cursor_Value_Input = { + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + funds?: InputMaybe; + height?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Wasm_Execute_Contract_Sum_Fields = { + __typename?: 'wasm_execute_contract_sum_fields'; + height?: Maybe; +}; + +/** order by sum() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Sum_Order_By = { + height?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Wasm_Execute_Contract_Var_Pop_Fields = { + __typename?: 'wasm_execute_contract_var_pop_fields'; + height?: Maybe; +}; + +/** order by var_pop() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Var_Pop_Order_By = { + height?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Wasm_Execute_Contract_Var_Samp_Fields = { + __typename?: 'wasm_execute_contract_var_samp_fields'; + height?: Maybe; +}; + +/** order by var_samp() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Var_Samp_Order_By = { + height?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Wasm_Execute_Contract_Variance_Fields = { + __typename?: 'wasm_execute_contract_variance_fields'; + height?: Maybe; +}; + +/** order by variance() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Variance_Order_By = { + height?: InputMaybe; +}; + +/** columns and relationships of "wasm_params" */ +export type Wasm_Params = { + __typename?: 'wasm_params'; + code_upload_access: Scalars['access_config_scalar']; + height: Scalars['bigint']; + instantiate_default_permission: Scalars['Int']; + one_row_id: Scalars['Boolean']; +}; + +/** aggregated selection of "wasm_params" */ +export type Wasm_Params_Aggregate = { + __typename?: 'wasm_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "wasm_params" */ +export type Wasm_Params_Aggregate_Fields = { + __typename?: 'wasm_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 "wasm_params" */ +export type Wasm_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Params_Avg_Fields = { + __typename?: 'wasm_params_avg_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** Boolean expression to filter rows from the table "wasm_params". All fields are combined with a logical 'AND'. */ +export type Wasm_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + code_upload_access?: InputMaybe; + height?: InputMaybe; + instantiate_default_permission?: InputMaybe; + one_row_id?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Params_Max_Fields = { + __typename?: 'wasm_params_max_fields'; + code_upload_access?: Maybe; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate min on columns */ +export type Wasm_Params_Min_Fields = { + __typename?: 'wasm_params_min_fields'; + code_upload_access?: Maybe; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** Ordering options when selecting data from "wasm_params". */ +export type Wasm_Params_Order_By = { + code_upload_access?: InputMaybe; + height?: InputMaybe; + instantiate_default_permission?: InputMaybe; + one_row_id?: InputMaybe; +}; + +/** select columns of table "wasm_params" */ +export enum Wasm_Params_Select_Column { + /** column name */ + CodeUploadAccess = 'code_upload_access', + /** column name */ + Height = 'height', + /** column name */ + InstantiateDefaultPermission = 'instantiate_default_permission', + /** column name */ + OneRowId = 'one_row_id' +} + +/** aggregate stddev on columns */ +export type Wasm_Params_Stddev_Fields = { + __typename?: 'wasm_params_stddev_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Wasm_Params_Stddev_Pop_Fields = { + __typename?: 'wasm_params_stddev_pop_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Wasm_Params_Stddev_Samp_Fields = { + __typename?: 'wasm_params_stddev_samp_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** Streaming cursor of the table "wasm_params" */ +export type Wasm_Params_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Wasm_Params_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Wasm_Params_Stream_Cursor_Value_Input = { + code_upload_access?: InputMaybe; + height?: InputMaybe; + instantiate_default_permission?: InputMaybe; + one_row_id?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Wasm_Params_Sum_Fields = { + __typename?: 'wasm_params_sum_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Wasm_Params_Var_Pop_Fields = { + __typename?: 'wasm_params_var_pop_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Wasm_Params_Var_Samp_Fields = { + __typename?: 'wasm_params_var_samp_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate variance on columns */ +export type Wasm_Params_Variance_Fields = { + __typename?: 'wasm_params_variance_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +export type BlockDetailsQueryVariables = Exact<{ + height?: InputMaybe; + signatureHeight?: InputMaybe; +}>; + + +export type BlockDetailsQuery = { transaction: Array<{ __typename?: 'transaction', height: any, hash: string, messages: any, success: boolean, logs?: any | null }>, block: Array<{ __typename?: 'block', height: any, hash: string, timestamp: any, txs?: number | null, validator?: { __typename?: 'validator', validatorInfo: Array<{ __typename?: 'validator_signing_info', operatorAddress: string }> } | null }>, preCommitsAggregate: { __typename?: 'pre_commit_aggregate', aggregate?: { __typename?: 'pre_commit_aggregate_fields', sum?: { __typename?: 'pre_commit_sum_fields', votingPower?: any | null } | null } | null }, preCommits: Array<{ __typename?: 'pre_commit', validator: { __typename?: 'validator', validatorInfo: Array<{ __typename?: 'validator_signing_info', operatorAddress: string }> } }> }; + +export type LatestBlockHeightListenerSubscriptionVariables = Exact<{ + offset?: InputMaybe; +}>; + + +export type LatestBlockHeightListenerSubscription = { height: Array<{ __typename?: 'block', height: any }> }; + +export type AverageBlockTimeQueryVariables = Exact<{ [key: string]: never; }>; + + +export type AverageBlockTimeQuery = { averageBlockTime: Array<{ __typename?: 'average_block_time_per_hour', averageTime: any }> }; + +export type LatestBlockTimestampQueryVariables = Exact<{ + offset?: InputMaybe; +}>; + + +export type LatestBlockTimestampQuery = { block: Array<{ __typename?: 'block', timestamp: any }> }; + +export type BlocksListenerSubscriptionVariables = Exact<{ + limit?: InputMaybe; + offset?: InputMaybe; +}>; + + +export type BlocksListenerSubscription = { blocks: Array<{ __typename?: 'block', height: any, hash: string, timestamp: any, txs?: number | null, ccv_validator?: { __typename?: 'ccv_validator', consumer_operator_address: string } | null, validator?: { __typename?: 'validator', validatorInfo: Array<{ __typename?: 'validator_signing_info', operatorAddress: string, ccv_validator_signing_info?: { __typename?: 'ccv_validator', providerOperatorAddress: string } | null }> } | null }> }; + +export type BlocksQueryVariables = Exact<{ + limit?: InputMaybe; + offset?: InputMaybe; +}>; + + +export type BlocksQuery = { blocks: Array<{ __typename?: 'block', height: any, hash: string, timestamp: any, txs?: number | null, ccv_validator?: { __typename?: 'ccv_validator', consumer_operator_address: string, validator?: { __typename?: 'provider_validator', validatorInfo?: { __typename?: 'provider_validator_info', self_delegate_address?: string | null, operatorAddress: string } | null, validatorDescriptions: Array<{ __typename?: 'provider_validator_description', moniker?: string | null, identity?: string | null }> } | null } | null }> }; + +export type ChainIdQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ChainIdQuery = { genesis: Array<{ __typename?: 'genesis', time: any, chainId: string }> }; + +export type MarketDataQueryVariables = Exact<{ + denom?: InputMaybe; +}>; + + +export type MarketDataQuery = { tokenPrice: Array<{ __typename?: 'token_price', price: any, marketCap: any }>, supply: Array<{ __typename?: 'supply', coins: any }> }; + +export type GetMessagesByAddressQueryVariables = Exact<{ + address?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; + types?: InputMaybe; +}>; + + +export type GetMessagesByAddressQuery = { messagesByAddress: Array<{ __typename?: 'message', transaction?: { __typename?: 'transaction', height: any, hash: string, success: boolean, messages: any, logs?: any | null, block: { __typename?: 'block', height: any, timestamp: any } } | null }> }; + +export type TokenPriceListenerSubscriptionVariables = Exact<{ + denom?: InputMaybe; +}>; + + +export type TokenPriceListenerSubscription = { tokenPrice: Array<{ __typename?: 'token_price', price: any, timestamp: any, marketCap: any, unitName: string }> }; + +export type TokenPriceHistoryQueryVariables = Exact<{ + denom?: InputMaybe; + limit?: InputMaybe; +}>; + + +export type TokenPriceHistoryQuery = { tokenPrice: Array<{ __typename?: 'token_price_history', price: any, timestamp: any }> }; + +export type TokenomicsQueryVariables = Exact<{ [key: string]: never; }>; + + +export type TokenomicsQuery = { supply: Array<{ __typename?: 'supply', coins: any }> }; + +export type TransactionDetailsQueryVariables = Exact<{ + hash?: InputMaybe; +}>; + + +export type TransactionDetailsQuery = { transaction: Array<{ __typename?: 'transaction', logs?: any | null, hash: string, height: any, fee: any, gasUsed?: any | null, gasWanted?: any | null, success: boolean, memo?: string | null, messages: any, rawLog?: string | null, block: { __typename?: 'block', timestamp: any } }> }; + +export type TransactionsListenerSubscriptionVariables = Exact<{ + limit?: InputMaybe; + offset?: InputMaybe; +}>; + + +export type TransactionsListenerSubscription = { transactions: Array<{ __typename?: 'transaction', height: any, hash: string, success: boolean, messages: any, logs?: any | null, block: { __typename?: 'block', timestamp: any } }> }; + +export type TransactionsQueryVariables = Exact<{ + limit?: InputMaybe; + offset?: InputMaybe; +}>; + + +export type TransactionsQuery = { transactions: Array<{ __typename?: 'transaction', height: any, hash: string, success: boolean, messages: any, logs?: any | null, block: { __typename?: 'block', timestamp: any } }> }; + +export type ValidatorsQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ValidatorsQuery = { ccv_validator: Array<{ __typename?: 'ccv_validator', consumer_operator_address: string, validator?: { __typename?: 'provider_validator', validatorStatuses: Array<{ __typename?: 'provider_validator_status', status: number, jailed: boolean, height: any }>, validatorSigningInfos: Array<{ __typename?: 'provider_validator_signing_info', tombstoned: boolean, missedBlocksCounter: any }>, validatorInfo?: { __typename?: 'provider_validator_info', operatorAddress: string, selfDelegateAddress?: string | null } | null, validatorVotingPowers: Array<{ __typename?: 'provider_validator_voting_power', votingPower: any }>, validatorCommissions: Array<{ __typename?: 'provider_validator_commission', commission: any }> } | null }>, bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', slashingParams: Array<{ __typename?: 'bdjuno_provider_slashing_params', params: any }> } | null }; + +export type ProviderCustomValidatorQueryVariables = Exact<{ + providerAddress?: InputMaybe; +}>; + + +export type ProviderCustomValidatorQuery = { ccv_validator: Array<{ __typename?: 'ccv_validator', consumer_operator_address: string, ccv_validator_info?: { __typename?: 'provider_validator_info', operator_address: string, validator: { __typename?: 'provider_validator', validatorDescriptions: Array<{ __typename?: 'provider_validator_description', moniker?: string | null, avatar_url?: string | null, validator_address: string, website?: string | null, details?: string | null }> } } | null }> }; + +export type ConsumerCustomValidatorQueryVariables = Exact<{ + consumerAddress?: InputMaybe; +}>; + + +export type ConsumerCustomValidatorQuery = { ccv_validator: Array<{ __typename?: 'ccv_validator', consumer_operator_address: string, ccv_validator_info?: { __typename?: 'provider_validator_info', operator_address: string, validator: { __typename?: 'provider_validator', validatorDescriptions: Array<{ __typename?: 'provider_validator_description', moniker?: string | null, avatar_url?: string | null, validator_address: string, website?: string | null, details?: string | null }> } } | null }> }; + + +export const BlockDetailsDocument = gql` + query BlockDetails($height: bigint, $signatureHeight: bigint) { + transaction(where: {height: {_eq: $height}}) { + height + hash + messages + success + logs + } + block(limit: 1, where: {height: {_eq: $height}}) { + height + hash + timestamp + txs: num_txs + validator { + validatorInfo: validator_signing_infos { + operatorAddress: validator_address + } + } + } + preCommitsAggregate: pre_commit_aggregate( + where: {height: {_eq: $signatureHeight}} + ) { + aggregate { + sum { + votingPower: voting_power + } + } + } + preCommits: pre_commit(where: {height: {_eq: $signatureHeight}}) { + validator { + validatorInfo: validator_signing_infos { + operatorAddress: validator_address + } + } + } +} + `; + +/** + * __useBlockDetailsQuery__ + * + * To run a query within a React component, call `useBlockDetailsQuery` and pass it any options that fit your needs. + * When your component renders, `useBlockDetailsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useBlockDetailsQuery({ + * variables: { + * height: // value for 'height' + * signatureHeight: // value for 'signatureHeight' + * }, + * }); + */ +export function useBlockDetailsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(BlockDetailsDocument, options); + } +export function useBlockDetailsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(BlockDetailsDocument, options); + } +export type BlockDetailsQueryHookResult = ReturnType; +export type BlockDetailsLazyQueryHookResult = ReturnType; +export type BlockDetailsQueryResult = Apollo.QueryResult; +export const LatestBlockHeightListenerDocument = gql` + subscription LatestBlockHeightListener($offset: Int = 0) { + height: block(order_by: {height: desc}, limit: 1, offset: $offset) { + height + } +} + `; + +/** + * __useLatestBlockHeightListenerSubscription__ + * + * To run a query within a React component, call `useLatestBlockHeightListenerSubscription` and pass it any options that fit your needs. + * When your component renders, `useLatestBlockHeightListenerSubscription` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the subscription, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useLatestBlockHeightListenerSubscription({ + * variables: { + * offset: // value for 'offset' + * }, + * }); + */ +export function useLatestBlockHeightListenerSubscription(baseOptions?: Apollo.SubscriptionHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useSubscription(LatestBlockHeightListenerDocument, options); + } +export type LatestBlockHeightListenerSubscriptionHookResult = ReturnType; +export type LatestBlockHeightListenerSubscriptionResult = Apollo.SubscriptionResult; +export const AverageBlockTimeDocument = gql` + query AverageBlockTime { + averageBlockTime: average_block_time_per_hour( + limit: 1 + order_by: {height: desc} + ) { + averageTime: average_time + } +} + `; + +/** + * __useAverageBlockTimeQuery__ + * + * To run a query within a React component, call `useAverageBlockTimeQuery` and pass it any options that fit your needs. + * When your component renders, `useAverageBlockTimeQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAverageBlockTimeQuery({ + * variables: { + * }, + * }); + */ +export function useAverageBlockTimeQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AverageBlockTimeDocument, options); + } +export function useAverageBlockTimeLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AverageBlockTimeDocument, options); + } +export type AverageBlockTimeQueryHookResult = ReturnType; +export type AverageBlockTimeLazyQueryHookResult = ReturnType; +export type AverageBlockTimeQueryResult = Apollo.QueryResult; +export const LatestBlockTimestampDocument = gql` + query LatestBlockTimestamp($offset: Int = 0) { + block: block(order_by: {height: desc}, limit: 1, offset: $offset) { + timestamp + } +} + `; + +/** + * __useLatestBlockTimestampQuery__ + * + * To run a query within a React component, call `useLatestBlockTimestampQuery` and pass it any options that fit your needs. + * When your component renders, `useLatestBlockTimestampQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useLatestBlockTimestampQuery({ + * variables: { + * offset: // value for 'offset' + * }, + * }); + */ +export function useLatestBlockTimestampQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(LatestBlockTimestampDocument, options); + } +export function useLatestBlockTimestampLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(LatestBlockTimestampDocument, options); + } +export type LatestBlockTimestampQueryHookResult = ReturnType; +export type LatestBlockTimestampLazyQueryHookResult = ReturnType; +export type LatestBlockTimestampQueryResult = Apollo.QueryResult; +export const BlocksListenerDocument = gql` + subscription BlocksListener($limit: Int = 7, $offset: Int = 0) { + blocks: block(limit: $limit, offset: $offset, order_by: {height: desc}) { + height + txs: num_txs + hash + timestamp + ccv_validator { + consumer_operator_address + } + validator { + validatorInfo: validator_signing_infos { + operatorAddress: validator_address + ccv_validator_signing_info { + providerOperatorAddress: provider_operator_address + } + } + } + } +} + `; + +/** + * __useBlocksListenerSubscription__ + * + * To run a query within a React component, call `useBlocksListenerSubscription` and pass it any options that fit your needs. + * When your component renders, `useBlocksListenerSubscription` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the subscription, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useBlocksListenerSubscription({ + * variables: { + * limit: // value for 'limit' + * offset: // value for 'offset' + * }, + * }); + */ +export function useBlocksListenerSubscription(baseOptions?: Apollo.SubscriptionHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useSubscription(BlocksListenerDocument, options); + } +export type BlocksListenerSubscriptionHookResult = ReturnType; +export type BlocksListenerSubscriptionResult = Apollo.SubscriptionResult; +export const BlocksDocument = gql` + query Blocks($limit: Int = 7, $offset: Int = 0) { + blocks: block(limit: $limit, offset: $offset, order_by: {height: desc}) { + height + txs: num_txs + hash + timestamp + ccv_validator { + consumer_operator_address + validator { + validatorInfo: validator_info { + operatorAddress: operator_address + self_delegate_address + } + validatorDescriptions: validator_descriptions( + limit: 1 + order_by: {height: desc} + ) { + moniker + identity + } + } + } + } +} + `; + +/** + * __useBlocksQuery__ + * + * To run a query within a React component, call `useBlocksQuery` and pass it any options that fit your needs. + * When your component renders, `useBlocksQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useBlocksQuery({ + * variables: { + * limit: // value for 'limit' + * offset: // value for 'offset' + * }, + * }); + */ +export function useBlocksQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(BlocksDocument, options); + } +export function useBlocksLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(BlocksDocument, options); + } +export type BlocksQueryHookResult = ReturnType; +export type BlocksLazyQueryHookResult = ReturnType; +export type BlocksQueryResult = Apollo.QueryResult; +export const ChainIdDocument = gql` + query ChainId { + genesis(limit: 1, order_by: {time: desc}) { + chainId: chain_id + time + } +} + `; + +/** + * __useChainIdQuery__ + * + * To run a query within a React component, call `useChainIdQuery` and pass it any options that fit your needs. + * When your component renders, `useChainIdQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useChainIdQuery({ + * variables: { + * }, + * }); + */ +export function useChainIdQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ChainIdDocument, options); + } +export function useChainIdLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ChainIdDocument, options); + } +export type ChainIdQueryHookResult = ReturnType; +export type ChainIdLazyQueryHookResult = ReturnType; +export type ChainIdQueryResult = Apollo.QueryResult; +export const MarketDataDocument = gql` + query MarketData($denom: String) { + tokenPrice: token_price(where: {unit_name: {_eq: $denom}}) { + marketCap: market_cap + price + } + supply { + coins + } +} + `; + +/** + * __useMarketDataQuery__ + * + * To run a query within a React component, call `useMarketDataQuery` and pass it any options that fit your needs. + * When your component renders, `useMarketDataQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useMarketDataQuery({ + * variables: { + * denom: // value for 'denom' + * }, + * }); + */ +export function useMarketDataQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(MarketDataDocument, options); + } +export function useMarketDataLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(MarketDataDocument, options); + } +export type MarketDataQueryHookResult = ReturnType; +export type MarketDataLazyQueryHookResult = ReturnType; +export type MarketDataQueryResult = Apollo.QueryResult; +export const GetMessagesByAddressDocument = gql` + query GetMessagesByAddress($address: _text, $limit: bigint = 50, $offset: bigint = 0, $types: _text = "{}") { + messagesByAddress: messages_by_address( + args: {addresses: $address, types: $types, limit: $limit, offset: $offset} + ) { + transaction { + height + hash + success + messages + logs + block { + height + timestamp + } + } + } +} + `; + +/** + * __useGetMessagesByAddressQuery__ + * + * To run a query within a React component, call `useGetMessagesByAddressQuery` and pass it any options that fit your needs. + * When your component renders, `useGetMessagesByAddressQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetMessagesByAddressQuery({ + * variables: { + * address: // value for 'address' + * limit: // value for 'limit' + * offset: // value for 'offset' + * types: // value for 'types' + * }, + * }); + */ +export function useGetMessagesByAddressQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetMessagesByAddressDocument, options); + } +export function useGetMessagesByAddressLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetMessagesByAddressDocument, options); + } +export type GetMessagesByAddressQueryHookResult = ReturnType; +export type GetMessagesByAddressLazyQueryHookResult = ReturnType; +export type GetMessagesByAddressQueryResult = Apollo.QueryResult; +export const TokenPriceListenerDocument = gql` + subscription TokenPriceListener($denom: String) { + tokenPrice: token_price(where: {unit_name: {_eq: $denom}}) { + price + timestamp + marketCap: market_cap + unitName: unit_name + } +} + `; + +/** + * __useTokenPriceListenerSubscription__ + * + * To run a query within a React component, call `useTokenPriceListenerSubscription` and pass it any options that fit your needs. + * When your component renders, `useTokenPriceListenerSubscription` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the subscription, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTokenPriceListenerSubscription({ + * variables: { + * denom: // value for 'denom' + * }, + * }); + */ +export function useTokenPriceListenerSubscription(baseOptions?: Apollo.SubscriptionHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useSubscription(TokenPriceListenerDocument, options); + } +export type TokenPriceListenerSubscriptionHookResult = ReturnType; +export type TokenPriceListenerSubscriptionResult = Apollo.SubscriptionResult; +export const TokenPriceHistoryDocument = gql` + query TokenPriceHistory($denom: String, $limit: Int = 10) { + tokenPrice: token_price_history( + where: {unit_name: {_eq: $denom}} + limit: $limit + order_by: {timestamp: desc} + ) { + price + timestamp + } +} + `; + +/** + * __useTokenPriceHistoryQuery__ + * + * To run a query within a React component, call `useTokenPriceHistoryQuery` and pass it any options that fit your needs. + * When your component renders, `useTokenPriceHistoryQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTokenPriceHistoryQuery({ + * variables: { + * denom: // value for 'denom' + * limit: // value for 'limit' + * }, + * }); + */ +export function useTokenPriceHistoryQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(TokenPriceHistoryDocument, options); + } +export function useTokenPriceHistoryLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(TokenPriceHistoryDocument, options); + } +export type TokenPriceHistoryQueryHookResult = ReturnType; +export type TokenPriceHistoryLazyQueryHookResult = ReturnType; +export type TokenPriceHistoryQueryResult = Apollo.QueryResult; +export const TokenomicsDocument = gql` + query Tokenomics { + supply: supply(order_by: {height: desc}, limit: 1) { + coins + } +} + `; + +/** + * __useTokenomicsQuery__ + * + * To run a query within a React component, call `useTokenomicsQuery` and pass it any options that fit your needs. + * When your component renders, `useTokenomicsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTokenomicsQuery({ + * variables: { + * }, + * }); + */ +export function useTokenomicsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(TokenomicsDocument, options); + } +export function useTokenomicsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(TokenomicsDocument, options); + } +export type TokenomicsQueryHookResult = ReturnType; +export type TokenomicsLazyQueryHookResult = ReturnType; +export type TokenomicsQueryResult = Apollo.QueryResult; +export const TransactionDetailsDocument = gql` + query TransactionDetails($hash: String) { + transaction(where: {hash: {_eq: $hash}}, limit: 1) { + hash: hash + height: height + block: block { + timestamp: timestamp + } + fee: fee + gasUsed: gas_used + gasWanted: gas_wanted + success: success + memo: memo + messages: messages + logs + rawLog: raw_log + } +} + `; + +/** + * __useTransactionDetailsQuery__ + * + * To run a query within a React component, call `useTransactionDetailsQuery` and pass it any options that fit your needs. + * When your component renders, `useTransactionDetailsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTransactionDetailsQuery({ + * variables: { + * hash: // value for 'hash' + * }, + * }); + */ +export function useTransactionDetailsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(TransactionDetailsDocument, options); + } +export function useTransactionDetailsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(TransactionDetailsDocument, options); + } +export type TransactionDetailsQueryHookResult = ReturnType; +export type TransactionDetailsLazyQueryHookResult = ReturnType; +export type TransactionDetailsQueryResult = Apollo.QueryResult; +export const TransactionsListenerDocument = gql` + subscription TransactionsListener($limit: Int = 7, $offset: Int = 0) { + transactions: transaction( + limit: $limit + offset: $offset + order_by: {height: desc} + ) { + height + hash + success + block { + timestamp + } + messages + logs + } +} + `; + +/** + * __useTransactionsListenerSubscription__ + * + * To run a query within a React component, call `useTransactionsListenerSubscription` and pass it any options that fit your needs. + * When your component renders, `useTransactionsListenerSubscription` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the subscription, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTransactionsListenerSubscription({ + * variables: { + * limit: // value for 'limit' + * offset: // value for 'offset' + * }, + * }); + */ +export function useTransactionsListenerSubscription(baseOptions?: Apollo.SubscriptionHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useSubscription(TransactionsListenerDocument, options); + } +export type TransactionsListenerSubscriptionHookResult = ReturnType; +export type TransactionsListenerSubscriptionResult = Apollo.SubscriptionResult; +export const TransactionsDocument = gql` + query Transactions($limit: Int = 7, $offset: Int = 0) { + transactions: transaction( + limit: $limit + offset: $offset + order_by: {height: desc} + ) { + height + hash + success + block { + timestamp + } + messages + logs + } +} + `; + +/** + * __useTransactionsQuery__ + * + * To run a query within a React component, call `useTransactionsQuery` and pass it any options that fit your needs. + * When your component renders, `useTransactionsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTransactionsQuery({ + * variables: { + * limit: // value for 'limit' + * offset: // value for 'offset' + * }, + * }); + */ +export function useTransactionsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(TransactionsDocument, options); + } +export function useTransactionsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(TransactionsDocument, options); + } +export type TransactionsQueryHookResult = ReturnType; +export type TransactionsLazyQueryHookResult = ReturnType; +export type TransactionsQueryResult = Apollo.QueryResult; +export const ValidatorsDocument = gql` + query Validators { + ccv_validator { + consumer_operator_address + validator { + validatorStatuses: validator_statuses(order_by: {height: desc}, limit: 1) { + status + jailed + height + } + validatorSigningInfos: validator_signing_infos( + order_by: {height: desc} + limit: 1 + ) { + missedBlocksCounter: missed_blocks_counter + tombstoned + } + validatorInfo: validator_info { + operatorAddress: operator_address + selfDelegateAddress: self_delegate_address + } + validatorVotingPowers: validator_voting_powers( + offset: 0 + limit: 1 + order_by: {height: desc} + ) { + votingPower: voting_power + } + validatorCommissions: validator_commissions(order_by: {height: desc}, limit: 1) { + commission + } + validatorSigningInfos: validator_signing_infos( + order_by: {height: desc} + limit: 1 + ) { + missedBlocksCounter: missed_blocks_counter + } + } + } + bdjuno_provider { + slashingParams: slashing_params(order_by: {height: desc}, limit: 1) { + params + } + } +} + `; + +/** + * __useValidatorsQuery__ + * + * To run a query within a React component, call `useValidatorsQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorsQuery({ + * variables: { + * }, + * }); + */ +export function useValidatorsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorsDocument, options); + } +export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorsDocument, options); + } +export type ValidatorsQueryHookResult = ReturnType; +export type ValidatorsLazyQueryHookResult = ReturnType; +export type ValidatorsQueryResult = Apollo.QueryResult; +export const ProviderCustomValidatorDocument = gql` + query ProviderCustomValidator($providerAddress: String) { + ccv_validator(where: {provider_operator_address: {_eq: $providerAddress}}) { + consumer_operator_address + ccv_validator_info { + operator_address + validator { + validatorDescriptions: validator_descriptions { + moniker + avatar_url + validator_address + website + details + } + } + } + } +} + `; + +/** + * __useProviderCustomValidatorQuery__ + * + * To run a query within a React component, call `useProviderCustomValidatorQuery` and pass it any options that fit your needs. + * When your component renders, `useProviderCustomValidatorQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useProviderCustomValidatorQuery({ + * variables: { + * providerAddress: // value for 'providerAddress' + * }, + * }); + */ +export function useProviderCustomValidatorQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ProviderCustomValidatorDocument, options); + } +export function useProviderCustomValidatorLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ProviderCustomValidatorDocument, options); + } +export type ProviderCustomValidatorQueryHookResult = ReturnType; +export type ProviderCustomValidatorLazyQueryHookResult = ReturnType; +export type ProviderCustomValidatorQueryResult = Apollo.QueryResult; +export const ConsumerCustomValidatorDocument = gql` + query ConsumerCustomValidator($consumerAddress: String) { + ccv_validator(where: {consumer_operator_address: {_eq: $consumerAddress}}) { + consumer_operator_address + ccv_validator_info { + operator_address + validator { + validatorDescriptions: validator_descriptions { + moniker + avatar_url + validator_address + website + details + } + } + } + } +} + `; + +/** + * __useConsumerCustomValidatorQuery__ + * + * To run a query within a React component, call `useConsumerCustomValidatorQuery` and pass it any options that fit your needs. + * When your component renders, `useConsumerCustomValidatorQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useConsumerCustomValidatorQuery({ + * variables: { + * consumerAddress: // value for 'consumerAddress' + * }, + * }); + */ +export function useConsumerCustomValidatorQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ConsumerCustomValidatorDocument, options); + } +export function useConsumerCustomValidatorLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ConsumerCustomValidatorDocument, options); + } +export type ConsumerCustomValidatorQueryHookResult = ReturnType; +export type ConsumerCustomValidatorLazyQueryHookResult = ReturnType; +export type ConsumerCustomValidatorQueryResult = Apollo.QueryResult; \ No newline at end of file diff --git a/apps/web-neutron/src/graphql/types/provider_types.ts b/apps/web-neutron/src/graphql/types/provider_types.ts new file mode 100644 index 0000000000..fb256c0a90 --- /dev/null +++ b/apps/web-neutron/src/graphql/types/provider_types.ts @@ -0,0 +1,20586 @@ +import { gql } from '@apollo/client'; +import * as Apollo from '@apollo/client'; +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +const defaultOptions = {} as const; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: string; + String: string; + Boolean: boolean; + Int: number; + Float: number; + ActionCoin: any; + _coin: any; + _text: any; + access_config_scalar: any; + bdjuno_provider_ActionCoin: any; + bdjuno_provider_ActionDelegation: any; + bdjuno_provider_ActionPagination: any; + bdjuno_provider_ActionRedelegation: any; + bdjuno_provider_ActionUnbondingDelegation: any; + bdjuno_provider__coin: any; + bdjuno_provider__dec_coin: any; + bdjuno_provider__text: any; + bdjuno_provider_bigint: any; + bdjuno_provider_jsonb: any; + bdjuno_provider_numeric: any; + bdjuno_provider_smallint: any; + bdjuno_provider_timestamp: any; + bdjuno_provider_timestamptz: any; + bigint: any; + bytea: any; + jsonb: any; + numeric: any; + smallint: any; + timestamp: any; + timestamptz: any; +}; + +export type ActionBalance = { + __typename?: 'ActionBalance'; + coins?: Maybe>>; +}; + +/** Boolean expression to compare columns of type "Boolean". All fields are combined with logical 'AND'. */ +export type Boolean_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "Int". All fields are combined with logical 'AND'. */ +export type Int_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. */ +export type String_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + /** does the column match the given case-insensitive pattern */ + _ilike?: InputMaybe; + _in?: InputMaybe>; + /** does the column match the given POSIX regular expression, case insensitive */ + _iregex?: InputMaybe; + _is_null?: InputMaybe; + /** does the column match the given pattern */ + _like?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + /** does the column NOT match the given case-insensitive pattern */ + _nilike?: InputMaybe; + _nin?: InputMaybe>; + /** does the column NOT match the given POSIX regular expression, case insensitive */ + _niregex?: InputMaybe; + /** does the column NOT match the given pattern */ + _nlike?: InputMaybe; + /** does the column NOT match the given POSIX regular expression, case sensitive */ + _nregex?: InputMaybe; + /** does the column NOT match the given SQL regular expression */ + _nsimilar?: InputMaybe; + /** does the column match the given POSIX regular expression, case sensitive */ + _regex?: InputMaybe; + /** does the column match the given SQL regular expression */ + _similar?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "_coin". All fields are combined with logical 'AND'. */ +export type _Coin_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "_text". All fields are combined with logical 'AND'. */ +export type _Text_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "access_config_scalar". All fields are combined with logical 'AND'. */ +export type Access_Config_Scalar_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "account" */ +export type Account = { + __typename?: 'account'; + address: Scalars['String']; + /** An array relationship */ + feeGrantAllowancesByGranterAddress: Array; + /** An array relationship */ + fee_grant_allowances: Array; + /** An object relationship */ + vesting_account?: Maybe; + /** An array relationship */ + vesting_accounts: Array; + /** An array relationship */ + wasm_contracts: Array; + /** An aggregate relationship */ + wasm_contracts_aggregate: Wasm_Contract_Aggregate; +}; + + +/** columns and relationships of "account" */ +export type AccountFeeGrantAllowancesByGranterAddressArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountFee_Grant_AllowancesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountVesting_AccountsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountWasm_ContractsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountWasm_Contracts_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "account". All fields are combined with a logical 'AND'. */ +export type Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + address?: InputMaybe; + feeGrantAllowancesByGranterAddress?: InputMaybe; + fee_grant_allowances?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts?: InputMaybe; + wasm_contracts?: InputMaybe; + wasm_contracts_aggregate?: InputMaybe; +}; + +/** Ordering options when selecting data from "account". */ +export type Account_Order_By = { + address?: InputMaybe; + feeGrantAllowancesByGranterAddress_aggregate?: InputMaybe; + fee_grant_allowances_aggregate?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts_aggregate?: InputMaybe; + wasm_contracts_aggregate?: InputMaybe; +}; + +/** select columns of table "account" */ +export enum Account_Select_Column { + /** column name */ + Address = 'address' +} + +/** Streaming cursor of the table "account" */ +export type Account_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Account_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Account_Stream_Cursor_Value_Input = { + address?: InputMaybe; +}; + +/** columns and relationships of "average_block_time_from_genesis" */ +export type Average_Block_Time_From_Genesis = { + __typename?: 'average_block_time_from_genesis'; + average_time: Scalars['numeric']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "average_block_time_from_genesis". All fields are combined with a logical 'AND'. */ +export type Average_Block_Time_From_Genesis_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "average_block_time_from_genesis". */ +export type Average_Block_Time_From_Genesis_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "average_block_time_from_genesis" */ +export enum Average_Block_Time_From_Genesis_Select_Column { + /** column name */ + AverageTime = 'average_time', + /** column name */ + Height = 'height' +} + +/** Streaming cursor of the table "average_block_time_from_genesis" */ +export type Average_Block_Time_From_Genesis_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Average_Block_Time_From_Genesis_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Average_Block_Time_From_Genesis_Stream_Cursor_Value_Input = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "average_block_time_per_day" */ +export type Average_Block_Time_Per_Day = { + __typename?: 'average_block_time_per_day'; + average_time: Scalars['numeric']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "average_block_time_per_day". All fields are combined with a logical 'AND'. */ +export type Average_Block_Time_Per_Day_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "average_block_time_per_day". */ +export type Average_Block_Time_Per_Day_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "average_block_time_per_day" */ +export enum Average_Block_Time_Per_Day_Select_Column { + /** column name */ + AverageTime = 'average_time', + /** column name */ + Height = 'height' +} + +/** Streaming cursor of the table "average_block_time_per_day" */ +export type Average_Block_Time_Per_Day_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Average_Block_Time_Per_Day_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Average_Block_Time_Per_Day_Stream_Cursor_Value_Input = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "average_block_time_per_hour" */ +export type Average_Block_Time_Per_Hour = { + __typename?: 'average_block_time_per_hour'; + average_time: Scalars['numeric']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "average_block_time_per_hour". All fields are combined with a logical 'AND'. */ +export type Average_Block_Time_Per_Hour_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "average_block_time_per_hour". */ +export type Average_Block_Time_Per_Hour_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "average_block_time_per_hour" */ +export enum Average_Block_Time_Per_Hour_Select_Column { + /** column name */ + AverageTime = 'average_time', + /** column name */ + Height = 'height' +} + +/** Streaming cursor of the table "average_block_time_per_hour" */ +export type Average_Block_Time_Per_Hour_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Average_Block_Time_Per_Hour_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Average_Block_Time_Per_Hour_Stream_Cursor_Value_Input = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "average_block_time_per_minute" */ +export type Average_Block_Time_Per_Minute = { + __typename?: 'average_block_time_per_minute'; + average_time: Scalars['numeric']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "average_block_time_per_minute". All fields are combined with a logical 'AND'. */ +export type Average_Block_Time_Per_Minute_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "average_block_time_per_minute". */ +export type Average_Block_Time_Per_Minute_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "average_block_time_per_minute" */ +export enum Average_Block_Time_Per_Minute_Select_Column { + /** column name */ + AverageTime = 'average_time', + /** column name */ + Height = 'height' +} + +/** Streaming cursor of the table "average_block_time_per_minute" */ +export type Average_Block_Time_Per_Minute_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Average_Block_Time_Per_Minute_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Average_Block_Time_Per_Minute_Stream_Cursor_Value_Input = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_ActionAddress = { + __typename?: 'bdjuno_provider_ActionAddress'; + address: Scalars['String']; +}; + +export type Bdjuno_Provider_ActionBalance = { + __typename?: 'bdjuno_provider_ActionBalance'; + coins?: Maybe>>; +}; + +export type Bdjuno_Provider_ActionDelegationResponse = { + __typename?: 'bdjuno_provider_ActionDelegationResponse'; + delegations?: Maybe>>; + pagination?: Maybe; +}; + +export type Bdjuno_Provider_ActionDelegationReward = { + __typename?: 'bdjuno_provider_ActionDelegationReward'; + coins?: Maybe>>; + validator_address: Scalars['String']; +}; + +export type Bdjuno_Provider_ActionRedelegationResponse = { + __typename?: 'bdjuno_provider_ActionRedelegationResponse'; + pagination?: Maybe; + redelegations?: Maybe>>; +}; + +export type Bdjuno_Provider_ActionUnbondingDelegationResponse = { + __typename?: 'bdjuno_provider_ActionUnbondingDelegationResponse'; + pagination?: Maybe; + unbonding_delegations?: Maybe>>; +}; + +export type Bdjuno_Provider_ActionValidatorCommissionAmount = { + __typename?: 'bdjuno_provider_ActionValidatorCommissionAmount'; + coins?: Maybe>>; +}; + +export type Bdjuno_Provider_Boolean_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Int_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_String_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _ilike?: InputMaybe; + _in?: InputMaybe>; + _iregex?: InputMaybe; + _is_null?: InputMaybe; + _like?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nilike?: InputMaybe; + _nin?: InputMaybe>; + _niregex?: InputMaybe; + _nlike?: InputMaybe; + _nregex?: InputMaybe; + _nsimilar?: InputMaybe; + _regex?: InputMaybe; + _similar?: InputMaybe; +}; + +export type Bdjuno_Provider__Coin_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider__Dec_Coin_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider__Text_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Account = { + __typename?: 'bdjuno_provider_account'; + address: Scalars['String']; + feeGrantAllowancesByGranterAddress: Array; + feeGrantAllowancesByGranterAddress_aggregate: Bdjuno_Provider_Fee_Grant_Allowance_Aggregate; + fee_grant_allowances: Array; + fee_grant_allowances_aggregate: Bdjuno_Provider_Fee_Grant_Allowance_Aggregate; + proposal_deposits: Array; + proposal_deposits_aggregate: Bdjuno_Provider_Proposal_Deposit_Aggregate; + proposal_votes: Array; + proposal_votes_aggregate: Bdjuno_Provider_Proposal_Vote_Aggregate; + proposals: Array; + proposals_aggregate: Bdjuno_Provider_Proposal_Aggregate; + validator_infos: Array; + validator_infos_aggregate: Bdjuno_Provider_Validator_Info_Aggregate; + vesting_account?: Maybe; + vesting_accounts: Array; + vesting_accounts_aggregate: Bdjuno_Provider_Vesting_Account_Aggregate; +}; + + +export type Bdjuno_Provider_AccountFeeGrantAllowancesByGranterAddressArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountFeeGrantAllowancesByGranterAddress_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountFee_Grant_AllowancesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountFee_Grant_Allowances_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountProposal_Deposits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountProposal_Votes_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountProposalsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountProposals_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountValidator_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountValidator_Infos_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountVesting_AccountsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_AccountVesting_Accounts_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Account_Aggregate = { + __typename?: 'bdjuno_provider_account_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Account_Aggregate_Fields = { + __typename?: 'bdjuno_provider_account_aggregate_fields'; + count: Scalars['Int']; + max?: Maybe; + min?: Maybe; +}; + + +export type Bdjuno_Provider_Account_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + address?: InputMaybe; + feeGrantAllowancesByGranterAddress?: InputMaybe; + fee_grant_allowances?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposals?: InputMaybe; + validator_infos?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts?: InputMaybe; +}; + +export type Bdjuno_Provider_Account_Max_Fields = { + __typename?: 'bdjuno_provider_account_max_fields'; + address?: Maybe; +}; + +export type Bdjuno_Provider_Account_Min_Fields = { + __typename?: 'bdjuno_provider_account_min_fields'; + address?: Maybe; +}; + +export type Bdjuno_Provider_Account_Order_By = { + address?: InputMaybe; + feeGrantAllowancesByGranterAddress_aggregate?: InputMaybe; + fee_grant_allowances_aggregate?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposals_aggregate?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts_aggregate?: InputMaybe; +}; + +export enum Bdjuno_Provider_Account_Select_Column { + Address = 'address' +} + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis'; + average_time: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Aggregate = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Aggregate_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_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; +}; + + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Avg_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_avg_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Max_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_max_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Min_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_min_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Average_Block_Time_From_Genesis_Select_Column { + AverageTime = 'average_time', + Height = 'height' +} + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Stddev_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_stddev_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_stddev_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_stddev_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Sum_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_sum_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_var_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_var_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_From_Genesis_Variance_Fields = { + __typename?: 'bdjuno_provider_average_block_time_from_genesis_variance_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day = { + __typename?: 'bdjuno_provider_average_block_time_per_day'; + average_time: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Aggregate = { + __typename?: 'bdjuno_provider_average_block_time_per_day_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Aggregate_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_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; +}; + + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Avg_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_avg_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Max_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_max_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Min_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_min_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Average_Block_Time_Per_Day_Select_Column { + AverageTime = 'average_time', + Height = 'height' +} + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Stddev_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_stddev_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_stddev_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_stddev_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Sum_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_sum_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_var_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_var_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Day_Variance_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_day_variance_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour = { + __typename?: 'bdjuno_provider_average_block_time_per_hour'; + average_time: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Aggregate = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Aggregate_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_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; +}; + + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Avg_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_avg_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Max_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_max_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Min_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_min_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Average_Block_Time_Per_Hour_Select_Column { + AverageTime = 'average_time', + Height = 'height' +} + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Stddev_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_stddev_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_stddev_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_stddev_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Sum_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_sum_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_var_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_var_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Hour_Variance_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_hour_variance_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute = { + __typename?: 'bdjuno_provider_average_block_time_per_minute'; + average_time: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Aggregate = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Aggregate_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_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; +}; + + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Avg_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_avg_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Max_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_max_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Min_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_min_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Order_By = { + average_time?: InputMaybe; + height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Average_Block_Time_Per_Minute_Select_Column { + AverageTime = 'average_time', + Height = 'height' +} + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Stddev_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_stddev_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_stddev_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_stddev_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Sum_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_sum_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_var_pop_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_var_samp_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Average_Block_Time_Per_Minute_Variance_Fields = { + __typename?: 'bdjuno_provider_average_block_time_per_minute_variance_fields'; + average_time?: Maybe; + height?: Maybe; +}; + +export type Bdjuno_Provider_Bigint_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Block = { + __typename?: 'bdjuno_provider_block'; + hash: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + num_txs?: Maybe; + pre_commits: Array; + pre_commits_aggregate: Bdjuno_Provider_Pre_Commit_Aggregate; + proposal_deposits: Array; + proposal_deposits_aggregate: Bdjuno_Provider_Proposal_Deposit_Aggregate; + proposal_votes: Array; + proposal_votes_aggregate: Bdjuno_Provider_Proposal_Vote_Aggregate; + proposer_address?: Maybe; + timestamp: Scalars['bdjuno_provider_timestamp']; + total_gas?: Maybe; + transactions: Array; + transactions_aggregate: Bdjuno_Provider_Transaction_Aggregate; + validator?: Maybe; + validator_voting_powers: Array; + validator_voting_powers_aggregate: Bdjuno_Provider_Validator_Voting_Power_Aggregate; +}; + + +export type Bdjuno_Provider_BlockPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockProposal_Deposits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockProposal_Votes_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockTransactionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockTransactions_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_BlockValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Aggregate = { + __typename?: 'bdjuno_provider_block_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Block_Aggregate_Fields = { + __typename?: 'bdjuno_provider_block_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; +}; + + +export type Bdjuno_Provider_Block_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Avg_Fields = { + __typename?: 'bdjuno_provider_block_avg_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Avg_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Max_Fields = { + __typename?: 'bdjuno_provider_block_max_fields'; + hash?: Maybe; + height?: Maybe; + num_txs?: Maybe; + proposer_address?: Maybe; + timestamp?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Max_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Min_Fields = { + __typename?: 'bdjuno_provider_block_min_fields'; + hash?: Maybe; + height?: Maybe; + num_txs?: Maybe; + proposer_address?: Maybe; + timestamp?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Min_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions_aggregate?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +export enum Bdjuno_Provider_Block_Select_Column { + Hash = 'hash', + Height = 'height', + NumTxs = 'num_txs', + ProposerAddress = 'proposer_address', + Timestamp = 'timestamp', + TotalGas = 'total_gas' +} + +export type Bdjuno_Provider_Block_Stddev_Fields = { + __typename?: 'bdjuno_provider_block_stddev_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Stddev_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_block_stddev_pop_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Stddev_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_block_stddev_samp_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Stddev_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Sum_Fields = { + __typename?: 'bdjuno_provider_block_sum_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Sum_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_block_var_pop_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Var_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_block_var_samp_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Var_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Block_Variance_Fields = { + __typename?: 'bdjuno_provider_block_variance_fields'; + height?: Maybe; + num_txs?: Maybe; + total_gas?: Maybe; +}; + +export type Bdjuno_Provider_Block_Variance_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +export type Bdjuno_Provider_Community_Pool = { + __typename?: 'bdjuno_provider_community_pool'; + coins: Scalars['bdjuno_provider__dec_coin']; + height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Community_Pool_Aggregate = { + __typename?: 'bdjuno_provider_community_pool_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Community_Pool_Aggregate_Fields = { + __typename?: 'bdjuno_provider_community_pool_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; +}; + + +export type Bdjuno_Provider_Community_Pool_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Community_Pool_Avg_Fields = { + __typename?: 'bdjuno_provider_community_pool_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + coins?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Community_Pool_Max_Fields = { + __typename?: 'bdjuno_provider_community_pool_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Min_Fields = { + __typename?: 'bdjuno_provider_community_pool_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Order_By = { + coins?: InputMaybe; + height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Community_Pool_Select_Column { + Coins = 'coins', + Height = 'height' +} + +export type Bdjuno_Provider_Community_Pool_Stddev_Fields = { + __typename?: 'bdjuno_provider_community_pool_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_community_pool_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_community_pool_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Sum_Fields = { + __typename?: 'bdjuno_provider_community_pool_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_community_pool_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_community_pool_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Community_Pool_Variance_Fields = { + __typename?: 'bdjuno_provider_community_pool_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params = { + __typename?: 'bdjuno_provider_distribution_params'; + height: Scalars['bdjuno_provider_bigint']; + one_row_id: Scalars['Boolean']; + params: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_Distribution_ParamsParamsArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Aggregate = { + __typename?: 'bdjuno_provider_distribution_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Distribution_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_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; +}; + + +export type Bdjuno_Provider_Distribution_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_distribution_params_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Max_Fields = { + __typename?: 'bdjuno_provider_distribution_params_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Min_Fields = { + __typename?: 'bdjuno_provider_distribution_params_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export enum Bdjuno_Provider_Distribution_Params_Select_Column { + Height = 'height', + OneRowId = 'one_row_id', + Params = 'params' +} + +export type Bdjuno_Provider_Distribution_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_distribution_params_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_distribution_params_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_distribution_params_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_distribution_params_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_distribution_params_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_distribution_params_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Distribution_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_distribution_params_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence = { + __typename?: 'bdjuno_provider_double_sign_evidence'; + doubleSignVoteByVoteAId: Bdjuno_Provider_Double_Sign_Vote; + double_sign_vote: Bdjuno_Provider_Double_Sign_Vote; + height: Scalars['bdjuno_provider_bigint']; + vote_a_id: Scalars['bdjuno_provider_bigint']; + vote_b_id: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Aggregate = { + __typename?: 'bdjuno_provider_double_sign_evidence_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Aggregate_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_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; +}; + + +export type Bdjuno_Provider_Double_Sign_Evidence_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Avg_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_avg_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Avg_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Max_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_max_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Max_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Min_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_min_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Min_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Order_By = { + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export enum Bdjuno_Provider_Double_Sign_Evidence_Select_Column { + Height = 'height', + VoteAId = 'vote_a_id', + VoteBId = 'vote_b_id' +} + +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_stddev_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_stddev_pop_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_stddev_samp_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Stddev_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Sum_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_sum_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Sum_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_var_pop_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Var_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_var_samp_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Var_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Variance_Fields = { + __typename?: 'bdjuno_provider_double_sign_evidence_variance_fields'; + height?: Maybe; + vote_a_id?: Maybe; + vote_b_id?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Evidence_Variance_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote = { + __typename?: 'bdjuno_provider_double_sign_vote'; + block_id: Scalars['String']; + doubleSignEvidencesByVoteBId: Array; + doubleSignEvidencesByVoteBId_aggregate: Bdjuno_Provider_Double_Sign_Evidence_Aggregate; + double_sign_evidences: Array; + double_sign_evidences_aggregate: Bdjuno_Provider_Double_Sign_Evidence_Aggregate; + height: Scalars['bdjuno_provider_bigint']; + id: Scalars['Int']; + round: Scalars['Int']; + signature: Scalars['String']; + type: Scalars['bdjuno_provider_smallint']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + validator_index: Scalars['Int']; +}; + + +export type Bdjuno_Provider_Double_Sign_VoteDoubleSignEvidencesByVoteBIdArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Double_Sign_VoteDoubleSignEvidencesByVoteBId_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Double_Sign_VoteDouble_Sign_EvidencesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Double_Sign_VoteDouble_Sign_Evidences_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Aggregate = { + __typename?: 'bdjuno_provider_double_sign_vote_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Aggregate_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_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; +}; + + +export type Bdjuno_Provider_Double_Sign_Vote_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Avg_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_avg_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Avg_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId?: InputMaybe; + double_sign_evidences?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Max_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_max_fields'; + block_id?: Maybe; + height?: Maybe; + id?: Maybe; + round?: Maybe; + signature?: Maybe; + type?: Maybe; + validator_address?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Max_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Min_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_min_fields'; + block_id?: Maybe; + height?: Maybe; + id?: Maybe; + round?: Maybe; + signature?: Maybe; + type?: Maybe; + validator_address?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Min_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Order_By = { + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId_aggregate?: InputMaybe; + double_sign_evidences_aggregate?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +export enum Bdjuno_Provider_Double_Sign_Vote_Select_Column { + BlockId = 'block_id', + Height = 'height', + Id = 'id', + Round = 'round', + Signature = 'signature', + Type = 'type', + ValidatorAddress = 'validator_address', + ValidatorIndex = 'validator_index' +} + +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_stddev_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_stddev_pop_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_stddev_samp_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Sum_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_sum_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Sum_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_var_pop_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_var_samp_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Variance_Fields = { + __typename?: 'bdjuno_provider_double_sign_vote_variance_fields'; + height?: Maybe; + id?: Maybe; + round?: Maybe; + type?: Maybe; + validator_index?: Maybe; +}; + +export type Bdjuno_Provider_Double_Sign_Vote_Variance_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance = { + __typename?: 'bdjuno_provider_fee_grant_allowance'; + allowance: Scalars['bdjuno_provider_jsonb']; + grantee: Bdjuno_Provider_Account; + grantee_address: Scalars['String']; + granter: Bdjuno_Provider_Account; + granter_address: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + id: Scalars['Int']; +}; + + +export type Bdjuno_Provider_Fee_Grant_AllowanceAllowanceArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Aggregate = { + __typename?: 'bdjuno_provider_fee_grant_allowance_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Aggregate_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_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; +}; + + +export type Bdjuno_Provider_Fee_Grant_Allowance_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Avg_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_avg_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Avg_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + allowance?: InputMaybe; + grantee?: InputMaybe; + grantee_address?: InputMaybe; + granter?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Max_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_max_fields'; + grantee_address?: Maybe; + granter_address?: Maybe; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Max_Order_By = { + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Min_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_min_fields'; + grantee_address?: Maybe; + granter_address?: Maybe; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Min_Order_By = { + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Order_By = { + allowance?: InputMaybe; + grantee?: InputMaybe; + grantee_address?: InputMaybe; + granter?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; +}; + +export enum Bdjuno_Provider_Fee_Grant_Allowance_Select_Column { + Allowance = 'allowance', + GranteeAddress = 'grantee_address', + GranterAddress = 'granter_address', + Height = 'height', + Id = 'id' +} + +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_stddev_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_stddev_pop_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_stddev_samp_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Stddev_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Sum_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_sum_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Sum_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_var_pop_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Var_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_var_samp_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Var_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Variance_Fields = { + __typename?: 'bdjuno_provider_fee_grant_allowance_variance_fields'; + height?: Maybe; + id?: Maybe; +}; + +export type Bdjuno_Provider_Fee_Grant_Allowance_Variance_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Genesis = { + __typename?: 'bdjuno_provider_genesis'; + chain_id: Scalars['String']; + initial_height: Scalars['bdjuno_provider_bigint']; + time: Scalars['bdjuno_provider_timestamp']; +}; + +export type Bdjuno_Provider_Genesis_Aggregate = { + __typename?: 'bdjuno_provider_genesis_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Genesis_Aggregate_Fields = { + __typename?: 'bdjuno_provider_genesis_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; +}; + + +export type Bdjuno_Provider_Genesis_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Genesis_Avg_Fields = { + __typename?: 'bdjuno_provider_genesis_avg_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +export type Bdjuno_Provider_Genesis_Max_Fields = { + __typename?: 'bdjuno_provider_genesis_max_fields'; + chain_id?: Maybe; + initial_height?: Maybe; + time?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Min_Fields = { + __typename?: 'bdjuno_provider_genesis_min_fields'; + chain_id?: Maybe; + initial_height?: Maybe; + time?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Order_By = { + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +export enum Bdjuno_Provider_Genesis_Select_Column { + ChainId = 'chain_id', + InitialHeight = 'initial_height', + Time = 'time' +} + +export type Bdjuno_Provider_Genesis_Stddev_Fields = { + __typename?: 'bdjuno_provider_genesis_stddev_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_genesis_stddev_pop_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_genesis_stddev_samp_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Sum_Fields = { + __typename?: 'bdjuno_provider_genesis_sum_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_genesis_var_pop_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_genesis_var_samp_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Genesis_Variance_Fields = { + __typename?: 'bdjuno_provider_genesis_variance_fields'; + initial_height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params = { + __typename?: 'bdjuno_provider_gov_params'; + deposit_params: Scalars['bdjuno_provider_jsonb']; + height: Scalars['bdjuno_provider_bigint']; + one_row_id: Scalars['Boolean']; + tally_params: Scalars['bdjuno_provider_jsonb']; + voting_params: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_Gov_ParamsDeposit_ParamsArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_Gov_ParamsTally_ParamsArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_Gov_ParamsVoting_ParamsArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Gov_Params_Aggregate = { + __typename?: 'bdjuno_provider_gov_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Gov_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_gov_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; +}; + + +export type Bdjuno_Provider_Gov_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Gov_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_gov_params_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + deposit_params?: InputMaybe; + height?: InputMaybe; + one_row_id?: InputMaybe; + tally_params?: InputMaybe; + voting_params?: InputMaybe; +}; + +export type Bdjuno_Provider_Gov_Params_Max_Fields = { + __typename?: 'bdjuno_provider_gov_params_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Min_Fields = { + __typename?: 'bdjuno_provider_gov_params_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Order_By = { + deposit_params?: InputMaybe; + height?: InputMaybe; + one_row_id?: InputMaybe; + tally_params?: InputMaybe; + voting_params?: InputMaybe; +}; + +export enum Bdjuno_Provider_Gov_Params_Select_Column { + DepositParams = 'deposit_params', + Height = 'height', + OneRowId = 'one_row_id', + TallyParams = 'tally_params', + VotingParams = 'voting_params' +} + +export type Bdjuno_Provider_Gov_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_gov_params_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_gov_params_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_gov_params_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_gov_params_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_gov_params_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_gov_params_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Gov_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_gov_params_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Inflation = { + __typename?: 'bdjuno_provider_inflation'; + height: Scalars['bdjuno_provider_bigint']; + value: Scalars['bdjuno_provider_numeric']; +}; + +export type Bdjuno_Provider_Inflation_Aggregate = { + __typename?: 'bdjuno_provider_inflation_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Inflation_Aggregate_Fields = { + __typename?: 'bdjuno_provider_inflation_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; +}; + + +export type Bdjuno_Provider_Inflation_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Inflation_Avg_Fields = { + __typename?: 'bdjuno_provider_inflation_avg_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + value?: InputMaybe; +}; + +export type Bdjuno_Provider_Inflation_Max_Fields = { + __typename?: 'bdjuno_provider_inflation_max_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Min_Fields = { + __typename?: 'bdjuno_provider_inflation_min_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Order_By = { + height?: InputMaybe; + value?: InputMaybe; +}; + +export enum Bdjuno_Provider_Inflation_Select_Column { + Height = 'height', + Value = 'value' +} + +export type Bdjuno_Provider_Inflation_Stddev_Fields = { + __typename?: 'bdjuno_provider_inflation_stddev_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_inflation_stddev_pop_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_inflation_stddev_samp_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Sum_Fields = { + __typename?: 'bdjuno_provider_inflation_sum_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_inflation_var_pop_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_inflation_var_samp_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Inflation_Variance_Fields = { + __typename?: 'bdjuno_provider_inflation_variance_fields'; + height?: Maybe; + value?: Maybe; +}; + +export type Bdjuno_Provider_Jsonb_Comparison_Exp = { + _contained_in?: InputMaybe; + _contains?: InputMaybe; + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _has_key?: InputMaybe; + _has_keys_all?: InputMaybe>; + _has_keys_any?: InputMaybe>; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Message = { + __typename?: 'bdjuno_provider_message'; + height: Scalars['bdjuno_provider_bigint']; + index: Scalars['bdjuno_provider_bigint']; + involved_accounts_addresses: Scalars['bdjuno_provider__text']; + partition_id: Scalars['bdjuno_provider_bigint']; + transaction?: Maybe; + transactionByPartitionIdTransactionHash?: Maybe; + transaction_hash: Scalars['String']; + type: Scalars['String']; + value: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_MessageValueArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Aggregate = { + __typename?: 'bdjuno_provider_message_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Message_Aggregate_Fields = { + __typename?: 'bdjuno_provider_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; +}; + + +export type Bdjuno_Provider_Message_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Avg_Fields = { + __typename?: 'bdjuno_provider_message_avg_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Avg_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe; + partition_id?: InputMaybe; + transaction?: InputMaybe; + transactionByPartitionIdTransactionHash?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Max_Fields = { + __typename?: 'bdjuno_provider_message_max_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; + transaction_hash?: Maybe; + type?: Maybe; +}; + +export type Bdjuno_Provider_Message_Max_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Min_Fields = { + __typename?: 'bdjuno_provider_message_min_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; + transaction_hash?: Maybe; + type?: Maybe; +}; + +export type Bdjuno_Provider_Message_Min_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe; + partition_id?: InputMaybe; + transaction?: InputMaybe; + transactionByPartitionIdTransactionHash?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +export enum Bdjuno_Provider_Message_Select_Column { + Height = 'height', + Index = 'index', + InvolvedAccountsAddresses = 'involved_accounts_addresses', + PartitionId = 'partition_id', + TransactionHash = 'transaction_hash', + Type = 'type', + Value = 'value' +} + +export type Bdjuno_Provider_Message_Stddev_Fields = { + __typename?: 'bdjuno_provider_message_stddev_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Stddev_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_message_stddev_pop_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Stddev_Pop_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_message_stddev_samp_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Stddev_Samp_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Sum_Fields = { + __typename?: 'bdjuno_provider_message_sum_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Sum_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_message_var_pop_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Var_Pop_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_message_var_samp_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Var_Samp_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Message_Variance_Fields = { + __typename?: 'bdjuno_provider_message_variance_fields'; + height?: Maybe; + index?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Message_Variance_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Messages_By_Address_Args = { + addresses?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; + types?: InputMaybe; +}; + +export type Bdjuno_Provider_Mint_Params = { + __typename?: 'bdjuno_provider_mint_params'; + height: Scalars['bdjuno_provider_bigint']; + one_row_id: Scalars['Boolean']; + params: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_Mint_ParamsParamsArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Mint_Params_Aggregate = { + __typename?: 'bdjuno_provider_mint_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Mint_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_mint_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; +}; + + +export type Bdjuno_Provider_Mint_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Mint_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_mint_params_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export type Bdjuno_Provider_Mint_Params_Max_Fields = { + __typename?: 'bdjuno_provider_mint_params_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Min_Fields = { + __typename?: 'bdjuno_provider_mint_params_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export enum Bdjuno_Provider_Mint_Params_Select_Column { + Height = 'height', + OneRowId = 'one_row_id', + Params = 'params' +} + +export type Bdjuno_Provider_Mint_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_mint_params_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_mint_params_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_mint_params_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_mint_params_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_mint_params_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_mint_params_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Mint_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_mint_params_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Modules = { + __typename?: 'bdjuno_provider_modules'; + module_name: Scalars['String']; +}; + +export type Bdjuno_Provider_Modules_Aggregate = { + __typename?: 'bdjuno_provider_modules_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Modules_Aggregate_Fields = { + __typename?: 'bdjuno_provider_modules_aggregate_fields'; + count: Scalars['Int']; + max?: Maybe; + min?: Maybe; +}; + + +export type Bdjuno_Provider_Modules_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Modules_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + module_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Modules_Max_Fields = { + __typename?: 'bdjuno_provider_modules_max_fields'; + module_name?: Maybe; +}; + +export type Bdjuno_Provider_Modules_Min_Fields = { + __typename?: 'bdjuno_provider_modules_min_fields'; + module_name?: Maybe; +}; + +export type Bdjuno_Provider_Modules_Order_By = { + module_name?: InputMaybe; +}; + +export enum Bdjuno_Provider_Modules_Select_Column { + ModuleName = 'module_name' +} + +export type Bdjuno_Provider_Numeric_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export enum Bdjuno_Provider_Order_By { + Asc = 'asc', + AscNullsFirst = 'asc_nulls_first', + AscNullsLast = 'asc_nulls_last', + Desc = 'desc', + DescNullsFirst = 'desc_nulls_first', + DescNullsLast = 'desc_nulls_last' +} + +export type Bdjuno_Provider_Pre_Commit = { + __typename?: 'bdjuno_provider_pre_commit'; + height: Scalars['bdjuno_provider_bigint']; + proposer_priority: Scalars['bdjuno_provider_bigint']; + timestamp: Scalars['bdjuno_provider_timestamp']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Pre_Commit_Aggregate = { + __typename?: 'bdjuno_provider_pre_commit_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Pre_Commit_Aggregate_Fields = { + __typename?: 'bdjuno_provider_pre_commit_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; +}; + + +export type Bdjuno_Provider_Pre_Commit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Avg_Fields = { + __typename?: 'bdjuno_provider_pre_commit_avg_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Avg_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Max_Fields = { + __typename?: 'bdjuno_provider_pre_commit_max_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Max_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Min_Fields = { + __typename?: 'bdjuno_provider_pre_commit_min_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Min_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export enum Bdjuno_Provider_Pre_Commit_Select_Column { + Height = 'height', + ProposerPriority = 'proposer_priority', + Timestamp = 'timestamp', + ValidatorAddress = 'validator_address', + VotingPower = 'voting_power' +} + +export type Bdjuno_Provider_Pre_Commit_Stddev_Fields = { + __typename?: 'bdjuno_provider_pre_commit_stddev_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Stddev_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_pre_commit_stddev_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_pre_commit_stddev_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Sum_Fields = { + __typename?: 'bdjuno_provider_pre_commit_sum_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Sum_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_pre_commit_var_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Var_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_pre_commit_var_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Var_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Variance_Fields = { + __typename?: 'bdjuno_provider_pre_commit_variance_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Pre_Commit_Variance_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal = { + __typename?: 'bdjuno_provider_proposal'; + content: Scalars['bdjuno_provider_jsonb']; + deposit_end_time?: Maybe; + description: Scalars['String']; + id: Scalars['Int']; + proposal_deposits: Array; + proposal_deposits_aggregate: Bdjuno_Provider_Proposal_Deposit_Aggregate; + proposal_route: Scalars['String']; + proposal_tally_result?: Maybe; + proposal_tally_results: Array; + proposal_tally_results_aggregate: Bdjuno_Provider_Proposal_Tally_Result_Aggregate; + proposal_type: Scalars['String']; + proposal_votes: Array; + proposal_votes_aggregate: Bdjuno_Provider_Proposal_Vote_Aggregate; + proposer: Bdjuno_Provider_Account; + proposer_address: Scalars['String']; + staking_pool_snapshot?: Maybe; + status?: Maybe; + submit_time: Scalars['bdjuno_provider_timestamp']; + title: Scalars['String']; + validator_status_snapshots: Array; + validator_status_snapshots_aggregate: Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + + +export type Bdjuno_Provider_ProposalContentArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalProposal_Deposits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalProposal_Tally_ResultsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalProposal_Tally_Results_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalProposal_Votes_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalValidator_Status_SnapshotsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ProposalValidator_Status_Snapshots_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Aggregate = { + __typename?: 'bdjuno_provider_proposal_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_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; +}; + + +export type Bdjuno_Provider_Proposal_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_avg_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Avg_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit = { + __typename?: 'bdjuno_provider_proposal_deposit'; + amount?: Maybe; + block?: Maybe; + depositor?: Maybe; + depositor_address?: Maybe; + height: Scalars['bdjuno_provider_bigint']; + proposal: Bdjuno_Provider_Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Aggregate = { + __typename?: 'bdjuno_provider_proposal_deposit_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_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; +}; + + +export type Bdjuno_Provider_Proposal_Deposit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_max_fields'; + depositor_address?: Maybe; + height?: Maybe; + proposal_id?: Maybe; + timestamp?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Max_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_min_fields'; + depositor_address?: Maybe; + height?: Maybe; + proposal_id?: Maybe; + timestamp?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Min_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Order_By = { + amount?: InputMaybe; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Deposit_Select_Column { + Amount = 'amount', + DepositorAddress = 'depositor_address', + Height = 'height', + ProposalId = 'proposal_id', + Timestamp = 'timestamp' +} + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_deposit_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Deposit_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_max_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Max_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_min_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Min_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Order_By = { + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results_aggregate?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots_aggregate?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Select_Column { + Content = 'content', + DepositEndTime = 'deposit_end_time', + Description = 'description', + Id = 'id', + ProposalRoute = 'proposal_route', + ProposalType = 'proposal_type', + ProposerAddress = 'proposer_address', + Status = 'status', + SubmitTime = 'submit_time', + Title = 'title', + VotingEndTime = 'voting_end_time', + VotingStartTime = 'voting_start_time' +} + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot'; + bonded_tokens: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + not_bonded_tokens: Scalars['String']; + proposal: Bdjuno_Provider_Proposal; + proposal_id: Scalars['Int']; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Aggregate = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_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; +}; + + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_max_fields'; + bonded_tokens?: Maybe; + height?: Maybe; + not_bonded_tokens?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_min_fields'; + bonded_tokens?: Maybe; + height?: Maybe; + not_bonded_tokens?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Order_By = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Select_Column { + BondedTokens = 'bonded_tokens', + Height = 'height', + NotBondedTokens = 'not_bonded_tokens', + ProposalId = 'proposal_id' +} + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_staking_pool_snapshot_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_stddev_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_stddev_pop_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Pop_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_stddev_samp_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Stddev_Samp_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_sum_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Sum_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result = { + __typename?: 'bdjuno_provider_proposal_tally_result'; + abstain: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + no: Scalars['String']; + no_with_veto: Scalars['String']; + proposal: Bdjuno_Provider_Proposal; + proposal_id: Scalars['Int']; + yes: Scalars['String']; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Aggregate = { + __typename?: 'bdjuno_provider_proposal_tally_result_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_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; +}; + + +export type Bdjuno_Provider_Proposal_Tally_Result_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_max_fields'; + abstain?: Maybe; + height?: Maybe; + no?: Maybe; + no_with_veto?: Maybe; + proposal_id?: Maybe; + yes?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Max_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_min_fields'; + abstain?: Maybe; + height?: Maybe; + no?: Maybe; + no_with_veto?: Maybe; + proposal_id?: Maybe; + yes?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Min_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Tally_Result_Select_Column { + Abstain = 'abstain', + Height = 'height', + No = 'no', + NoWithVeto = 'no_with_veto', + ProposalId = 'proposal_id', + Yes = 'yes' +} + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_tally_result_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Tally_Result_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot'; + height: Scalars['bdjuno_provider_bigint']; + id: Scalars['Int']; + jailed: Scalars['Boolean']; + proposal?: Maybe; + proposal_id?: Maybe; + status: Scalars['Int']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_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; +}; + + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_avg_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Avg_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + id?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_max_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Max_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_min_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Min_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Select_Column { + Height = 'height', + Id = 'id', + Jailed = 'jailed', + ProposalId = 'proposal_id', + Status = 'status', + ValidatorAddress = 'validator_address', + VotingPower = 'voting_power' +} + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_stddev_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_stddev_pop_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_stddev_samp_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Stddev_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_sum_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Sum_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_var_pop_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Var_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_var_samp_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Var_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_validator_status_snapshot_variance_fields'; + height?: Maybe; + id?: Maybe; + proposal_id?: Maybe; + status?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Variance_Order_By = { + height?: InputMaybe; + id?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_var_pop_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Var_Pop_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_var_samp_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Var_Samp_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_variance_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Variance_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote = { + __typename?: 'bdjuno_provider_proposal_vote'; + account: Bdjuno_Provider_Account; + block: Bdjuno_Provider_Block; + height: Scalars['bdjuno_provider_bigint']; + option: Scalars['String']; + proposal: Bdjuno_Provider_Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; + voter_address: Scalars['String']; +}; + +export type Bdjuno_Provider_Proposal_Vote_Aggregate = { + __typename?: 'bdjuno_provider_proposal_vote_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Proposal_Vote_Aggregate_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_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; +}; + + +export type Bdjuno_Provider_Proposal_Vote_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Avg_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Max_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_max_fields'; + height?: Maybe; + option?: Maybe; + proposal_id?: Maybe; + timestamp?: Maybe; + voter_address?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Max_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Min_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_min_fields'; + height?: Maybe; + option?: Maybe; + proposal_id?: Maybe; + timestamp?: Maybe; + voter_address?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Min_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Order_By = { + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +export enum Bdjuno_Provider_Proposal_Vote_Select_Column { + Height = 'height', + Option = 'option', + ProposalId = 'proposal_id', + Timestamp = 'timestamp', + VoterAddress = 'voter_address' +} + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Sum_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Variance_Fields = { + __typename?: 'bdjuno_provider_proposal_vote_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; +}; + +export type Bdjuno_Provider_Proposal_Vote_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Slashing_Params = { + __typename?: 'bdjuno_provider_slashing_params'; + height: Scalars['bdjuno_provider_bigint']; + one_row_id: Scalars['Boolean']; + params: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_Slashing_ParamsParamsArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Aggregate = { + __typename?: 'bdjuno_provider_slashing_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Slashing_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_slashing_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; +}; + + +export type Bdjuno_Provider_Slashing_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_slashing_params_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Max_Fields = { + __typename?: 'bdjuno_provider_slashing_params_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Min_Fields = { + __typename?: 'bdjuno_provider_slashing_params_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export enum Bdjuno_Provider_Slashing_Params_Select_Column { + Height = 'height', + OneRowId = 'one_row_id', + Params = 'params' +} + +export type Bdjuno_Provider_Slashing_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_slashing_params_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_slashing_params_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_slashing_params_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_slashing_params_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_slashing_params_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_slashing_params_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Slashing_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_slashing_params_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Smallint_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan = { + __typename?: 'bdjuno_provider_software_upgrade_plan'; + height: Scalars['bdjuno_provider_bigint']; + info: Scalars['String']; + plan_name: Scalars['String']; + proposal?: Maybe; + proposal_id?: Maybe; + upgrade_height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Aggregate = { + __typename?: 'bdjuno_provider_software_upgrade_plan_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Aggregate_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_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; +}; + + +export type Bdjuno_Provider_Software_Upgrade_Plan_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Avg_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_avg_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + info?: InputMaybe; + plan_name?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + upgrade_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Max_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_max_fields'; + height?: Maybe; + info?: Maybe; + plan_name?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Min_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_min_fields'; + height?: Maybe; + info?: Maybe; + plan_name?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Order_By = { + height?: InputMaybe; + info?: InputMaybe; + plan_name?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + upgrade_height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Software_Upgrade_Plan_Select_Column { + Height = 'height', + Info = 'info', + PlanName = 'plan_name', + ProposalId = 'proposal_id', + UpgradeHeight = 'upgrade_height' +} + +export type Bdjuno_Provider_Software_Upgrade_Plan_Stddev_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_stddev_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_stddev_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_stddev_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Sum_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_sum_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_var_pop_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_var_samp_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Software_Upgrade_Plan_Variance_Fields = { + __typename?: 'bdjuno_provider_software_upgrade_plan_variance_fields'; + height?: Maybe; + proposal_id?: Maybe; + upgrade_height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params = { + __typename?: 'bdjuno_provider_staking_params'; + height: Scalars['bdjuno_provider_bigint']; + one_row_id: Scalars['Boolean']; + params: Scalars['bdjuno_provider_jsonb']; +}; + + +export type Bdjuno_Provider_Staking_ParamsParamsArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Params_Aggregate = { + __typename?: 'bdjuno_provider_staking_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Staking_Params_Aggregate_Fields = { + __typename?: 'bdjuno_provider_staking_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; +}; + + +export type Bdjuno_Provider_Staking_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Params_Avg_Fields = { + __typename?: 'bdjuno_provider_staking_params_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Params_Max_Fields = { + __typename?: 'bdjuno_provider_staking_params_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Min_Fields = { + __typename?: 'bdjuno_provider_staking_params_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +export enum Bdjuno_Provider_Staking_Params_Select_Column { + Height = 'height', + OneRowId = 'one_row_id', + Params = 'params' +} + +export type Bdjuno_Provider_Staking_Params_Stddev_Fields = { + __typename?: 'bdjuno_provider_staking_params_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_staking_params_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_staking_params_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Sum_Fields = { + __typename?: 'bdjuno_provider_staking_params_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_staking_params_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_staking_params_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Params_Variance_Fields = { + __typename?: 'bdjuno_provider_staking_params_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool = { + __typename?: 'bdjuno_provider_staking_pool'; + bonded_tokens: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + not_bonded_tokens: Scalars['String']; + staked_not_bonded_tokens?: Maybe; + unbonding_tokens?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Aggregate = { + __typename?: 'bdjuno_provider_staking_pool_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Staking_Pool_Aggregate_Fields = { + __typename?: 'bdjuno_provider_staking_pool_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; +}; + + +export type Bdjuno_Provider_Staking_Pool_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Avg_Fields = { + __typename?: 'bdjuno_provider_staking_pool_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + staked_not_bonded_tokens?: InputMaybe; + unbonding_tokens?: InputMaybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Max_Fields = { + __typename?: 'bdjuno_provider_staking_pool_max_fields'; + bonded_tokens?: Maybe; + height?: Maybe; + not_bonded_tokens?: Maybe; + staked_not_bonded_tokens?: Maybe; + unbonding_tokens?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Min_Fields = { + __typename?: 'bdjuno_provider_staking_pool_min_fields'; + bonded_tokens?: Maybe; + height?: Maybe; + not_bonded_tokens?: Maybe; + staked_not_bonded_tokens?: Maybe; + unbonding_tokens?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Order_By = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + staked_not_bonded_tokens?: InputMaybe; + unbonding_tokens?: InputMaybe; +}; + +export enum Bdjuno_Provider_Staking_Pool_Select_Column { + BondedTokens = 'bonded_tokens', + Height = 'height', + NotBondedTokens = 'not_bonded_tokens', + StakedNotBondedTokens = 'staked_not_bonded_tokens', + UnbondingTokens = 'unbonding_tokens' +} + +export type Bdjuno_Provider_Staking_Pool_Stddev_Fields = { + __typename?: 'bdjuno_provider_staking_pool_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_staking_pool_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_staking_pool_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Sum_Fields = { + __typename?: 'bdjuno_provider_staking_pool_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_staking_pool_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_staking_pool_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Staking_Pool_Variance_Fields = { + __typename?: 'bdjuno_provider_staking_pool_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply = { + __typename?: 'bdjuno_provider_supply'; + coins: Scalars['bdjuno_provider__coin']; + height: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Supply_Aggregate = { + __typename?: 'bdjuno_provider_supply_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Supply_Aggregate_Fields = { + __typename?: 'bdjuno_provider_supply_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; +}; + + +export type Bdjuno_Provider_Supply_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Supply_Avg_Fields = { + __typename?: 'bdjuno_provider_supply_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + coins?: InputMaybe; + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Supply_Max_Fields = { + __typename?: 'bdjuno_provider_supply_max_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Min_Fields = { + __typename?: 'bdjuno_provider_supply_min_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Order_By = { + coins?: InputMaybe; + height?: InputMaybe; +}; + +export enum Bdjuno_Provider_Supply_Select_Column { + Coins = 'coins', + Height = 'height' +} + +export type Bdjuno_Provider_Supply_Stddev_Fields = { + __typename?: 'bdjuno_provider_supply_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_supply_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_supply_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Sum_Fields = { + __typename?: 'bdjuno_provider_supply_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_supply_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_supply_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Supply_Variance_Fields = { + __typename?: 'bdjuno_provider_supply_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Timestamp_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Timestamptz_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Bdjuno_Provider_Token = { + __typename?: 'bdjuno_provider_token'; + name: Scalars['String']; + token_units: Array; + token_units_aggregate: Bdjuno_Provider_Token_Unit_Aggregate; +}; + + +export type Bdjuno_Provider_TokenToken_UnitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_TokenToken_Units_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Aggregate = { + __typename?: 'bdjuno_provider_token_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Token_Aggregate_Fields = { + __typename?: 'bdjuno_provider_token_aggregate_fields'; + count: Scalars['Int']; + max?: Maybe; + min?: Maybe; +}; + + +export type Bdjuno_Provider_Token_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + name?: InputMaybe; + token_units?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Max_Fields = { + __typename?: 'bdjuno_provider_token_max_fields'; + name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Min_Fields = { + __typename?: 'bdjuno_provider_token_min_fields'; + name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Order_By = { + name?: InputMaybe; + token_units_aggregate?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price = { + __typename?: 'bdjuno_provider_token_price'; + id: Scalars['Int']; + market_cap: Scalars['bdjuno_provider_bigint']; + price: Scalars['bdjuno_provider_numeric']; + timestamp: Scalars['bdjuno_provider_timestamp']; + token_unit: Bdjuno_Provider_Token_Unit; + unit_name: Scalars['String']; +}; + +export type Bdjuno_Provider_Token_Price_Aggregate = { + __typename?: 'bdjuno_provider_token_price_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Token_Price_Aggregate_Fields = { + __typename?: 'bdjuno_provider_token_price_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; +}; + + +export type Bdjuno_Provider_Token_Price_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Avg_Fields = { + __typename?: 'bdjuno_provider_token_price_avg_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Avg_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History = { + __typename?: 'bdjuno_provider_token_price_history'; + market_cap: Scalars['bdjuno_provider_bigint']; + price: Scalars['bdjuno_provider_numeric']; + timestamp: Scalars['bdjuno_provider_timestamp']; + token_unit: Bdjuno_Provider_Token_Unit; + unit_name: Scalars['String']; +}; + +export type Bdjuno_Provider_Token_Price_History_Aggregate = { + __typename?: 'bdjuno_provider_token_price_history_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Token_Price_History_Aggregate_Fields = { + __typename?: 'bdjuno_provider_token_price_history_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; +}; + + +export type Bdjuno_Provider_Token_Price_History_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Avg_Fields = { + __typename?: 'bdjuno_provider_token_price_history_avg_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Avg_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Max_Fields = { + __typename?: 'bdjuno_provider_token_price_history_max_fields'; + market_cap?: Maybe; + price?: Maybe; + timestamp?: Maybe; + unit_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Max_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Min_Fields = { + __typename?: 'bdjuno_provider_token_price_history_min_fields'; + market_cap?: Maybe; + price?: Maybe; + timestamp?: Maybe; + unit_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Min_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +export enum Bdjuno_Provider_Token_Price_History_Select_Column { + MarketCap = 'market_cap', + Price = 'price', + Timestamp = 'timestamp', + UnitName = 'unit_name' +} + +export type Bdjuno_Provider_Token_Price_History_Stddev_Fields = { + __typename?: 'bdjuno_provider_token_price_history_stddev_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_token_price_history_stddev_pop_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_token_price_history_stddev_samp_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Stddev_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Sum_Fields = { + __typename?: 'bdjuno_provider_token_price_history_sum_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Sum_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_token_price_history_var_pop_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Var_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_token_price_history_var_samp_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Var_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Variance_Fields = { + __typename?: 'bdjuno_provider_token_price_history_variance_fields'; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_History_Variance_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Max_Fields = { + __typename?: 'bdjuno_provider_token_price_max_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; + timestamp?: Maybe; + unit_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Max_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Min_Fields = { + __typename?: 'bdjuno_provider_token_price_min_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; + timestamp?: Maybe; + unit_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Min_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +export enum Bdjuno_Provider_Token_Price_Select_Column { + Id = 'id', + MarketCap = 'market_cap', + Price = 'price', + Timestamp = 'timestamp', + UnitName = 'unit_name' +} + +export type Bdjuno_Provider_Token_Price_Stddev_Fields = { + __typename?: 'bdjuno_provider_token_price_stddev_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_token_price_stddev_pop_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Pop_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_token_price_stddev_samp_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Stddev_Samp_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Sum_Fields = { + __typename?: 'bdjuno_provider_token_price_sum_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Sum_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_token_price_var_pop_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Var_Pop_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_token_price_var_samp_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Var_Samp_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Price_Variance_Fields = { + __typename?: 'bdjuno_provider_token_price_variance_fields'; + id?: Maybe; + market_cap?: Maybe; + price?: Maybe; +}; + +export type Bdjuno_Provider_Token_Price_Variance_Order_By = { + id?: InputMaybe; + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +export enum Bdjuno_Provider_Token_Select_Column { + Name = 'name' +} + +export type Bdjuno_Provider_Token_Unit = { + __typename?: 'bdjuno_provider_token_unit'; + aliases?: Maybe; + denom: Scalars['String']; + exponent: Scalars['Int']; + price_id?: Maybe; + token: Bdjuno_Provider_Token; + token_name: Scalars['String']; + token_price?: Maybe; + token_price_histories: Array; + token_price_histories_aggregate: Bdjuno_Provider_Token_Price_History_Aggregate; + token_prices: Array; + token_prices_aggregate: Bdjuno_Provider_Token_Price_Aggregate; +}; + + +export type Bdjuno_Provider_Token_UnitToken_Price_HistoriesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Token_UnitToken_Price_Histories_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Token_UnitToken_PricesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Token_UnitToken_Prices_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Aggregate = { + __typename?: 'bdjuno_provider_token_unit_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Token_Unit_Aggregate_Fields = { + __typename?: 'bdjuno_provider_token_unit_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; +}; + + +export type Bdjuno_Provider_Token_Unit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Avg_Fields = { + __typename?: 'bdjuno_provider_token_unit_avg_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Avg_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + aliases?: InputMaybe; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token?: InputMaybe; + token_name?: InputMaybe; + token_price?: InputMaybe; + token_price_histories?: InputMaybe; + token_prices?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Max_Fields = { + __typename?: 'bdjuno_provider_token_unit_max_fields'; + denom?: Maybe; + exponent?: Maybe; + price_id?: Maybe; + token_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Max_Order_By = { + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Min_Fields = { + __typename?: 'bdjuno_provider_token_unit_min_fields'; + denom?: Maybe; + exponent?: Maybe; + price_id?: Maybe; + token_name?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Min_Order_By = { + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Order_By = { + aliases?: InputMaybe; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token?: InputMaybe; + token_name?: InputMaybe; + token_price?: InputMaybe; + token_price_histories_aggregate?: InputMaybe; + token_prices_aggregate?: InputMaybe; +}; + +export enum Bdjuno_Provider_Token_Unit_Select_Column { + Aliases = 'aliases', + Denom = 'denom', + Exponent = 'exponent', + PriceId = 'price_id', + TokenName = 'token_name' +} + +export type Bdjuno_Provider_Token_Unit_Stddev_Fields = { + __typename?: 'bdjuno_provider_token_unit_stddev_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_token_unit_stddev_pop_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Pop_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_token_unit_stddev_samp_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Stddev_Samp_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Sum_Fields = { + __typename?: 'bdjuno_provider_token_unit_sum_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Sum_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_token_unit_var_pop_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Var_Pop_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_token_unit_var_samp_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Var_Samp_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Token_Unit_Variance_Fields = { + __typename?: 'bdjuno_provider_token_unit_variance_fields'; + exponent?: Maybe; +}; + +export type Bdjuno_Provider_Token_Unit_Variance_Order_By = { + exponent?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction = { + __typename?: 'bdjuno_provider_transaction'; + block: Bdjuno_Provider_Block; + fee: Scalars['bdjuno_provider_jsonb']; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash: Scalars['String']; + height: Scalars['bdjuno_provider_bigint']; + logs?: Maybe; + memo?: Maybe; + messages: Scalars['bdjuno_provider_jsonb']; + messagesByTransactionHashPartitionId: Array; + messagesByTransactionHashPartitionId_aggregate: Bdjuno_Provider_Message_Aggregate; + partition_id: Scalars['bdjuno_provider_bigint']; + raw_log?: Maybe; + signatures: Scalars['bdjuno_provider__text']; + signer_infos: Scalars['bdjuno_provider_jsonb']; + success: Scalars['Boolean']; +}; + + +export type Bdjuno_Provider_TransactionFeeArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionLogsArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionMessagesArgs = { + path?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionMessagesByTransactionHashPartitionIdArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionMessagesByTransactionHashPartitionId_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_TransactionSigner_InfosArgs = { + path?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Aggregate = { + __typename?: 'bdjuno_provider_transaction_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Transaction_Aggregate_Fields = { + __typename?: 'bdjuno_provider_transaction_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; +}; + + +export type Bdjuno_Provider_Transaction_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Avg_Fields = { + __typename?: 'bdjuno_provider_transaction_avg_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Avg_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + messagesByTransactionHashPartitionId?: InputMaybe; + partition_id?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Max_Fields = { + __typename?: 'bdjuno_provider_transaction_max_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash?: Maybe; + height?: Maybe; + memo?: Maybe; + partition_id?: Maybe; + raw_log?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Max_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + partition_id?: InputMaybe; + raw_log?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Min_Fields = { + __typename?: 'bdjuno_provider_transaction_min_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash?: Maybe; + height?: Maybe; + memo?: Maybe; + partition_id?: Maybe; + raw_log?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Min_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + partition_id?: InputMaybe; + raw_log?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Order_By = { + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + messagesByTransactionHashPartitionId_aggregate?: InputMaybe; + partition_id?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +export enum Bdjuno_Provider_Transaction_Select_Column { + Fee = 'fee', + GasUsed = 'gas_used', + GasWanted = 'gas_wanted', + Hash = 'hash', + Height = 'height', + Logs = 'logs', + Memo = 'memo', + Messages = 'messages', + PartitionId = 'partition_id', + RawLog = 'raw_log', + Signatures = 'signatures', + SignerInfos = 'signer_infos', + Success = 'success' +} + +export type Bdjuno_Provider_Transaction_Stddev_Fields = { + __typename?: 'bdjuno_provider_transaction_stddev_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_transaction_stddev_pop_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_transaction_stddev_samp_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Stddev_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Sum_Fields = { + __typename?: 'bdjuno_provider_transaction_sum_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Sum_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_transaction_var_pop_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Var_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_transaction_var_samp_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Var_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Transaction_Variance_Fields = { + __typename?: 'bdjuno_provider_transaction_variance_fields'; + gas_used?: Maybe; + gas_wanted?: Maybe; + height?: Maybe; + partition_id?: Maybe; +}; + +export type Bdjuno_Provider_Transaction_Variance_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; + partition_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator = { + __typename?: 'bdjuno_provider_validator'; + blocks: Array; + blocks_aggregate: Bdjuno_Provider_Block_Aggregate; + consensus_address: Scalars['String']; + consensus_pubkey: Scalars['String']; + double_sign_votes: Array; + double_sign_votes_aggregate: Bdjuno_Provider_Double_Sign_Vote_Aggregate; + pre_commits: Array; + pre_commits_aggregate: Bdjuno_Provider_Pre_Commit_Aggregate; + proposal_validator_status_snapshot?: Maybe; + proposal_validator_status_snapshots: Array; + proposal_validator_status_snapshots_aggregate: Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate; + validator_commissions: Array; + validator_commissions_aggregate: Bdjuno_Provider_Validator_Commission_Aggregate; + validator_descriptions: Array; + validator_descriptions_aggregate: Bdjuno_Provider_Validator_Description_Aggregate; + validator_info?: Maybe; + validator_infos: Array; + validator_infos_aggregate: Bdjuno_Provider_Validator_Info_Aggregate; + validator_signing_infos: Array; + validator_signing_infos_aggregate: Bdjuno_Provider_Validator_Signing_Info_Aggregate; + validator_statuses: Array; + validator_statuses_aggregate: Bdjuno_Provider_Validator_Status_Aggregate; + validator_voting_powers: Array; + validator_voting_powers_aggregate: Bdjuno_Provider_Validator_Voting_Power_Aggregate; +}; + + +export type Bdjuno_Provider_ValidatorBlocksArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorBlocks_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorDouble_Sign_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorDouble_Sign_Votes_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorProposal_Validator_Status_SnapshotsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorProposal_Validator_Status_Snapshots_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_CommissionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Commissions_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_DescriptionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Descriptions_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Infos_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Signing_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Signing_Infos_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_StatusesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Statuses_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_ValidatorValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Aggregate = { + __typename?: 'bdjuno_provider_validator_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_aggregate_fields'; + count: Scalars['Int']; + max?: Maybe; + min?: Maybe; +}; + + +export type Bdjuno_Provider_Validator_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + blocks?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes?: InputMaybe; + pre_commits?: InputMaybe; + proposal_validator_status_snapshot?: InputMaybe; + proposal_validator_status_snapshots?: InputMaybe; + validator_commissions?: InputMaybe; + validator_descriptions?: InputMaybe; + validator_info?: InputMaybe; + validator_infos?: InputMaybe; + validator_signing_infos?: InputMaybe; + validator_statuses?: InputMaybe; + validator_voting_powers?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission = { + __typename?: 'bdjuno_provider_validator_commission'; + commission: Scalars['bdjuno_provider_numeric']; + height: Scalars['bdjuno_provider_bigint']; + min_self_delegation: Scalars['bdjuno_provider_bigint']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; +}; + +export type Bdjuno_Provider_Validator_Commission_Aggregate = { + __typename?: 'bdjuno_provider_validator_commission_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Commission_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_commission_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; +}; + + +export type Bdjuno_Provider_Validator_Commission_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_commission_avg_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Avg_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Max_Fields = { + __typename?: 'bdjuno_provider_validator_commission_max_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Max_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Min_Fields = { + __typename?: 'bdjuno_provider_validator_commission_min_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Min_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Commission_Select_Column { + Commission = 'commission', + Height = 'height', + MinSelfDelegation = 'min_self_delegation', + ValidatorAddress = 'validator_address' +} + +export type Bdjuno_Provider_Validator_Commission_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_commission_stddev_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_commission_stddev_pop_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Pop_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_commission_stddev_samp_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Stddev_Samp_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_commission_sum_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Sum_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_commission_var_pop_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Var_Pop_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_commission_var_samp_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Var_Samp_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_commission_variance_fields'; + commission?: Maybe; + height?: Maybe; + min_self_delegation?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Commission_Variance_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description = { + __typename?: 'bdjuno_provider_validator_description'; + avatar_url?: Maybe; + details?: Maybe; + height: Scalars['bdjuno_provider_bigint']; + identity?: Maybe; + moniker?: Maybe; + security_contact?: Maybe; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + website?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Aggregate = { + __typename?: 'bdjuno_provider_validator_description_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Description_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_description_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; +}; + + +export type Bdjuno_Provider_Validator_Description_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_description_avg_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Avg_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Max_Fields = { + __typename?: 'bdjuno_provider_validator_description_max_fields'; + avatar_url?: Maybe; + details?: Maybe; + height?: Maybe; + identity?: Maybe; + moniker?: Maybe; + security_contact?: Maybe; + validator_address?: Maybe; + website?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Max_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Min_Fields = { + __typename?: 'bdjuno_provider_validator_description_min_fields'; + avatar_url?: Maybe; + details?: Maybe; + height?: Maybe; + identity?: Maybe; + moniker?: Maybe; + security_contact?: Maybe; + validator_address?: Maybe; + website?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Min_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Description_Select_Column { + AvatarUrl = 'avatar_url', + Details = 'details', + Height = 'height', + Identity = 'identity', + Moniker = 'moniker', + SecurityContact = 'security_contact', + ValidatorAddress = 'validator_address', + Website = 'website' +} + +export type Bdjuno_Provider_Validator_Description_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_description_stddev_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_description_stddev_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Pop_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_description_stddev_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Stddev_Samp_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_description_sum_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Sum_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_description_var_pop_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Var_Pop_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_description_var_samp_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Var_Samp_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Description_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_description_variance_fields'; + height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Description_Variance_Order_By = { + height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info = { + __typename?: 'bdjuno_provider_validator_info'; + account?: Maybe; + consensus_address: Scalars['String']; + max_change_rate: Scalars['String']; + max_rate: Scalars['String']; + operator_address: Scalars['String']; + self_delegate_address?: Maybe; + validator: Bdjuno_Provider_Validator; +}; + +export type Bdjuno_Provider_Validator_Info_Aggregate = { + __typename?: 'bdjuno_provider_validator_info_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Info_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_info_aggregate_fields'; + count: Scalars['Int']; + max?: Maybe; + min?: Maybe; +}; + + +export type Bdjuno_Provider_Validator_Info_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Aggregate_Order_By = { + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; + validator?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Max_Fields = { + __typename?: 'bdjuno_provider_validator_info_max_fields'; + consensus_address?: Maybe; + max_change_rate?: Maybe; + max_rate?: Maybe; + operator_address?: Maybe; + self_delegate_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Info_Max_Order_By = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Min_Fields = { + __typename?: 'bdjuno_provider_validator_info_min_fields'; + consensus_address?: Maybe; + max_change_rate?: Maybe; + max_rate?: Maybe; + operator_address?: Maybe; + self_delegate_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Info_Min_Order_By = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Info_Order_By = { + account?: InputMaybe; + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; + validator?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Info_Select_Column { + ConsensusAddress = 'consensus_address', + MaxChangeRate = 'max_change_rate', + MaxRate = 'max_rate', + OperatorAddress = 'operator_address', + SelfDelegateAddress = 'self_delegate_address' +} + +export type Bdjuno_Provider_Validator_Max_Fields = { + __typename?: 'bdjuno_provider_validator_max_fields'; + consensus_address?: Maybe; + consensus_pubkey?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Min_Fields = { + __typename?: 'bdjuno_provider_validator_min_fields'; + consensus_address?: Maybe; + consensus_pubkey?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Order_By = { + blocks_aggregate?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes_aggregate?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_validator_status_snapshot?: InputMaybe; + proposal_validator_status_snapshots_aggregate?: InputMaybe; + validator_commissions_aggregate?: InputMaybe; + validator_descriptions_aggregate?: InputMaybe; + validator_info?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + validator_signing_infos_aggregate?: InputMaybe; + validator_statuses_aggregate?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Select_Column { + ConsensusAddress = 'consensus_address', + ConsensusPubkey = 'consensus_pubkey' +} + +export type Bdjuno_Provider_Validator_Signing_Info = { + __typename?: 'bdjuno_provider_validator_signing_info'; + height: Scalars['bdjuno_provider_bigint']; + index_offset: Scalars['bdjuno_provider_bigint']; + jailed_until: Scalars['bdjuno_provider_timestamp']; + missed_blocks_counter: Scalars['bdjuno_provider_bigint']; + start_height: Scalars['bdjuno_provider_bigint']; + tombstoned: Scalars['Boolean']; + validator_address: Scalars['String']; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Aggregate = { + __typename?: 'bdjuno_provider_validator_signing_info_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_signing_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; +}; + + +export type Bdjuno_Provider_Validator_Signing_Info_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_avg_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Avg_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Max_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_max_fields'; + height?: Maybe; + index_offset?: Maybe; + jailed_until?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Max_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Min_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_min_fields'; + height?: Maybe; + index_offset?: Maybe; + jailed_until?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Min_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Signing_Info_Select_Column { + Height = 'height', + IndexOffset = 'index_offset', + JailedUntil = 'jailed_until', + MissedBlocksCounter = 'missed_blocks_counter', + StartHeight = 'start_height', + Tombstoned = 'tombstoned', + ValidatorAddress = 'validator_address' +} + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_stddev_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_stddev_pop_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_stddev_samp_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Stddev_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_sum_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Sum_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_var_pop_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Var_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_var_samp_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Var_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_signing_info_variance_fields'; + height?: Maybe; + index_offset?: Maybe; + missed_blocks_counter?: Maybe; + start_height?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Signing_Info_Variance_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status = { + __typename?: 'bdjuno_provider_validator_status'; + height: Scalars['bdjuno_provider_bigint']; + jailed: Scalars['Boolean']; + status: Scalars['Int']; + tombstoned: Scalars['Boolean']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; +}; + +export type Bdjuno_Provider_Validator_Status_Aggregate = { + __typename?: 'bdjuno_provider_validator_status_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Status_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_status_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; +}; + + +export type Bdjuno_Provider_Validator_Status_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_status_avg_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Avg_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + tombstoned?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Max_Fields = { + __typename?: 'bdjuno_provider_validator_status_max_fields'; + height?: Maybe; + status?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Max_Order_By = { + height?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Min_Fields = { + __typename?: 'bdjuno_provider_validator_status_min_fields'; + height?: Maybe; + status?: Maybe; + validator_address?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Min_Order_By = { + height?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Order_By = { + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + tombstoned?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Status_Select_Column { + Height = 'height', + Jailed = 'jailed', + Status = 'status', + Tombstoned = 'tombstoned', + ValidatorAddress = 'validator_address' +} + +export type Bdjuno_Provider_Validator_Status_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_status_stddev_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_status_stddev_pop_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Pop_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_status_stddev_samp_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Stddev_Samp_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_status_sum_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Sum_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_status_var_pop_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Var_Pop_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_status_var_samp_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Var_Samp_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Status_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_status_variance_fields'; + height?: Maybe; + status?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Status_Variance_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power = { + __typename?: 'bdjuno_provider_validator_voting_power'; + block: Bdjuno_Provider_Block; + height: Scalars['bdjuno_provider_bigint']; + validator: Bdjuno_Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Aggregate = { + __typename?: 'bdjuno_provider_validator_voting_power_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Aggregate_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_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; +}; + + +export type Bdjuno_Provider_Validator_Voting_Power_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Avg_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_avg_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Avg_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + height?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Max_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_max_fields'; + height?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Max_Order_By = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Min_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_min_fields'; + height?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Min_Order_By = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Order_By = { + block?: InputMaybe; + height?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +export enum Bdjuno_Provider_Validator_Voting_Power_Select_Column { + Height = 'height', + ValidatorAddress = 'validator_address', + VotingPower = 'voting_power' +} + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_stddev_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_stddev_pop_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Pop_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_stddev_samp_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Stddev_Samp_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Sum_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_sum_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Sum_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_var_pop_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Var_Pop_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_var_samp_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Var_Samp_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Variance_Fields = { + __typename?: 'bdjuno_provider_validator_voting_power_variance_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +export type Bdjuno_Provider_Validator_Voting_Power_Variance_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account = { + __typename?: 'bdjuno_provider_vesting_account'; + account: Bdjuno_Provider_Account; + address: Scalars['String']; + end_time: Scalars['bdjuno_provider_timestamp']; + id: Scalars['Int']; + original_vesting: Scalars['bdjuno_provider__coin']; + start_time?: Maybe; + type: Scalars['String']; + vesting_periods: Array; + vesting_periods_aggregate: Bdjuno_Provider_Vesting_Period_Aggregate; +}; + + +export type Bdjuno_Provider_Vesting_AccountVesting_PeriodsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Provider_Vesting_AccountVesting_Periods_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Aggregate = { + __typename?: 'bdjuno_provider_vesting_account_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Vesting_Account_Aggregate_Fields = { + __typename?: 'bdjuno_provider_vesting_account_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; +}; + + +export type Bdjuno_Provider_Vesting_Account_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Avg_Fields = { + __typename?: 'bdjuno_provider_vesting_account_avg_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Avg_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + id?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Max_Fields = { + __typename?: 'bdjuno_provider_vesting_account_max_fields'; + address?: Maybe; + end_time?: Maybe; + id?: Maybe; + start_time?: Maybe; + type?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Max_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + id?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Min_Fields = { + __typename?: 'bdjuno_provider_vesting_account_min_fields'; + address?: Maybe; + end_time?: Maybe; + id?: Maybe; + start_time?: Maybe; + type?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Min_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + id?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Order_By = { + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + id?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods_aggregate?: InputMaybe; +}; + +export enum Bdjuno_Provider_Vesting_Account_Select_Column { + Address = 'address', + EndTime = 'end_time', + Id = 'id', + OriginalVesting = 'original_vesting', + StartTime = 'start_time', + Type = 'type' +} + +export type Bdjuno_Provider_Vesting_Account_Stddev_Fields = { + __typename?: 'bdjuno_provider_vesting_account_stddev_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_vesting_account_stddev_pop_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Pop_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_vesting_account_stddev_samp_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Stddev_Samp_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Sum_Fields = { + __typename?: 'bdjuno_provider_vesting_account_sum_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Sum_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_vesting_account_var_pop_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Var_Pop_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_vesting_account_var_samp_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Var_Samp_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Variance_Fields = { + __typename?: 'bdjuno_provider_vesting_account_variance_fields'; + id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Account_Variance_Order_By = { + id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period = { + __typename?: 'bdjuno_provider_vesting_period'; + amount: Scalars['bdjuno_provider__coin']; + length: Scalars['bdjuno_provider_bigint']; + period_order: Scalars['bdjuno_provider_bigint']; + vesting_account: Bdjuno_Provider_Vesting_Account; + vesting_account_id: Scalars['bdjuno_provider_bigint']; +}; + +export type Bdjuno_Provider_Vesting_Period_Aggregate = { + __typename?: 'bdjuno_provider_vesting_period_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Bdjuno_Provider_Vesting_Period_Aggregate_Fields = { + __typename?: 'bdjuno_provider_vesting_period_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; +}; + + +export type Bdjuno_Provider_Vesting_Period_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Avg_Fields = { + __typename?: 'bdjuno_provider_vesting_period_avg_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Avg_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Max_Fields = { + __typename?: 'bdjuno_provider_vesting_period_max_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Max_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Min_Fields = { + __typename?: 'bdjuno_provider_vesting_period_min_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Min_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Order_By = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export enum Bdjuno_Provider_Vesting_Period_Select_Column { + Amount = 'amount', + Length = 'length', + PeriodOrder = 'period_order', + VestingAccountId = 'vesting_account_id' +} + +export type Bdjuno_Provider_Vesting_Period_Stddev_Fields = { + __typename?: 'bdjuno_provider_vesting_period_stddev_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Pop_Fields = { + __typename?: 'bdjuno_provider_vesting_period_stddev_pop_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Samp_Fields = { + __typename?: 'bdjuno_provider_vesting_period_stddev_samp_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Stddev_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Sum_Fields = { + __typename?: 'bdjuno_provider_vesting_period_sum_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Sum_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Var_Pop_Fields = { + __typename?: 'bdjuno_provider_vesting_period_var_pop_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Var_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Var_Samp_Fields = { + __typename?: 'bdjuno_provider_vesting_period_var_samp_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Var_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Variance_Fields = { + __typename?: 'bdjuno_provider_vesting_period_variance_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +export type Bdjuno_Provider_Vesting_Period_Variance_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +export type Bdjuno_Providerquery_Root = { + __typename?: 'bdjuno_providerquery_root'; + account: Array; + account_aggregate: Bdjuno_Provider_Account_Aggregate; + account_by_pk?: Maybe; + action_account_balance?: Maybe; + action_delegation?: Maybe; + action_delegation_reward?: Maybe>>; + action_delegation_total?: Maybe; + action_delegator_withdraw_address: Bdjuno_Provider_ActionAddress; + action_redelegation?: Maybe; + action_unbonding_delegation?: Maybe; + action_unbonding_delegation_total?: Maybe; + action_validator_commission_amount?: Maybe; + action_validator_delegations?: Maybe; + action_validator_redelegations_from?: Maybe; + action_validator_unbonding_delegations?: Maybe; + average_block_time_from_genesis: Array; + average_block_time_from_genesis_aggregate: Bdjuno_Provider_Average_Block_Time_From_Genesis_Aggregate; + average_block_time_per_day: Array; + average_block_time_per_day_aggregate: Bdjuno_Provider_Average_Block_Time_Per_Day_Aggregate; + average_block_time_per_hour: Array; + average_block_time_per_hour_aggregate: Bdjuno_Provider_Average_Block_Time_Per_Hour_Aggregate; + average_block_time_per_minute: Array; + average_block_time_per_minute_aggregate: Bdjuno_Provider_Average_Block_Time_Per_Minute_Aggregate; + block: Array; + block_aggregate: Bdjuno_Provider_Block_Aggregate; + block_by_pk?: Maybe; + community_pool: Array; + community_pool_aggregate: Bdjuno_Provider_Community_Pool_Aggregate; + distribution_params: Array; + distribution_params_aggregate: Bdjuno_Provider_Distribution_Params_Aggregate; + distribution_params_by_pk?: Maybe; + double_sign_evidence: Array; + double_sign_evidence_aggregate: Bdjuno_Provider_Double_Sign_Evidence_Aggregate; + double_sign_vote: Array; + double_sign_vote_aggregate: Bdjuno_Provider_Double_Sign_Vote_Aggregate; + double_sign_vote_by_pk?: Maybe; + fee_grant_allowance: Array; + fee_grant_allowance_aggregate: Bdjuno_Provider_Fee_Grant_Allowance_Aggregate; + fee_grant_allowance_by_pk?: Maybe; + genesis: Array; + genesis_aggregate: Bdjuno_Provider_Genesis_Aggregate; + gov_params: Array; + gov_params_aggregate: Bdjuno_Provider_Gov_Params_Aggregate; + gov_params_by_pk?: Maybe; + inflation: Array; + inflation_aggregate: Bdjuno_Provider_Inflation_Aggregate; + message: Array; + message_aggregate: Bdjuno_Provider_Message_Aggregate; + messages_by_address: Array; + messages_by_address_aggregate: Bdjuno_Provider_Message_Aggregate; + mint_params: Array; + mint_params_aggregate: Bdjuno_Provider_Mint_Params_Aggregate; + mint_params_by_pk?: Maybe; + modules: Array; + modules_aggregate: Bdjuno_Provider_Modules_Aggregate; + modules_by_pk?: Maybe; + pre_commit: Array; + pre_commit_aggregate: Bdjuno_Provider_Pre_Commit_Aggregate; + proposal: Array; + proposal_aggregate: Bdjuno_Provider_Proposal_Aggregate; + proposal_by_pk?: Maybe; + proposal_deposit: Array; + proposal_deposit_aggregate: Bdjuno_Provider_Proposal_Deposit_Aggregate; + proposal_staking_pool_snapshot: Array; + proposal_staking_pool_snapshot_aggregate: Bdjuno_Provider_Proposal_Staking_Pool_Snapshot_Aggregate; + proposal_staking_pool_snapshot_by_pk?: Maybe; + proposal_tally_result: Array; + proposal_tally_result_aggregate: Bdjuno_Provider_Proposal_Tally_Result_Aggregate; + proposal_tally_result_by_pk?: Maybe; + proposal_validator_status_snapshot: Array; + proposal_validator_status_snapshot_aggregate: Bdjuno_Provider_Proposal_Validator_Status_Snapshot_Aggregate; + proposal_validator_status_snapshot_by_pk?: Maybe; + proposal_vote: Array; + proposal_vote_aggregate: Bdjuno_Provider_Proposal_Vote_Aggregate; + slashing_params: Array; + slashing_params_aggregate: Bdjuno_Provider_Slashing_Params_Aggregate; + slashing_params_by_pk?: Maybe; + software_upgrade_plan: Array; + software_upgrade_plan_aggregate: Bdjuno_Provider_Software_Upgrade_Plan_Aggregate; + staking_params: Array; + staking_params_aggregate: Bdjuno_Provider_Staking_Params_Aggregate; + staking_params_by_pk?: Maybe; + staking_pool: Array; + staking_pool_aggregate: Bdjuno_Provider_Staking_Pool_Aggregate; + supply: Array; + supply_aggregate: Bdjuno_Provider_Supply_Aggregate; + token: Array; + token_aggregate: Bdjuno_Provider_Token_Aggregate; + token_price: Array; + token_price_aggregate: Bdjuno_Provider_Token_Price_Aggregate; + token_price_by_pk?: Maybe; + token_price_history: Array; + token_price_history_aggregate: Bdjuno_Provider_Token_Price_History_Aggregate; + token_unit: Array; + token_unit_aggregate: Bdjuno_Provider_Token_Unit_Aggregate; + transaction: Array; + transaction_aggregate: Bdjuno_Provider_Transaction_Aggregate; + validator: Array; + validator_aggregate: Bdjuno_Provider_Validator_Aggregate; + validator_by_pk?: Maybe; + validator_commission: Array; + validator_commission_aggregate: Bdjuno_Provider_Validator_Commission_Aggregate; + validator_commission_by_pk?: Maybe; + validator_description: Array; + validator_description_aggregate: Bdjuno_Provider_Validator_Description_Aggregate; + validator_description_by_pk?: Maybe; + validator_info: Array; + validator_info_aggregate: Bdjuno_Provider_Validator_Info_Aggregate; + validator_info_by_pk?: Maybe; + validator_signing_info: Array; + validator_signing_info_aggregate: Bdjuno_Provider_Validator_Signing_Info_Aggregate; + validator_signing_info_by_pk?: Maybe; + validator_status: Array; + validator_status_aggregate: Bdjuno_Provider_Validator_Status_Aggregate; + validator_status_by_pk?: Maybe; + validator_voting_power: Array; + validator_voting_power_aggregate: Bdjuno_Provider_Validator_Voting_Power_Aggregate; + validator_voting_power_by_pk?: Maybe; + vesting_account: Array; + vesting_account_aggregate: Bdjuno_Provider_Vesting_Account_Aggregate; + vesting_account_by_pk?: Maybe; + vesting_period: Array; + vesting_period_aggregate: Bdjuno_Provider_Vesting_Period_Aggregate; +}; + + +export type Bdjuno_Providerquery_RootAccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAccount_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAccount_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootAction_Account_BalanceArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_DelegationArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Delegation_RewardArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Delegation_TotalArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Delegator_Withdraw_AddressArgs = { + address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootAction_RedelegationArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Unbonding_DelegationArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Unbonding_Delegation_TotalArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Validator_Commission_AmountArgs = { + address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootAction_Validator_DelegationsArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Validator_Redelegations_FromArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + height?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAction_Validator_Unbonding_DelegationsArgs = { + address: Scalars['String']; + count_total?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_From_GenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_From_Genesis_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_DayArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_Day_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_HourArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_Hour_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_MinuteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootAverage_Block_Time_Per_Minute_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootBlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootBlock_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootBlock_By_PkArgs = { + height: Scalars['bdjuno_provider_bigint']; +}; + + +export type Bdjuno_Providerquery_RootCommunity_PoolArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootCommunity_Pool_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDistribution_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDistribution_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDistribution_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_EvidenceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_Evidence_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_Vote_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootDouble_Sign_Vote_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootFee_Grant_AllowanceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootFee_Grant_Allowance_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootFee_Grant_Allowance_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootGenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootGenesis_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootGov_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootGov_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootGov_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootInflationArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootInflation_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMessageArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMessage_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMessages_By_AddressArgs = { + args: Bdjuno_Provider_Messages_By_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMessages_By_Address_AggregateArgs = { + args: Bdjuno_Provider_Messages_By_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMint_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMint_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootMint_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootModulesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootModules_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootModules_By_PkArgs = { + module_name: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootPre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootPre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposalArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootProposal_DepositArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Deposit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Staking_Pool_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Staking_Pool_Snapshot_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Staking_Pool_Snapshot_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootProposal_Tally_ResultArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Tally_Result_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Tally_Result_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootProposal_Validator_Status_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Validator_Status_Snapshot_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Validator_Status_Snapshot_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootProposal_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootProposal_Vote_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSlashing_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSlashing_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSlashing_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootSoftware_Upgrade_PlanArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSoftware_Upgrade_Plan_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootStaking_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootStaking_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootStaking_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Bdjuno_Providerquery_RootStaking_PoolArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootStaking_Pool_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSupplyArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootSupply_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootTokenArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_PriceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_Price_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_Price_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootToken_Price_HistoryArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_Price_History_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_UnitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootToken_Unit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootTransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootTransaction_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_CommissionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Commission_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Commission_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_DescriptionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Description_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Description_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Info_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Info_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Signing_Info_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_StatusArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Status_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Status_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootValidator_Voting_PowerArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Voting_Power_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootValidator_Voting_Power_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Bdjuno_Providerquery_RootVesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootVesting_Account_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootVesting_Account_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Bdjuno_Providerquery_RootVesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Bdjuno_Providerquery_RootVesting_Period_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "bigint". All fields are combined with logical 'AND'. */ +export type Bigint_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "block" */ +export type Block = { + __typename?: 'block'; + /** An object relationship */ + ccv_validator?: Maybe; + hash: Scalars['String']; + height: Scalars['bigint']; + num_txs?: Maybe; + /** An array relationship */ + pre_commits: Array; + /** An aggregate relationship */ + pre_commits_aggregate: Pre_Commit_Aggregate; + proposer_address?: Maybe; + timestamp: Scalars['timestamp']; + total_gas?: Maybe; + /** An array relationship */ + transactions: Array; + /** An object relationship */ + validator?: Maybe; +}; + + +/** columns and relationships of "block" */ +export type BlockPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type BlockTransactionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "block" */ +export type Block_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "block" */ +export type Block_Avg_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "block". All fields are combined with a logical 'AND'. */ +export type Block_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + ccv_validator?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions?: InputMaybe; + validator?: InputMaybe; +}; + +/** order by max() on columns of table "block" */ +export type Block_Max_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by min() on columns of table "block" */ +export type Block_Min_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Ordering options when selecting data from "block". */ +export type Block_Order_By = { + ccv_validator?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions_aggregate?: InputMaybe; + validator?: InputMaybe; +}; + +/** select columns of table "block" */ +export enum Block_Select_Column { + /** column name */ + Hash = 'hash', + /** column name */ + Height = 'height', + /** column name */ + NumTxs = 'num_txs', + /** column name */ + ProposerAddress = 'proposer_address', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + TotalGas = 'total_gas' +} + +/** order by stddev() on columns of table "block" */ +export type Block_Stddev_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "block" */ +export type Block_Stddev_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "block" */ +export type Block_Stddev_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Streaming cursor of the table "block" */ +export type Block_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Block_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Block_Stream_Cursor_Value_Input = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by sum() on columns of table "block" */ +export type Block_Sum_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by var_pop() on columns of table "block" */ +export type Block_Var_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by var_samp() on columns of table "block" */ +export type Block_Var_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by variance() on columns of table "block" */ +export type Block_Variance_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "bytea". All fields are combined with logical 'AND'. */ +export type Bytea_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "ccv_consumer_chain" */ +export type Ccv_Consumer_Chain = { + __typename?: 'ccv_consumer_chain'; + chain_id?: Maybe; + height: Scalars['bigint']; + initial_val_set?: Maybe; + provider_channel_id?: Maybe; + provider_client_id: Scalars['String']; + provider_client_state?: Maybe; + provider_consensus_state?: Maybe; +}; + + +/** columns and relationships of "ccv_consumer_chain" */ +export type Ccv_Consumer_ChainInitial_Val_SetArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "ccv_consumer_chain" */ +export type Ccv_Consumer_ChainProvider_Client_StateArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "ccv_consumer_chain" */ +export type Ccv_Consumer_ChainProvider_Consensus_StateArgs = { + path?: InputMaybe; +}; + +/** aggregated selection of "ccv_consumer_chain" */ +export type Ccv_Consumer_Chain_Aggregate = { + __typename?: 'ccv_consumer_chain_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "ccv_consumer_chain" */ +export type Ccv_Consumer_Chain_Aggregate_Fields = { + __typename?: 'ccv_consumer_chain_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 "ccv_consumer_chain" */ +export type Ccv_Consumer_Chain_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Ccv_Consumer_Chain_Avg_Fields = { + __typename?: 'ccv_consumer_chain_avg_fields'; + height?: Maybe; +}; + +/** Boolean expression to filter rows from the table "ccv_consumer_chain". All fields are combined with a logical 'AND'. */ +export type Ccv_Consumer_Chain_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + chain_id?: InputMaybe; + height?: InputMaybe; + initial_val_set?: InputMaybe; + provider_channel_id?: InputMaybe; + provider_client_id?: InputMaybe; + provider_client_state?: InputMaybe; + provider_consensus_state?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Ccv_Consumer_Chain_Max_Fields = { + __typename?: 'ccv_consumer_chain_max_fields'; + chain_id?: Maybe; + height?: Maybe; + provider_channel_id?: Maybe; + provider_client_id?: Maybe; +}; + +/** aggregate min on columns */ +export type Ccv_Consumer_Chain_Min_Fields = { + __typename?: 'ccv_consumer_chain_min_fields'; + chain_id?: Maybe; + height?: Maybe; + provider_channel_id?: Maybe; + provider_client_id?: Maybe; +}; + +/** Ordering options when selecting data from "ccv_consumer_chain". */ +export type Ccv_Consumer_Chain_Order_By = { + chain_id?: InputMaybe; + height?: InputMaybe; + initial_val_set?: InputMaybe; + provider_channel_id?: InputMaybe; + provider_client_id?: InputMaybe; + provider_client_state?: InputMaybe; + provider_consensus_state?: InputMaybe; +}; + +/** select columns of table "ccv_consumer_chain" */ +export enum Ccv_Consumer_Chain_Select_Column { + /** column name */ + ChainId = 'chain_id', + /** column name */ + Height = 'height', + /** column name */ + InitialValSet = 'initial_val_set', + /** column name */ + ProviderChannelId = 'provider_channel_id', + /** column name */ + ProviderClientId = 'provider_client_id', + /** column name */ + ProviderClientState = 'provider_client_state', + /** column name */ + ProviderConsensusState = 'provider_consensus_state' +} + +/** aggregate stddev on columns */ +export type Ccv_Consumer_Chain_Stddev_Fields = { + __typename?: 'ccv_consumer_chain_stddev_fields'; + height?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Ccv_Consumer_Chain_Stddev_Pop_Fields = { + __typename?: 'ccv_consumer_chain_stddev_pop_fields'; + height?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Ccv_Consumer_Chain_Stddev_Samp_Fields = { + __typename?: 'ccv_consumer_chain_stddev_samp_fields'; + height?: Maybe; +}; + +/** Streaming cursor of the table "ccv_consumer_chain" */ +export type Ccv_Consumer_Chain_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Ccv_Consumer_Chain_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Ccv_Consumer_Chain_Stream_Cursor_Value_Input = { + chain_id?: InputMaybe; + height?: InputMaybe; + initial_val_set?: InputMaybe; + provider_channel_id?: InputMaybe; + provider_client_id?: InputMaybe; + provider_client_state?: InputMaybe; + provider_consensus_state?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Ccv_Consumer_Chain_Sum_Fields = { + __typename?: 'ccv_consumer_chain_sum_fields'; + height?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Ccv_Consumer_Chain_Var_Pop_Fields = { + __typename?: 'ccv_consumer_chain_var_pop_fields'; + height?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Ccv_Consumer_Chain_Var_Samp_Fields = { + __typename?: 'ccv_consumer_chain_var_samp_fields'; + height?: Maybe; +}; + +/** aggregate variance on columns */ +export type Ccv_Consumer_Chain_Variance_Fields = { + __typename?: 'ccv_consumer_chain_variance_fields'; + height?: Maybe; +}; + +/** columns and relationships of "ccv_consumer_params" */ +export type Ccv_Consumer_Params = { + __typename?: 'ccv_consumer_params'; + height: Scalars['bigint']; + one_row_id: Scalars['Boolean']; + params: Scalars['jsonb']; +}; + + +/** columns and relationships of "ccv_consumer_params" */ +export type Ccv_Consumer_ParamsParamsArgs = { + path?: InputMaybe; +}; + +/** aggregated selection of "ccv_consumer_params" */ +export type Ccv_Consumer_Params_Aggregate = { + __typename?: 'ccv_consumer_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "ccv_consumer_params" */ +export type Ccv_Consumer_Params_Aggregate_Fields = { + __typename?: 'ccv_consumer_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 "ccv_consumer_params" */ +export type Ccv_Consumer_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Ccv_Consumer_Params_Avg_Fields = { + __typename?: 'ccv_consumer_params_avg_fields'; + height?: Maybe; +}; + +/** Boolean expression to filter rows from the table "ccv_consumer_params". All fields are combined with a logical 'AND'. */ +export type Ccv_Consumer_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Ccv_Consumer_Params_Max_Fields = { + __typename?: 'ccv_consumer_params_max_fields'; + height?: Maybe; +}; + +/** aggregate min on columns */ +export type Ccv_Consumer_Params_Min_Fields = { + __typename?: 'ccv_consumer_params_min_fields'; + height?: Maybe; +}; + +/** Ordering options when selecting data from "ccv_consumer_params". */ +export type Ccv_Consumer_Params_Order_By = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +/** select columns of table "ccv_consumer_params" */ +export enum Ccv_Consumer_Params_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + OneRowId = 'one_row_id', + /** column name */ + Params = 'params' +} + +/** aggregate stddev on columns */ +export type Ccv_Consumer_Params_Stddev_Fields = { + __typename?: 'ccv_consumer_params_stddev_fields'; + height?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Ccv_Consumer_Params_Stddev_Pop_Fields = { + __typename?: 'ccv_consumer_params_stddev_pop_fields'; + height?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Ccv_Consumer_Params_Stddev_Samp_Fields = { + __typename?: 'ccv_consumer_params_stddev_samp_fields'; + height?: Maybe; +}; + +/** Streaming cursor of the table "ccv_consumer_params" */ +export type Ccv_Consumer_Params_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Ccv_Consumer_Params_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Ccv_Consumer_Params_Stream_Cursor_Value_Input = { + height?: InputMaybe; + one_row_id?: InputMaybe; + params?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Ccv_Consumer_Params_Sum_Fields = { + __typename?: 'ccv_consumer_params_sum_fields'; + height?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Ccv_Consumer_Params_Var_Pop_Fields = { + __typename?: 'ccv_consumer_params_var_pop_fields'; + height?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Ccv_Consumer_Params_Var_Samp_Fields = { + __typename?: 'ccv_consumer_params_var_samp_fields'; + height?: Maybe; +}; + +/** aggregate variance on columns */ +export type Ccv_Consumer_Params_Variance_Fields = { + __typename?: 'ccv_consumer_params_variance_fields'; + height?: Maybe; +}; + +/** columns and relationships of "ccv_validator" */ +export type Ccv_Validator = { + __typename?: 'ccv_validator'; + ccv_validator?: Maybe; + ccv_validator_info?: Maybe; + consumer_consensus_address: Scalars['String']; + consumer_operator_address: Scalars['String']; + consumer_self_delegate_address: Scalars['String']; + height: Scalars['bigint']; + provider_consensus_address: Scalars['String']; + provider_operator_address: Scalars['String']; + provider_self_delegate_address: Scalars['String']; + validator?: Maybe; +}; + +/** Boolean expression to filter rows from the table "ccv_validator". All fields are combined with a logical 'AND'. */ +export type Ccv_Validator_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + consumer_consensus_address?: InputMaybe; + consumer_operator_address?: InputMaybe; + consumer_self_delegate_address?: InputMaybe; + height?: InputMaybe; + provider_consensus_address?: InputMaybe; + provider_operator_address?: InputMaybe; + provider_self_delegate_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "ccv_validator". */ +export type Ccv_Validator_Order_By = { + consumer_consensus_address?: InputMaybe; + consumer_operator_address?: InputMaybe; + consumer_self_delegate_address?: InputMaybe; + height?: InputMaybe; + provider_consensus_address?: InputMaybe; + provider_operator_address?: InputMaybe; + provider_self_delegate_address?: InputMaybe; +}; + +/** select columns of table "ccv_validator" */ +export enum Ccv_Validator_Select_Column { + /** column name */ + ConsumerConsensusAddress = 'consumer_consensus_address', + /** column name */ + ConsumerOperatorAddress = 'consumer_operator_address', + /** column name */ + ConsumerSelfDelegateAddress = 'consumer_self_delegate_address', + /** column name */ + Height = 'height', + /** column name */ + ProviderConsensusAddress = 'provider_consensus_address', + /** column name */ + ProviderOperatorAddress = 'provider_operator_address', + /** column name */ + ProviderSelfDelegateAddress = 'provider_self_delegate_address' +} + +/** Streaming cursor of the table "ccv_validator" */ +export type Ccv_Validator_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Ccv_Validator_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Ccv_Validator_Stream_Cursor_Value_Input = { + consumer_consensus_address?: InputMaybe; + consumer_operator_address?: InputMaybe; + consumer_self_delegate_address?: InputMaybe; + height?: InputMaybe; + provider_consensus_address?: InputMaybe; + provider_operator_address?: InputMaybe; + provider_self_delegate_address?: InputMaybe; +}; + +/** ordering argument of a cursor */ +export enum Cursor_Ordering { + /** ascending ordering of the cursor */ + Asc = 'ASC', + /** descending ordering of the cursor */ + Desc = 'DESC' +} + +/** columns and relationships of "fee_grant_allowance" */ +export type Fee_Grant_Allowance = { + __typename?: 'fee_grant_allowance'; + allowance: Scalars['jsonb']; + /** An object relationship */ + grantee: Account; + grantee_address: Scalars['String']; + /** An object relationship */ + granter: Account; + granter_address: Scalars['String']; + height: Scalars['bigint']; +}; + + +/** columns and relationships of "fee_grant_allowance" */ +export type Fee_Grant_AllowanceAllowanceArgs = { + path?: InputMaybe; +}; + +/** order by aggregate values of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Avg_Order_By = { + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "fee_grant_allowance". All fields are combined with a logical 'AND'. */ +export type Fee_Grant_Allowance_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + allowance?: InputMaybe; + grantee?: InputMaybe; + grantee_address?: InputMaybe; + granter?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** order by max() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Max_Order_By = { + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** order by min() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Min_Order_By = { + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "fee_grant_allowance". */ +export type Fee_Grant_Allowance_Order_By = { + allowance?: InputMaybe; + grantee?: InputMaybe; + grantee_address?: InputMaybe; + granter?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "fee_grant_allowance" */ +export enum Fee_Grant_Allowance_Select_Column { + /** column name */ + Allowance = 'allowance', + /** column name */ + GranteeAddress = 'grantee_address', + /** column name */ + GranterAddress = 'granter_address', + /** column name */ + Height = 'height' +} + +/** order by stddev() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stddev_Order_By = { + height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stddev_Pop_Order_By = { + height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stddev_Samp_Order_By = { + height?: InputMaybe; +}; + +/** Streaming cursor of the table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Fee_Grant_Allowance_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Fee_Grant_Allowance_Stream_Cursor_Value_Input = { + allowance?: InputMaybe; + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; +}; + +/** order by sum() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Sum_Order_By = { + height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Var_Pop_Order_By = { + height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Var_Samp_Order_By = { + height?: InputMaybe; +}; + +/** order by variance() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Variance_Order_By = { + height?: InputMaybe; +}; + +/** columns and relationships of "genesis" */ +export type Genesis = { + __typename?: 'genesis'; + chain_id: Scalars['String']; + initial_height: Scalars['bigint']; + time: Scalars['timestamp']; +}; + +/** Boolean expression to filter rows from the table "genesis". All fields are combined with a logical 'AND'. */ +export type Genesis_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +/** Ordering options when selecting data from "genesis". */ +export type Genesis_Order_By = { + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +/** select columns of table "genesis" */ +export enum Genesis_Select_Column { + /** column name */ + ChainId = 'chain_id', + /** column name */ + InitialHeight = 'initial_height', + /** column name */ + Time = 'time' +} + +/** Streaming cursor of the table "genesis" */ +export type Genesis_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Genesis_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Genesis_Stream_Cursor_Value_Input = { + chain_id?: InputMaybe; + initial_height?: InputMaybe; + time?: InputMaybe; +}; + +export type Jsonb_Cast_Exp = { + String?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. */ +export type Jsonb_Comparison_Exp = { + _cast?: InputMaybe; + /** is the column contained in the given json value */ + _contained_in?: InputMaybe; + /** does the column contain the given json value at the top level */ + _contains?: InputMaybe; + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + /** does the string exist as a top-level key in the column */ + _has_key?: InputMaybe; + /** do all of these strings exist as top-level keys in the column */ + _has_keys_all?: InputMaybe>; + /** do any of these strings exist as top-level keys in the column */ + _has_keys_any?: InputMaybe>; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "message" */ +export type Message = { + __typename?: 'message'; + height: Scalars['bigint']; + index: Scalars['bigint']; + involved_accounts_addresses: Scalars['_text']; + /** An object relationship */ + transaction?: Maybe; + /** An object relationship */ + transactionByPartitionIdTransactionHash?: Maybe; + transaction_hash: Scalars['String']; + type: Scalars['String']; + value: Scalars['jsonb']; +}; + + +/** columns and relationships of "message" */ +export type MessageValueArgs = { + path?: InputMaybe; +}; + +/** order by aggregate values of table "message" */ +export type Message_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "message" */ +export type Message_Avg_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "message". All fields are combined with a logical 'AND'. */ +export type Message_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe<_Text_Comparison_Exp>; + transaction?: InputMaybe; + transactionByPartitionIdTransactionHash?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +/** order by max() on columns of table "message" */ +export type Message_Max_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; +}; + +/** order by min() on columns of table "message" */ +export type Message_Min_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; +}; + +/** Ordering options when selecting data from "message". */ +export type Message_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe; + transaction?: InputMaybe; + transactionByPartitionIdTransactionHash?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +/** select columns of table "message" */ +export enum Message_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Index = 'index', + /** column name */ + InvolvedAccountsAddresses = 'involved_accounts_addresses', + /** column name */ + TransactionHash = 'transaction_hash', + /** column name */ + Type = 'type', + /** column name */ + Value = 'value' +} + +/** order by stddev() on columns of table "message" */ +export type Message_Stddev_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "message" */ +export type Message_Stddev_Pop_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "message" */ +export type Message_Stddev_Samp_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** Streaming cursor of the table "message" */ +export type Message_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Message_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Message_Stream_Cursor_Value_Input = { + height?: InputMaybe; + index?: InputMaybe; + involved_accounts_addresses?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; + value?: InputMaybe; +}; + +/** order by sum() on columns of table "message" */ +export type Message_Sum_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by var_pop() on columns of table "message" */ +export type Message_Var_Pop_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by var_samp() on columns of table "message" */ +export type Message_Var_Samp_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +/** order by variance() on columns of table "message" */ +export type Message_Variance_Order_By = { + height?: InputMaybe; + index?: InputMaybe; +}; + +export type Messages_By_Address_Args = { + addresses?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; + types?: InputMaybe; +}; + +/** columns and relationships of "modules" */ +export type Modules = { + __typename?: 'modules'; + module_name: Scalars['String']; +}; + +/** Boolean expression to filter rows from the table "modules". All fields are combined with a logical 'AND'. */ +export type Modules_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + module_name?: InputMaybe; +}; + +/** Ordering options when selecting data from "modules". */ +export type Modules_Order_By = { + module_name?: InputMaybe; +}; + +/** select columns of table "modules" */ +export enum Modules_Select_Column { + /** column name */ + ModuleName = 'module_name' +} + +/** Streaming cursor of the table "modules" */ +export type Modules_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Modules_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Modules_Stream_Cursor_Value_Input = { + module_name?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "numeric". All fields are combined with logical 'AND'. */ +export type Numeric_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** column ordering options */ +export enum Order_By { + /** in ascending order, nulls last */ + Asc = 'asc', + /** in ascending order, nulls first */ + AscNullsFirst = 'asc_nulls_first', + /** in ascending order, nulls last */ + AscNullsLast = 'asc_nulls_last', + /** in descending order, nulls first */ + Desc = 'desc', + /** in descending order, nulls first */ + DescNullsFirst = 'desc_nulls_first', + /** in descending order, nulls last */ + DescNullsLast = 'desc_nulls_last' +} + +/** columns and relationships of "pre_commit" */ +export type Pre_Commit = { + __typename?: 'pre_commit'; + height: Scalars['bigint']; + proposer_priority: Scalars['bigint']; + timestamp: Scalars['timestamp']; + /** An object relationship */ + validator: Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** aggregated selection of "pre_commit" */ +export type Pre_Commit_Aggregate = { + __typename?: 'pre_commit_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Pre_Commit_Aggregate_Bool_Exp = { + count?: InputMaybe; +}; + +export type Pre_Commit_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + +/** aggregate fields of "pre_commit" */ +export type Pre_Commit_Aggregate_Fields = { + __typename?: 'pre_commit_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 "pre_commit" */ +export type Pre_Commit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "pre_commit" */ +export type Pre_Commit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Pre_Commit_Avg_Fields = { + __typename?: 'pre_commit_avg_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by avg() on columns of table "pre_commit" */ +export type Pre_Commit_Avg_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "pre_commit". All fields are combined with a logical 'AND'. */ +export type Pre_Commit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Pre_Commit_Max_Fields = { + __typename?: 'pre_commit_max_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by max() on columns of table "pre_commit" */ +export type Pre_Commit_Max_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Pre_Commit_Min_Fields = { + __typename?: 'pre_commit_min_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by min() on columns of table "pre_commit" */ +export type Pre_Commit_Min_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "pre_commit". */ +export type Pre_Commit_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "pre_commit" */ +export enum Pre_Commit_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + ProposerPriority = 'proposer_priority', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** aggregate stddev on columns */ +export type Pre_Commit_Stddev_Fields = { + __typename?: 'pre_commit_stddev_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev() on columns of table "pre_commit" */ +export type Pre_Commit_Stddev_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Pre_Commit_Stddev_Pop_Fields = { + __typename?: 'pre_commit_stddev_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_pop() on columns of table "pre_commit" */ +export type Pre_Commit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Pre_Commit_Stddev_Samp_Fields = { + __typename?: 'pre_commit_stddev_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_samp() on columns of table "pre_commit" */ +export type Pre_Commit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Streaming cursor of the table "pre_commit" */ +export type Pre_Commit_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Pre_Commit_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Pre_Commit_Stream_Cursor_Value_Input = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Pre_Commit_Sum_Fields = { + __typename?: 'pre_commit_sum_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by sum() on columns of table "pre_commit" */ +export type Pre_Commit_Sum_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Pre_Commit_Var_Pop_Fields = { + __typename?: 'pre_commit_var_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_pop() on columns of table "pre_commit" */ +export type Pre_Commit_Var_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Pre_Commit_Var_Samp_Fields = { + __typename?: 'pre_commit_var_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_samp() on columns of table "pre_commit" */ +export type Pre_Commit_Var_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Pre_Commit_Variance_Fields = { + __typename?: 'pre_commit_variance_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by variance() on columns of table "pre_commit" */ +export type Pre_Commit_Variance_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +export type Proposal_Aggregate_Bool_Exp = { + count?: InputMaybe; +}; + +export type Proposal_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + +/** columns and relationships of "account" */ +export type Provider_Account = { + __typename?: 'provider_account'; + address: Scalars['String']; + /** An array relationship */ + proposal_deposits: Array; + /** An array relationship */ + proposal_votes: Array; + /** An array relationship */ + proposals: Array; + /** An aggregate relationship */ + proposals_aggregate: Provider_Proposal_Aggregate; + /** An array relationship */ + validator_infos: Array; + /** An object relationship */ + vesting_account?: Maybe; + /** An array relationship */ + vesting_accounts: Array; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountProposalsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountProposals_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountValidator_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type Provider_AccountVesting_AccountsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "account". All fields are combined with a logical 'AND'. */ +export type Provider_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + address?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposals?: InputMaybe; + proposals_aggregate?: InputMaybe; + validator_infos?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts?: InputMaybe; +}; + +/** Ordering options when selecting data from "account". */ +export type Provider_Account_Order_By = { + address?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposals_aggregate?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + vesting_account?: InputMaybe; + vesting_accounts_aggregate?: InputMaybe; +}; + +/** select columns of table "account" */ +export enum Provider_Account_Select_Column { + /** column name */ + Address = 'address' +} + +/** Streaming cursor of the table "account" */ +export type Provider_Account_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Account_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Account_Stream_Cursor_Value_Input = { + address?: InputMaybe; +}; + +/** columns and relationships of "block" */ +export type Provider_Block = { + __typename?: 'provider_block'; + hash: Scalars['String']; + height: Scalars['bigint']; + num_txs?: Maybe; + /** An array relationship */ + pre_commits: Array; + /** An aggregate relationship */ + pre_commits_aggregate: Provider_Pre_Commit_Aggregate; + /** An array relationship */ + proposal_deposits: Array; + /** An array relationship */ + proposal_votes: Array; + proposer_address?: Maybe; + timestamp: Scalars['timestamp']; + total_gas?: Maybe; + /** An array relationship */ + transactions: Array; + /** An object relationship */ + validator?: Maybe; + /** An array relationship */ + validator_voting_powers: Array; + /** An aggregate relationship */ + validator_voting_powers_aggregate: Provider_Validator_Voting_Power_Aggregate; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockTransactionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "block" */ +export type Provider_BlockValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "block" */ +export type Provider_Block_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "block" */ +export type Provider_Block_Avg_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "block". All fields are combined with a logical 'AND'. */ +export type Provider_Block_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_votes?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** order by max() on columns of table "block" */ +export type Provider_Block_Max_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by min() on columns of table "block" */ +export type Provider_Block_Min_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Ordering options when selecting data from "block". */ +export type Provider_Block_Order_By = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; + transactions_aggregate?: InputMaybe; + validator?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** select columns of table "block" */ +export enum Provider_Block_Select_Column { + /** column name */ + Hash = 'hash', + /** column name */ + Height = 'height', + /** column name */ + NumTxs = 'num_txs', + /** column name */ + ProposerAddress = 'proposer_address', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + TotalGas = 'total_gas' +} + +/** order by stddev() on columns of table "block" */ +export type Provider_Block_Stddev_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "block" */ +export type Provider_Block_Stddev_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "block" */ +export type Provider_Block_Stddev_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** Streaming cursor of the table "block" */ +export type Provider_Block_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Block_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Block_Stream_Cursor_Value_Input = { + hash?: InputMaybe; + height?: InputMaybe; + num_txs?: InputMaybe; + proposer_address?: InputMaybe; + timestamp?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by sum() on columns of table "block" */ +export type Provider_Block_Sum_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by var_pop() on columns of table "block" */ +export type Provider_Block_Var_Pop_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by var_samp() on columns of table "block" */ +export type Provider_Block_Var_Samp_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** order by variance() on columns of table "block" */ +export type Provider_Block_Variance_Order_By = { + height?: InputMaybe; + num_txs?: InputMaybe; + total_gas?: InputMaybe; +}; + +/** ordering argument of a cursor */ +export enum Provider_Cursor_Ordering { + /** ascending ordering of the cursor */ + Asc = 'ASC', + /** descending ordering of the cursor */ + Desc = 'DESC' +} + +/** columns and relationships of "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence = { + __typename?: 'provider_double_sign_evidence'; + /** An object relationship */ + doubleSignVoteByVoteAId: Provider_Double_Sign_Vote; + /** An object relationship */ + double_sign_vote: Provider_Double_Sign_Vote; + height: Scalars['bigint']; + vote_a_id: Scalars['bigint']; + vote_b_id: Scalars['bigint']; +}; + +/** order by aggregate values of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Avg_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "double_sign_evidence". All fields are combined with a logical 'AND'. */ +export type Provider_Double_Sign_Evidence_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by max() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Max_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by min() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Min_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** Ordering options when selecting data from "double_sign_evidence". */ +export type Provider_Double_Sign_Evidence_Order_By = { + doubleSignVoteByVoteAId?: InputMaybe; + double_sign_vote?: InputMaybe; + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** select columns of table "double_sign_evidence" */ +export enum Provider_Double_Sign_Evidence_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + VoteAId = 'vote_a_id', + /** column name */ + VoteBId = 'vote_b_id' +} + +/** order by stddev() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Stddev_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Stddev_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Stddev_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** Streaming cursor of the table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Double_Sign_Evidence_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Double_Sign_Evidence_Stream_Cursor_Value_Input = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by sum() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Sum_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Var_Pop_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Var_Samp_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** order by variance() on columns of table "double_sign_evidence" */ +export type Provider_Double_Sign_Evidence_Variance_Order_By = { + height?: InputMaybe; + vote_a_id?: InputMaybe; + vote_b_id?: InputMaybe; +}; + +/** columns and relationships of "double_sign_vote" */ +export type Provider_Double_Sign_Vote = { + __typename?: 'provider_double_sign_vote'; + block_id: Scalars['String']; + /** An array relationship */ + doubleSignEvidencesByVoteBId: Array; + /** An array relationship */ + double_sign_evidences: Array; + height: Scalars['bigint']; + round: Scalars['Int']; + signature: Scalars['String']; + type: Scalars['smallint']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; + validator_index: Scalars['Int']; +}; + + +/** columns and relationships of "double_sign_vote" */ +export type Provider_Double_Sign_VoteDoubleSignEvidencesByVoteBIdArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "double_sign_vote" */ +export type Provider_Double_Sign_VoteDouble_Sign_EvidencesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Avg_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "double_sign_vote". All fields are combined with a logical 'AND'. */ +export type Provider_Double_Sign_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId?: InputMaybe; + double_sign_evidences?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by max() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Max_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by min() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Min_Order_By = { + block_id?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** Ordering options when selecting data from "double_sign_vote". */ +export type Provider_Double_Sign_Vote_Order_By = { + block_id?: InputMaybe; + doubleSignEvidencesByVoteBId_aggregate?: InputMaybe; + double_sign_evidences_aggregate?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** select columns of table "double_sign_vote" */ +export enum Provider_Double_Sign_Vote_Select_Column { + /** column name */ + BlockId = 'block_id', + /** column name */ + Height = 'height', + /** column name */ + Round = 'round', + /** column name */ + Signature = 'signature', + /** column name */ + Type = 'type', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + ValidatorIndex = 'validator_index' +} + +/** order by stddev() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Stddev_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** Streaming cursor of the table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Double_Sign_Vote_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Double_Sign_Vote_Stream_Cursor_Value_Input = { + block_id?: InputMaybe; + height?: InputMaybe; + round?: InputMaybe; + signature?: InputMaybe; + type?: InputMaybe; + validator_address?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by sum() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Sum_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by var_pop() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by var_samp() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** order by variance() on columns of table "double_sign_vote" */ +export type Provider_Double_Sign_Vote_Variance_Order_By = { + height?: InputMaybe; + round?: InputMaybe; + type?: InputMaybe; + validator_index?: InputMaybe; +}; + +/** columns and relationships of "pre_commit" */ +export type Provider_Pre_Commit = { + __typename?: 'provider_pre_commit'; + height: Scalars['bigint']; + proposer_priority: Scalars['bigint']; + timestamp: Scalars['timestamp']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** aggregated selection of "pre_commit" */ +export type Provider_Pre_Commit_Aggregate = { + __typename?: 'provider_pre_commit_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "pre_commit" */ +export type Provider_Pre_Commit_Aggregate_Fields = { + __typename?: 'provider_pre_commit_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 "pre_commit" */ +export type Provider_Pre_Commit_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "pre_commit" */ +export type Provider_Pre_Commit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Provider_Pre_Commit_Avg_Fields = { + __typename?: 'provider_pre_commit_avg_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by avg() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Avg_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "pre_commit". All fields are combined with a logical 'AND'. */ +export type Provider_Pre_Commit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Provider_Pre_Commit_Max_Fields = { + __typename?: 'provider_pre_commit_max_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by max() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Max_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Provider_Pre_Commit_Min_Fields = { + __typename?: 'provider_pre_commit_min_fields'; + height?: Maybe; + proposer_priority?: Maybe; + timestamp?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by min() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Min_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "pre_commit". */ +export type Provider_Pre_Commit_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "pre_commit" */ +export enum Provider_Pre_Commit_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + ProposerPriority = 'proposer_priority', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** aggregate stddev on columns */ +export type Provider_Pre_Commit_Stddev_Fields = { + __typename?: 'provider_pre_commit_stddev_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Stddev_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Provider_Pre_Commit_Stddev_Pop_Fields = { + __typename?: 'provider_pre_commit_stddev_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_pop() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Provider_Pre_Commit_Stddev_Samp_Fields = { + __typename?: 'provider_pre_commit_stddev_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_samp() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Streaming cursor of the table "pre_commit" */ +export type Provider_Pre_Commit_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Pre_Commit_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Pre_Commit_Stream_Cursor_Value_Input = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + timestamp?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Provider_Pre_Commit_Sum_Fields = { + __typename?: 'provider_pre_commit_sum_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by sum() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Sum_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Provider_Pre_Commit_Var_Pop_Fields = { + __typename?: 'provider_pre_commit_var_pop_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_pop() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Var_Pop_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Provider_Pre_Commit_Var_Samp_Fields = { + __typename?: 'provider_pre_commit_var_samp_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_samp() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Var_Samp_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Provider_Pre_Commit_Variance_Fields = { + __typename?: 'provider_pre_commit_variance_fields'; + height?: Maybe; + proposer_priority?: Maybe; + voting_power?: Maybe; +}; + +/** order by variance() on columns of table "pre_commit" */ +export type Provider_Pre_Commit_Variance_Order_By = { + height?: InputMaybe; + proposer_priority?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** columns and relationships of "proposal" */ +export type Provider_Proposal = { + __typename?: 'provider_proposal'; + content: Scalars['jsonb']; + deposit_end_time?: Maybe; + description: Scalars['String']; + id: Scalars['Int']; + /** An array relationship */ + proposal_deposits: Array; + proposal_route: Scalars['String']; + /** An object relationship */ + proposal_tally_result?: Maybe; + /** An array relationship */ + proposal_tally_results: Array; + proposal_type: Scalars['String']; + /** An array relationship */ + proposal_votes: Array; + /** An object relationship */ + proposer: Provider_Account; + proposer_address: Scalars['String']; + /** An object relationship */ + staking_pool_snapshot?: Maybe; + status?: Maybe; + submit_time: Scalars['timestamp']; + title: Scalars['String']; + /** An array relationship */ + validator_status_snapshots: Array; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalContentArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalProposal_DepositsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalProposal_Tally_ResultsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalProposal_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "proposal" */ +export type Provider_ProposalValidator_Status_SnapshotsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** aggregated selection of "proposal" */ +export type Provider_Proposal_Aggregate = { + __typename?: 'provider_proposal_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "proposal" */ +export type Provider_Proposal_Aggregate_Fields = { + __typename?: 'provider_proposal_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 "proposal" */ +export type Provider_Proposal_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "proposal" */ +export type Provider_Proposal_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Provider_Proposal_Avg_Fields = { + __typename?: 'provider_proposal_avg_fields'; + id?: Maybe; +}; + +/** order by avg() on columns of table "proposal" */ +export type Provider_Proposal_Avg_Order_By = { + id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** columns and relationships of "proposal_deposit" */ +export type Provider_Proposal_Deposit = { + __typename?: 'provider_proposal_deposit'; + amount?: Maybe; + /** An object relationship */ + block?: Maybe; + /** An object relationship */ + depositor?: Maybe; + depositor_address?: Maybe; + height: Scalars['bigint']; + /** An object relationship */ + proposal: Provider_Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; +}; + +/** order by aggregate values of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_deposit". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Deposit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe<_Coin_Comparison_Exp>; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Max_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Min_Order_By = { + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_deposit". */ +export type Provider_Proposal_Deposit_Order_By = { + amount?: InputMaybe; + block?: InputMaybe; + depositor?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** select columns of table "proposal_deposit" */ +export enum Provider_Proposal_Deposit_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + DepositorAddress = 'depositor_address', + /** column name */ + Height = 'height', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Timestamp = 'timestamp' +} + +/** order by stddev() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Deposit_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Deposit_Stream_Cursor_Value_Input = { + amount?: InputMaybe; + depositor_address?: InputMaybe; + height?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_deposit" */ +export type Provider_Proposal_Deposit_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Provider_Proposal_Max_Fields = { + __typename?: 'provider_proposal_max_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +/** order by max() on columns of table "proposal" */ +export type Provider_Proposal_Max_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Provider_Proposal_Min_Fields = { + __typename?: 'provider_proposal_min_fields'; + deposit_end_time?: Maybe; + description?: Maybe; + id?: Maybe; + proposal_route?: Maybe; + proposal_type?: Maybe; + proposer_address?: Maybe; + status?: Maybe; + submit_time?: Maybe; + title?: Maybe; + voting_end_time?: Maybe; + voting_start_time?: Maybe; +}; + +/** order by min() on columns of table "proposal" */ +export type Provider_Proposal_Min_Order_By = { + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal". */ +export type Provider_Proposal_Order_By = { + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_deposits_aggregate?: InputMaybe; + proposal_route?: InputMaybe; + proposal_tally_result?: InputMaybe; + proposal_tally_results_aggregate?: InputMaybe; + proposal_type?: InputMaybe; + proposal_votes_aggregate?: InputMaybe; + proposer?: InputMaybe; + proposer_address?: InputMaybe; + staking_pool_snapshot?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + validator_status_snapshots_aggregate?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** select columns of table "proposal" */ +export enum Provider_Proposal_Select_Column { + /** column name */ + Content = 'content', + /** column name */ + DepositEndTime = 'deposit_end_time', + /** column name */ + Description = 'description', + /** column name */ + Id = 'id', + /** column name */ + ProposalRoute = 'proposal_route', + /** column name */ + ProposalType = 'proposal_type', + /** column name */ + ProposerAddress = 'proposer_address', + /** column name */ + Status = 'status', + /** column name */ + SubmitTime = 'submit_time', + /** column name */ + Title = 'title', + /** column name */ + VotingEndTime = 'voting_end_time', + /** column name */ + VotingStartTime = 'voting_start_time' +} + +/** columns and relationships of "proposal_staking_pool_snapshot" */ +export type Provider_Proposal_Staking_Pool_Snapshot = { + __typename?: 'provider_proposal_staking_pool_snapshot'; + bonded_tokens: Scalars['String']; + height: Scalars['bigint']; + not_bonded_tokens: Scalars['String']; + /** An object relationship */ + proposal: Provider_Proposal; + proposal_id: Scalars['Int']; +}; + +/** Boolean expression to filter rows from the table "proposal_staking_pool_snapshot". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Staking_Pool_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_staking_pool_snapshot". */ +export type Provider_Proposal_Staking_Pool_Snapshot_Order_By = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** select columns of table "proposal_staking_pool_snapshot" */ +export enum Provider_Proposal_Staking_Pool_Snapshot_Select_Column { + /** column name */ + BondedTokens = 'bonded_tokens', + /** column name */ + Height = 'height', + /** column name */ + NotBondedTokens = 'not_bonded_tokens', + /** column name */ + ProposalId = 'proposal_id' +} + +/** Streaming cursor of the table "proposal_staking_pool_snapshot" */ +export type Provider_Proposal_Staking_Pool_Snapshot_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Staking_Pool_Snapshot_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Staking_Pool_Snapshot_Stream_Cursor_Value_Input = { + bonded_tokens?: InputMaybe; + height?: InputMaybe; + not_bonded_tokens?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** aggregate stddev on columns */ +export type Provider_Proposal_Stddev_Fields = { + __typename?: 'provider_proposal_stddev_fields'; + id?: Maybe; +}; + +/** order by stddev() on columns of table "proposal" */ +export type Provider_Proposal_Stddev_Order_By = { + id?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Provider_Proposal_Stddev_Pop_Fields = { + __typename?: 'provider_proposal_stddev_pop_fields'; + id?: Maybe; +}; + +/** order by stddev_pop() on columns of table "proposal" */ +export type Provider_Proposal_Stddev_Pop_Order_By = { + id?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Provider_Proposal_Stddev_Samp_Fields = { + __typename?: 'provider_proposal_stddev_samp_fields'; + id?: Maybe; +}; + +/** order by stddev_samp() on columns of table "proposal" */ +export type Provider_Proposal_Stddev_Samp_Order_By = { + id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal" */ +export type Provider_Proposal_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Stream_Cursor_Value_Input = { + content?: InputMaybe; + deposit_end_time?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + proposal_route?: InputMaybe; + proposal_type?: InputMaybe; + proposer_address?: InputMaybe; + status?: InputMaybe; + submit_time?: InputMaybe; + title?: InputMaybe; + voting_end_time?: InputMaybe; + voting_start_time?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Provider_Proposal_Sum_Fields = { + __typename?: 'provider_proposal_sum_fields'; + id?: Maybe; +}; + +/** order by sum() on columns of table "proposal" */ +export type Provider_Proposal_Sum_Order_By = { + id?: InputMaybe; +}; + +/** columns and relationships of "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result = { + __typename?: 'provider_proposal_tally_result'; + abstain: Scalars['String']; + height: Scalars['bigint']; + no: Scalars['String']; + no_with_veto: Scalars['String']; + /** An object relationship */ + proposal: Provider_Proposal; + proposal_id: Scalars['Int']; + yes: Scalars['String']; +}; + +/** order by aggregate values of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_tally_result". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Tally_Result_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Max_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Min_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_tally_result". */ +export type Provider_Proposal_Tally_Result_Order_By = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** select columns of table "proposal_tally_result" */ +export enum Provider_Proposal_Tally_Result_Select_Column { + /** column name */ + Abstain = 'abstain', + /** column name */ + Height = 'height', + /** column name */ + No = 'no', + /** column name */ + NoWithVeto = 'no_with_veto', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Yes = 'yes' +} + +/** order by stddev() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Tally_Result_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Tally_Result_Stream_Cursor_Value_Input = { + abstain?: InputMaybe; + height?: InputMaybe; + no?: InputMaybe; + no_with_veto?: InputMaybe; + proposal_id?: InputMaybe; + yes?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_tally_result" */ +export type Provider_Proposal_Tally_Result_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** columns and relationships of "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot = { + __typename?: 'provider_proposal_validator_status_snapshot'; + height: Scalars['bigint']; + jailed: Scalars['Boolean']; + /** An object relationship */ + proposal?: Maybe; + proposal_id?: Maybe; + status: Scalars['Int']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** order by aggregate values of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_validator_status_snapshot". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Validator_Status_Snapshot_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Max_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Min_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_validator_status_snapshot". */ +export type Provider_Proposal_Validator_Status_Snapshot_Order_By = { + height?: InputMaybe; + jailed?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "proposal_validator_status_snapshot" */ +export enum Provider_Proposal_Validator_Status_Snapshot_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Jailed = 'jailed', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Status = 'status', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** order by stddev() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Validator_Status_Snapshot_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Validator_Status_Snapshot_Stream_Cursor_Value_Input = { + height?: InputMaybe; + jailed?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_validator_status_snapshot" */ +export type Provider_Proposal_Validator_Status_Snapshot_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; + status?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Provider_Proposal_Var_Pop_Fields = { + __typename?: 'provider_proposal_var_pop_fields'; + id?: Maybe; +}; + +/** order by var_pop() on columns of table "proposal" */ +export type Provider_Proposal_Var_Pop_Order_By = { + id?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Provider_Proposal_Var_Samp_Fields = { + __typename?: 'provider_proposal_var_samp_fields'; + id?: Maybe; +}; + +/** order by var_samp() on columns of table "proposal" */ +export type Provider_Proposal_Var_Samp_Order_By = { + id?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Provider_Proposal_Variance_Fields = { + __typename?: 'provider_proposal_variance_fields'; + id?: Maybe; +}; + +/** order by variance() on columns of table "proposal" */ +export type Provider_Proposal_Variance_Order_By = { + id?: InputMaybe; +}; + +/** columns and relationships of "proposal_vote" */ +export type Provider_Proposal_Vote = { + __typename?: 'provider_proposal_vote'; + /** An object relationship */ + account: Provider_Account; + /** An object relationship */ + block?: Maybe; + height: Scalars['bigint']; + option: Scalars['String']; + /** An object relationship */ + proposal: Provider_Proposal; + proposal_id: Scalars['Int']; + timestamp?: Maybe; + voter_address: Scalars['String']; +}; + +/** order by aggregate values of table "proposal_vote" */ +export type Provider_Proposal_Vote_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Avg_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "proposal_vote". All fields are combined with a logical 'AND'. */ +export type Provider_Proposal_Vote_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** order by max() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Max_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** order by min() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Min_Order_By = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "proposal_vote". */ +export type Provider_Proposal_Vote_Order_By = { + account?: InputMaybe; + block?: InputMaybe; + height?: InputMaybe; + option?: InputMaybe; + proposal?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** select columns of table "proposal_vote" */ +export enum Provider_Proposal_Vote_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Option = 'option', + /** column name */ + ProposalId = 'proposal_id', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + VoterAddress = 'voter_address' +} + +/** order by stddev() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Stddev_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Stddev_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Stddev_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** Streaming cursor of the table "proposal_vote" */ +export type Provider_Proposal_Vote_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Proposal_Vote_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Proposal_Vote_Stream_Cursor_Value_Input = { + height?: InputMaybe; + option?: InputMaybe; + proposal_id?: InputMaybe; + timestamp?: InputMaybe; + voter_address?: InputMaybe; +}; + +/** order by sum() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Sum_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_pop() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Var_Pop_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by var_samp() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Var_Samp_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +/** order by variance() on columns of table "proposal_vote" */ +export type Provider_Proposal_Vote_Variance_Order_By = { + height?: InputMaybe; + proposal_id?: InputMaybe; +}; + +export type Provider_Provider_Query = { + __typename?: 'provider_provider_query'; + /** fetch data from the table: "account" */ + provider_account: Array; + /** fetch data from the table: "account" using primary key columns */ + provider_account_by_pk?: Maybe; + /** fetch data from the table: "block" */ + provider_block: Array; + /** fetch data from the table: "block" using primary key columns */ + provider_block_by_pk?: Maybe; + /** fetch data from the table: "double_sign_evidence" */ + provider_double_sign_evidence: Array; + /** fetch data from the table: "double_sign_vote" */ + provider_double_sign_vote: Array; + /** fetch data from the table: "pre_commit" */ + provider_pre_commit: Array; + /** fetch aggregated fields from the table: "pre_commit" */ + provider_pre_commit_aggregate: Provider_Pre_Commit_Aggregate; + /** fetch data from the table: "proposal" */ + provider_proposal: Array; + /** fetch aggregated fields from the table: "proposal" */ + provider_proposal_aggregate: Provider_Proposal_Aggregate; + /** fetch data from the table: "proposal" using primary key columns */ + provider_proposal_by_pk?: Maybe; + /** fetch data from the table: "proposal_deposit" */ + provider_proposal_deposit: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" */ + provider_proposal_staking_pool_snapshot: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" using primary key columns */ + provider_proposal_staking_pool_snapshot_by_pk?: Maybe; + /** fetch data from the table: "proposal_tally_result" */ + provider_proposal_tally_result: Array; + /** fetch data from the table: "proposal_tally_result" using primary key columns */ + provider_proposal_tally_result_by_pk?: Maybe; + /** fetch data from the table: "proposal_validator_status_snapshot" */ + provider_proposal_validator_status_snapshot: Array; + /** fetch data from the table: "proposal_vote" */ + provider_proposal_vote: Array; + /** fetch data from the table: "slashing_params" */ + provider_slashing_params: Array; + /** fetch aggregated fields from the table: "slashing_params" */ + provider_slashing_params_aggregate: Provider_Slashing_Params_Aggregate; + /** fetch data from the table: "transaction" */ + provider_transaction: Array; + /** fetch data from the table: "validator" */ + provider_validator: Array; + /** fetch data from the table: "validator" using primary key columns */ + provider_validator_by_pk?: Maybe; + /** fetch data from the table: "validator_commission" */ + provider_validator_commission: Array; + /** fetch data from the table: "validator_commission" using primary key columns */ + provider_validator_commission_by_pk?: Maybe; + /** fetch data from the table: "validator_description" */ + provider_validator_description: Array; + /** fetch data from the table: "validator_description" using primary key columns */ + provider_validator_description_by_pk?: Maybe; + /** fetch data from the table: "validator_info" */ + provider_validator_info: Array; + /** fetch data from the table: "validator_info" using primary key columns */ + provider_validator_info_by_pk?: Maybe; + /** fetch data from the table: "validator_signing_info" */ + provider_validator_signing_info: Array; + /** fetch data from the table: "validator_signing_info" using primary key columns */ + provider_validator_signing_info_by_pk?: Maybe; + /** fetch data from the table: "validator_status" */ + provider_validator_status: Array; + /** fetch aggregated fields from the table: "validator_status" */ + provider_validator_status_aggregate: Provider_Validator_Status_Aggregate; + /** fetch data from the table: "validator_status" using primary key columns */ + provider_validator_status_by_pk?: Maybe; + /** fetch data from the table: "validator_voting_power" */ + provider_validator_voting_power: Array; + /** fetch aggregated fields from the table: "validator_voting_power" */ + provider_validator_voting_power_aggregate: Provider_Validator_Voting_Power_Aggregate; + /** fetch data from the table: "validator_voting_power" using primary key columns */ + provider_validator_voting_power_by_pk?: Maybe; + /** fetch data from the table: "vesting_account" */ + provider_vesting_account: Array; + /** fetch data from the table: "vesting_period" */ + provider_vesting_period: Array; +}; + + +export type Provider_Provider_QueryProvider_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Account_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_BlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Block_By_PkArgs = { + height: Scalars['bigint']; +}; + + +export type Provider_Provider_QueryProvider_Double_Sign_EvidenceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Double_Sign_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Pre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Pre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_ProposalArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Provider_Provider_QueryProvider_Proposal_DepositArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Staking_Pool_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Staking_Pool_Snapshot_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Tally_ResultArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Tally_Result_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Provider_Provider_QueryProvider_Proposal_Validator_Status_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Proposal_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Slashing_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Slashing_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_TransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_ValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_CommissionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Commission_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_DescriptionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Description_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Info_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_StatusArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Status_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Status_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Validator_Voting_PowerArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Voting_Power_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Validator_Voting_Power_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_QueryProvider_Vesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_QueryProvider_Vesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +export type Provider_Provider_Subscription = { + __typename?: 'provider_provider_subscription'; + /** fetch data from the table: "account" */ + provider_account: Array; + /** fetch data from the table: "account" using primary key columns */ + provider_account_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "account" */ + provider_account_stream: Array; + /** fetch data from the table: "block" */ + provider_block: Array; + /** fetch data from the table: "block" using primary key columns */ + provider_block_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "block" */ + provider_block_stream: Array; + /** fetch data from the table: "double_sign_evidence" */ + provider_double_sign_evidence: Array; + /** fetch data from the table in a streaming manner: "double_sign_evidence" */ + provider_double_sign_evidence_stream: Array; + /** fetch data from the table: "double_sign_vote" */ + provider_double_sign_vote: Array; + /** fetch data from the table in a streaming manner: "double_sign_vote" */ + provider_double_sign_vote_stream: Array; + /** fetch data from the table: "pre_commit" */ + provider_pre_commit: Array; + /** fetch aggregated fields from the table: "pre_commit" */ + provider_pre_commit_aggregate: Provider_Pre_Commit_Aggregate; + /** fetch data from the table in a streaming manner: "pre_commit" */ + provider_pre_commit_stream: Array; + /** fetch data from the table: "proposal" */ + provider_proposal: Array; + /** fetch aggregated fields from the table: "proposal" */ + provider_proposal_aggregate: Provider_Proposal_Aggregate; + /** fetch data from the table: "proposal" using primary key columns */ + provider_proposal_by_pk?: Maybe; + /** fetch data from the table: "proposal_deposit" */ + provider_proposal_deposit: Array; + /** fetch data from the table in a streaming manner: "proposal_deposit" */ + provider_proposal_deposit_stream: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" */ + provider_proposal_staking_pool_snapshot: Array; + /** fetch data from the table: "proposal_staking_pool_snapshot" using primary key columns */ + provider_proposal_staking_pool_snapshot_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "proposal_staking_pool_snapshot" */ + provider_proposal_staking_pool_snapshot_stream: Array; + /** fetch data from the table in a streaming manner: "proposal" */ + provider_proposal_stream: Array; + /** fetch data from the table: "proposal_tally_result" */ + provider_proposal_tally_result: Array; + /** fetch data from the table: "proposal_tally_result" using primary key columns */ + provider_proposal_tally_result_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "proposal_tally_result" */ + provider_proposal_tally_result_stream: Array; + /** fetch data from the table: "proposal_validator_status_snapshot" */ + provider_proposal_validator_status_snapshot: Array; + /** fetch data from the table in a streaming manner: "proposal_validator_status_snapshot" */ + provider_proposal_validator_status_snapshot_stream: Array; + /** fetch data from the table: "proposal_vote" */ + provider_proposal_vote: Array; + /** fetch data from the table in a streaming manner: "proposal_vote" */ + provider_proposal_vote_stream: Array; + /** fetch data from the table: "slashing_params" */ + provider_slashing_params: Array; + /** fetch aggregated fields from the table: "slashing_params" */ + provider_slashing_params_aggregate: Provider_Slashing_Params_Aggregate; + /** fetch data from the table in a streaming manner: "slashing_params" */ + provider_slashing_params_stream: Array; + /** fetch data from the table: "transaction" */ + provider_transaction: Array; + /** fetch data from the table in a streaming manner: "transaction" */ + provider_transaction_stream: Array; + /** fetch data from the table: "validator" */ + provider_validator: Array; + /** fetch data from the table: "validator" using primary key columns */ + provider_validator_by_pk?: Maybe; + /** fetch data from the table: "validator_commission" */ + provider_validator_commission: Array; + /** fetch data from the table: "validator_commission" using primary key columns */ + provider_validator_commission_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_commission" */ + provider_validator_commission_stream: Array; + /** fetch data from the table: "validator_description" */ + provider_validator_description: Array; + /** fetch data from the table: "validator_description" using primary key columns */ + provider_validator_description_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_description" */ + provider_validator_description_stream: Array; + /** fetch data from the table: "validator_info" */ + provider_validator_info: Array; + /** fetch data from the table: "validator_info" using primary key columns */ + provider_validator_info_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_info" */ + provider_validator_info_stream: Array; + /** fetch data from the table: "validator_signing_info" */ + provider_validator_signing_info: Array; + /** fetch data from the table: "validator_signing_info" using primary key columns */ + provider_validator_signing_info_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_signing_info" */ + provider_validator_signing_info_stream: Array; + /** fetch data from the table: "validator_status" */ + provider_validator_status: Array; + /** fetch aggregated fields from the table: "validator_status" */ + provider_validator_status_aggregate: Provider_Validator_Status_Aggregate; + /** fetch data from the table: "validator_status" using primary key columns */ + provider_validator_status_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_status" */ + provider_validator_status_stream: Array; + /** fetch data from the table in a streaming manner: "validator" */ + provider_validator_stream: Array; + /** fetch data from the table: "validator_voting_power" */ + provider_validator_voting_power: Array; + /** fetch aggregated fields from the table: "validator_voting_power" */ + provider_validator_voting_power_aggregate: Provider_Validator_Voting_Power_Aggregate; + /** fetch data from the table: "validator_voting_power" using primary key columns */ + provider_validator_voting_power_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_voting_power" */ + provider_validator_voting_power_stream: Array; + /** fetch data from the table: "vesting_account" */ + provider_vesting_account: Array; + /** fetch data from the table in a streaming manner: "vesting_account" */ + provider_vesting_account_stream: Array; + /** fetch data from the table: "vesting_period" */ + provider_vesting_period: Array; + /** fetch data from the table in a streaming manner: "vesting_period" */ + provider_vesting_period_stream: Array; +}; + + +export type Provider_Provider_SubscriptionProvider_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Account_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Account_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_BlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Block_By_PkArgs = { + height: Scalars['bigint']; +}; + + +export type Provider_Provider_SubscriptionProvider_Block_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Double_Sign_EvidenceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Double_Sign_Evidence_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Double_Sign_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Double_Sign_Vote_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Pre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Pre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Pre_Commit_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_ProposalArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_By_PkArgs = { + id: Scalars['Int']; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_DepositArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Deposit_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Staking_Pool_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Staking_Pool_Snapshot_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Staking_Pool_Snapshot_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Tally_ResultArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Tally_Result_By_PkArgs = { + proposal_id: Scalars['Int']; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Tally_Result_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Validator_Status_SnapshotArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Validator_Status_Snapshot_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_VoteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Proposal_Vote_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Slashing_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Slashing_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Slashing_Params_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_TransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Transaction_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_ValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_CommissionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Commission_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Commission_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_DescriptionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Description_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Description_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Info_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Info_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Signing_Info_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_StatusArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Status_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Status_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Status_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Voting_PowerArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Voting_Power_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Voting_Power_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Provider_Provider_SubscriptionProvider_Validator_Voting_Power_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Vesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Vesting_Account_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Vesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Provider_Provider_SubscriptionProvider_Vesting_Period_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + +/** columns and relationships of "slashing_params" */ +export type Provider_Slashing_Params = { + __typename?: 'provider_slashing_params'; + height: Scalars['bigint']; + params: Scalars['jsonb']; +}; + + +/** columns and relationships of "slashing_params" */ +export type Provider_Slashing_ParamsParamsArgs = { + path?: InputMaybe; +}; + +/** aggregated selection of "slashing_params" */ +export type Provider_Slashing_Params_Aggregate = { + __typename?: 'provider_slashing_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "slashing_params" */ +export type Provider_Slashing_Params_Aggregate_Fields = { + __typename?: 'provider_slashing_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 "slashing_params" */ +export type Provider_Slashing_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Provider_Slashing_Params_Avg_Fields = { + __typename?: 'provider_slashing_params_avg_fields'; + height?: Maybe; +}; + +/** Boolean expression to filter rows from the table "slashing_params". All fields are combined with a logical 'AND'. */ +export type Provider_Slashing_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + params?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Provider_Slashing_Params_Max_Fields = { + __typename?: 'provider_slashing_params_max_fields'; + height?: Maybe; +}; + +/** aggregate min on columns */ +export type Provider_Slashing_Params_Min_Fields = { + __typename?: 'provider_slashing_params_min_fields'; + height?: Maybe; +}; + +/** Ordering options when selecting data from "slashing_params". */ +export type Provider_Slashing_Params_Order_By = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** select columns of table "slashing_params" */ +export enum Provider_Slashing_Params_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Params = 'params' +} + +/** aggregate stddev on columns */ +export type Provider_Slashing_Params_Stddev_Fields = { + __typename?: 'provider_slashing_params_stddev_fields'; + height?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Provider_Slashing_Params_Stddev_Pop_Fields = { + __typename?: 'provider_slashing_params_stddev_pop_fields'; + height?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Provider_Slashing_Params_Stddev_Samp_Fields = { + __typename?: 'provider_slashing_params_stddev_samp_fields'; + height?: Maybe; +}; + +/** Streaming cursor of the table "slashing_params" */ +export type Provider_Slashing_Params_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Slashing_Params_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Slashing_Params_Stream_Cursor_Value_Input = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Provider_Slashing_Params_Sum_Fields = { + __typename?: 'provider_slashing_params_sum_fields'; + height?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Provider_Slashing_Params_Var_Pop_Fields = { + __typename?: 'provider_slashing_params_var_pop_fields'; + height?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Provider_Slashing_Params_Var_Samp_Fields = { + __typename?: 'provider_slashing_params_var_samp_fields'; + height?: Maybe; +}; + +/** aggregate variance on columns */ +export type Provider_Slashing_Params_Variance_Fields = { + __typename?: 'provider_slashing_params_variance_fields'; + height?: Maybe; +}; + +/** columns and relationships of "transaction" */ +export type Provider_Transaction = { + __typename?: 'provider_transaction'; + /** An object relationship */ + block: Provider_Block; + fee: Scalars['jsonb']; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash: Scalars['String']; + height: Scalars['bigint']; + logs?: Maybe; + memo?: Maybe; + messages: Scalars['jsonb']; + raw_log?: Maybe; + signatures: Scalars['_text']; + signer_infos: Scalars['jsonb']; + success: Scalars['Boolean']; +}; + + +/** columns and relationships of "transaction" */ +export type Provider_TransactionFeeArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type Provider_TransactionLogsArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type Provider_TransactionMessagesArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type Provider_TransactionSigner_InfosArgs = { + path?: InputMaybe; +}; + +/** order by aggregate values of table "transaction" */ +export type Provider_Transaction_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "transaction" */ +export type Provider_Transaction_Avg_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "transaction". All fields are combined with a logical 'AND'. */ +export type Provider_Transaction_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe<_Text_Comparison_Exp>; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** order by max() on columns of table "transaction" */ +export type Provider_Transaction_Max_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + raw_log?: InputMaybe; +}; + +/** order by min() on columns of table "transaction" */ +export type Provider_Transaction_Min_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + raw_log?: InputMaybe; +}; + +/** Ordering options when selecting data from "transaction". */ +export type Provider_Transaction_Order_By = { + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** select columns of table "transaction" */ +export enum Provider_Transaction_Select_Column { + /** column name */ + Fee = 'fee', + /** column name */ + GasUsed = 'gas_used', + /** column name */ + GasWanted = 'gas_wanted', + /** column name */ + Hash = 'hash', + /** column name */ + Height = 'height', + /** column name */ + Logs = 'logs', + /** column name */ + Memo = 'memo', + /** column name */ + Messages = 'messages', + /** column name */ + RawLog = 'raw_log', + /** column name */ + Signatures = 'signatures', + /** column name */ + SignerInfos = 'signer_infos', + /** column name */ + Success = 'success' +} + +/** order by stddev() on columns of table "transaction" */ +export type Provider_Transaction_Stddev_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "transaction" */ +export type Provider_Transaction_Stddev_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "transaction" */ +export type Provider_Transaction_Stddev_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** Streaming cursor of the table "transaction" */ +export type Provider_Transaction_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Transaction_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Transaction_Stream_Cursor_Value_Input = { + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** order by sum() on columns of table "transaction" */ +export type Provider_Transaction_Sum_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "transaction" */ +export type Provider_Transaction_Var_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "transaction" */ +export type Provider_Transaction_Var_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by variance() on columns of table "transaction" */ +export type Provider_Transaction_Variance_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "validator" */ +export type Provider_Validator = { + __typename?: 'provider_validator'; + /** An array relationship */ + blocks: Array; + consensus_address: Scalars['String']; + consensus_pubkey: Scalars['String']; + /** An array relationship */ + double_sign_votes: Array; + /** An array relationship */ + pre_commits: Array; + /** An aggregate relationship */ + pre_commits_aggregate: Provider_Pre_Commit_Aggregate; + /** An array relationship */ + validator_commissions: Array; + /** An array relationship */ + validator_descriptions: Array; + /** An object relationship */ + validator_info?: Maybe; + /** An array relationship */ + validator_infos: Array; + /** An array relationship */ + validator_signing_infos: Array; + /** An array relationship */ + validator_statuses: Array; + /** An aggregate relationship */ + validator_statuses_aggregate: Provider_Validator_Status_Aggregate; + /** An array relationship */ + validator_voting_powers: Array; + /** An aggregate relationship */ + validator_voting_powers_aggregate: Provider_Validator_Voting_Power_Aggregate; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorBlocksArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorDouble_Sign_VotesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_CommissionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_DescriptionsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_Signing_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_StatusesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_Statuses_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_Voting_PowersArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type Provider_ValidatorValidator_Voting_Powers_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + blocks?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes?: InputMaybe; + pre_commits?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + validator_commissions?: InputMaybe; + validator_descriptions?: InputMaybe; + validator_info?: InputMaybe; + validator_infos?: InputMaybe; + validator_signing_infos?: InputMaybe; + validator_statuses?: InputMaybe; + validator_statuses_aggregate?: InputMaybe; + validator_voting_powers?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** columns and relationships of "validator_commission" */ +export type Provider_Validator_Commission = { + __typename?: 'provider_validator_commission'; + commission: Scalars['numeric']; + height: Scalars['bigint']; + min_self_delegation: Scalars['bigint']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; +}; + +/** order by aggregate values of table "validator_commission" */ +export type Provider_Validator_Commission_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Avg_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_commission". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Commission_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by max() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Max_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by min() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Min_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_commission". */ +export type Provider_Validator_Commission_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** select columns of table "validator_commission" */ +export enum Provider_Validator_Commission_Select_Column { + /** column name */ + Commission = 'commission', + /** column name */ + Height = 'height', + /** column name */ + MinSelfDelegation = 'min_self_delegation', + /** column name */ + ValidatorAddress = 'validator_address' +} + +/** order by stddev() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Stddev_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Stddev_Pop_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Stddev_Samp_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_commission" */ +export type Provider_Validator_Commission_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Commission_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Commission_Stream_Cursor_Value_Input = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by sum() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Sum_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by var_pop() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Var_Pop_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by var_samp() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Var_Samp_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** order by variance() on columns of table "validator_commission" */ +export type Provider_Validator_Commission_Variance_Order_By = { + commission?: InputMaybe; + height?: InputMaybe; + min_self_delegation?: InputMaybe; +}; + +/** columns and relationships of "validator_description" */ +export type Provider_Validator_Description = { + __typename?: 'provider_validator_description'; + avatar_url?: Maybe; + details?: Maybe; + height: Scalars['bigint']; + identity?: Maybe; + moniker?: Maybe; + security_contact?: Maybe; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; + website?: Maybe; +}; + +/** order by aggregate values of table "validator_description" */ +export type Provider_Validator_Description_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "validator_description" */ +export type Provider_Validator_Description_Avg_Order_By = { + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_description". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Description_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** order by max() on columns of table "validator_description" */ +export type Provider_Validator_Description_Max_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** order by min() on columns of table "validator_description" */ +export type Provider_Validator_Description_Min_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_description". */ +export type Provider_Validator_Description_Order_By = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** select columns of table "validator_description" */ +export enum Provider_Validator_Description_Select_Column { + /** column name */ + AvatarUrl = 'avatar_url', + /** column name */ + Details = 'details', + /** column name */ + Height = 'height', + /** column name */ + Identity = 'identity', + /** column name */ + Moniker = 'moniker', + /** column name */ + SecurityContact = 'security_contact', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + Website = 'website' +} + +/** order by stddev() on columns of table "validator_description" */ +export type Provider_Validator_Description_Stddev_Order_By = { + height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "validator_description" */ +export type Provider_Validator_Description_Stddev_Pop_Order_By = { + height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "validator_description" */ +export type Provider_Validator_Description_Stddev_Samp_Order_By = { + height?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_description" */ +export type Provider_Validator_Description_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Description_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Description_Stream_Cursor_Value_Input = { + avatar_url?: InputMaybe; + details?: InputMaybe; + height?: InputMaybe; + identity?: InputMaybe; + moniker?: InputMaybe; + security_contact?: InputMaybe; + validator_address?: InputMaybe; + website?: InputMaybe; +}; + +/** order by sum() on columns of table "validator_description" */ +export type Provider_Validator_Description_Sum_Order_By = { + height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "validator_description" */ +export type Provider_Validator_Description_Var_Pop_Order_By = { + height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "validator_description" */ +export type Provider_Validator_Description_Var_Samp_Order_By = { + height?: InputMaybe; +}; + +/** order by variance() on columns of table "validator_description" */ +export type Provider_Validator_Description_Variance_Order_By = { + height?: InputMaybe; +}; + +/** columns and relationships of "validator_info" */ +export type Provider_Validator_Info = { + __typename?: 'provider_validator_info'; + /** An object relationship */ + account?: Maybe; + consensus_address: Scalars['String']; + max_change_rate: Scalars['String']; + max_rate: Scalars['String']; + operator_address: Scalars['String']; + self_delegate_address?: Maybe; + /** An object relationship */ + validator: Provider_Validator; +}; + +/** order by aggregate values of table "validator_info" */ +export type Provider_Validator_Info_Aggregate_Order_By = { + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_info". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; + validator?: InputMaybe; +}; + +/** order by max() on columns of table "validator_info" */ +export type Provider_Validator_Info_Max_Order_By = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +/** order by min() on columns of table "validator_info" */ +export type Provider_Validator_Info_Min_Order_By = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_info". */ +export type Provider_Validator_Info_Order_By = { + account?: InputMaybe; + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; + validator?: InputMaybe; +}; + +/** select columns of table "validator_info" */ +export enum Provider_Validator_Info_Select_Column { + /** column name */ + ConsensusAddress = 'consensus_address', + /** column name */ + MaxChangeRate = 'max_change_rate', + /** column name */ + MaxRate = 'max_rate', + /** column name */ + OperatorAddress = 'operator_address', + /** column name */ + SelfDelegateAddress = 'self_delegate_address' +} + +/** Streaming cursor of the table "validator_info" */ +export type Provider_Validator_Info_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Info_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Info_Stream_Cursor_Value_Input = { + consensus_address?: InputMaybe; + max_change_rate?: InputMaybe; + max_rate?: InputMaybe; + operator_address?: InputMaybe; + self_delegate_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator". */ +export type Provider_Validator_Order_By = { + blocks_aggregate?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes_aggregate?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + validator_commissions_aggregate?: InputMaybe; + validator_descriptions_aggregate?: InputMaybe; + validator_info?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + validator_signing_infos_aggregate?: InputMaybe; + validator_statuses_aggregate?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** select columns of table "validator" */ +export enum Provider_Validator_Select_Column { + /** column name */ + ConsensusAddress = 'consensus_address', + /** column name */ + ConsensusPubkey = 'consensus_pubkey' +} + +/** columns and relationships of "validator_signing_info" */ +export type Provider_Validator_Signing_Info = { + __typename?: 'provider_validator_signing_info'; + height: Scalars['bigint']; + index_offset: Scalars['bigint']; + jailed_until: Scalars['timestamp']; + missed_blocks_counter: Scalars['bigint']; + start_height: Scalars['bigint']; + tombstoned: Scalars['Boolean']; + validator_address: Scalars['String']; +}; + +/** order by aggregate values of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Avg_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_signing_info". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Signing_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by max() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Max_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by min() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Min_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_signing_info". */ +export type Provider_Validator_Signing_Info_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** select columns of table "validator_signing_info" */ +export enum Provider_Validator_Signing_Info_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + IndexOffset = 'index_offset', + /** column name */ + JailedUntil = 'jailed_until', + /** column name */ + MissedBlocksCounter = 'missed_blocks_counter', + /** column name */ + StartHeight = 'start_height', + /** column name */ + Tombstoned = 'tombstoned', + /** column name */ + ValidatorAddress = 'validator_address' +} + +/** order by stddev() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Stddev_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Stddev_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Stddev_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Signing_Info_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Signing_Info_Stream_Cursor_Value_Input = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by sum() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Sum_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Var_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Var_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by variance() on columns of table "validator_signing_info" */ +export type Provider_Validator_Signing_Info_Variance_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** columns and relationships of "validator_status" */ +export type Provider_Validator_Status = { + __typename?: 'provider_validator_status'; + height: Scalars['bigint']; + jailed: Scalars['Boolean']; + status: Scalars['Int']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; +}; + +/** aggregated selection of "validator_status" */ +export type Provider_Validator_Status_Aggregate = { + __typename?: 'provider_validator_status_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "validator_status" */ +export type Provider_Validator_Status_Aggregate_Fields = { + __typename?: 'provider_validator_status_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 "validator_status" */ +export type Provider_Validator_Status_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "validator_status" */ +export type Provider_Validator_Status_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Provider_Validator_Status_Avg_Fields = { + __typename?: 'provider_validator_status_avg_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by avg() on columns of table "validator_status" */ +export type Provider_Validator_Status_Avg_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_status". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Status_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Provider_Validator_Status_Max_Fields = { + __typename?: 'provider_validator_status_max_fields'; + height?: Maybe; + status?: Maybe; + validator_address?: Maybe; +}; + +/** order by max() on columns of table "validator_status" */ +export type Provider_Validator_Status_Max_Order_By = { + height?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Provider_Validator_Status_Min_Fields = { + __typename?: 'provider_validator_status_min_fields'; + height?: Maybe; + status?: Maybe; + validator_address?: Maybe; +}; + +/** order by min() on columns of table "validator_status" */ +export type Provider_Validator_Status_Min_Order_By = { + height?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_status". */ +export type Provider_Validator_Status_Order_By = { + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** select columns of table "validator_status" */ +export enum Provider_Validator_Status_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Jailed = 'jailed', + /** column name */ + Status = 'status', + /** column name */ + ValidatorAddress = 'validator_address' +} + +/** select "validator_status_aggregate_bool_exp_bool_and_arguments_columns" columns of table "validator_status" */ +export enum Provider_Validator_Status_Select_Column_Validator_Status_Aggregate_Bool_Exp_Bool_And_Arguments_Columns { + /** column name */ + Jailed = 'jailed' +} + +/** select "validator_status_aggregate_bool_exp_bool_or_arguments_columns" columns of table "validator_status" */ +export enum Provider_Validator_Status_Select_Column_Validator_Status_Aggregate_Bool_Exp_Bool_Or_Arguments_Columns { + /** column name */ + Jailed = 'jailed' +} + +/** aggregate stddev on columns */ +export type Provider_Validator_Status_Stddev_Fields = { + __typename?: 'provider_validator_status_stddev_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by stddev() on columns of table "validator_status" */ +export type Provider_Validator_Status_Stddev_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Provider_Validator_Status_Stddev_Pop_Fields = { + __typename?: 'provider_validator_status_stddev_pop_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by stddev_pop() on columns of table "validator_status" */ +export type Provider_Validator_Status_Stddev_Pop_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Provider_Validator_Status_Stddev_Samp_Fields = { + __typename?: 'provider_validator_status_stddev_samp_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by stddev_samp() on columns of table "validator_status" */ +export type Provider_Validator_Status_Stddev_Samp_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_status" */ +export type Provider_Validator_Status_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Status_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Status_Stream_Cursor_Value_Input = { + height?: InputMaybe; + jailed?: InputMaybe; + status?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Provider_Validator_Status_Sum_Fields = { + __typename?: 'provider_validator_status_sum_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by sum() on columns of table "validator_status" */ +export type Provider_Validator_Status_Sum_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Provider_Validator_Status_Var_Pop_Fields = { + __typename?: 'provider_validator_status_var_pop_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by var_pop() on columns of table "validator_status" */ +export type Provider_Validator_Status_Var_Pop_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Provider_Validator_Status_Var_Samp_Fields = { + __typename?: 'provider_validator_status_var_samp_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by var_samp() on columns of table "validator_status" */ +export type Provider_Validator_Status_Var_Samp_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Provider_Validator_Status_Variance_Fields = { + __typename?: 'provider_validator_status_variance_fields'; + height?: Maybe; + status?: Maybe; +}; + +/** order by variance() on columns of table "validator_status" */ +export type Provider_Validator_Status_Variance_Order_By = { + height?: InputMaybe; + status?: InputMaybe; +}; + +/** Streaming cursor of the table "validator" */ +export type Provider_Validator_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Stream_Cursor_Value_Input = { + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; +}; + +/** columns and relationships of "validator_voting_power" */ +export type Provider_Validator_Voting_Power = { + __typename?: 'provider_validator_voting_power'; + /** An object relationship */ + block: Provider_Block; + height: Scalars['bigint']; + /** An object relationship */ + validator: Provider_Validator; + validator_address: Scalars['String']; + voting_power: Scalars['bigint']; +}; + +/** aggregated selection of "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Aggregate = { + __typename?: 'provider_validator_voting_power_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Aggregate_Fields = { + __typename?: 'provider_validator_voting_power_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 "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Provider_Validator_Voting_Power_Avg_Fields = { + __typename?: 'provider_validator_voting_power_avg_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by avg() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Avg_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_voting_power". All fields are combined with a logical 'AND'. */ +export type Provider_Validator_Voting_Power_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + height?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Provider_Validator_Voting_Power_Max_Fields = { + __typename?: 'provider_validator_voting_power_max_fields'; + height?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by max() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Max_Order_By = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Provider_Validator_Voting_Power_Min_Fields = { + __typename?: 'provider_validator_voting_power_min_fields'; + height?: Maybe; + validator_address?: Maybe; + voting_power?: Maybe; +}; + +/** order by min() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Min_Order_By = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_voting_power". */ +export type Provider_Validator_Voting_Power_Order_By = { + block?: InputMaybe; + height?: InputMaybe; + validator?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** select columns of table "validator_voting_power" */ +export enum Provider_Validator_Voting_Power_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + ValidatorAddress = 'validator_address', + /** column name */ + VotingPower = 'voting_power' +} + +/** aggregate stddev on columns */ +export type Provider_Validator_Voting_Power_Stddev_Fields = { + __typename?: 'provider_validator_voting_power_stddev_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Stddev_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Provider_Validator_Voting_Power_Stddev_Pop_Fields = { + __typename?: 'provider_validator_voting_power_stddev_pop_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_pop() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Stddev_Pop_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Provider_Validator_Voting_Power_Stddev_Samp_Fields = { + __typename?: 'provider_validator_voting_power_stddev_samp_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by stddev_samp() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Stddev_Samp_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Validator_Voting_Power_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Validator_Voting_Power_Stream_Cursor_Value_Input = { + height?: InputMaybe; + validator_address?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Provider_Validator_Voting_Power_Sum_Fields = { + __typename?: 'provider_validator_voting_power_sum_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by sum() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Sum_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Provider_Validator_Voting_Power_Var_Pop_Fields = { + __typename?: 'provider_validator_voting_power_var_pop_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_pop() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Var_Pop_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Provider_Validator_Voting_Power_Var_Samp_Fields = { + __typename?: 'provider_validator_voting_power_var_samp_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by var_samp() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Var_Samp_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Provider_Validator_Voting_Power_Variance_Fields = { + __typename?: 'provider_validator_voting_power_variance_fields'; + height?: Maybe; + voting_power?: Maybe; +}; + +/** order by variance() on columns of table "validator_voting_power" */ +export type Provider_Validator_Voting_Power_Variance_Order_By = { + height?: InputMaybe; + voting_power?: InputMaybe; +}; + +/** columns and relationships of "vesting_account" */ +export type Provider_Vesting_Account = { + __typename?: 'provider_vesting_account'; + /** An object relationship */ + account: Provider_Account; + address: Scalars['String']; + end_time: Scalars['timestamp']; + original_vesting: Scalars['_coin']; + start_time?: Maybe; + type: Scalars['String']; + /** An array relationship */ + vesting_periods: Array; +}; + + +/** columns and relationships of "vesting_account" */ +export type Provider_Vesting_AccountVesting_PeriodsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "vesting_account" */ +export type Provider_Vesting_Account_Aggregate_Order_By = { + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "vesting_account". All fields are combined with a logical 'AND'. */ +export type Provider_Vesting_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe<_Coin_Comparison_Exp>; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods?: InputMaybe; +}; + +/** order by max() on columns of table "vesting_account" */ +export type Provider_Vesting_Account_Max_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +/** order by min() on columns of table "vesting_account" */ +export type Provider_Vesting_Account_Min_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +/** Ordering options when selecting data from "vesting_account". */ +export type Provider_Vesting_Account_Order_By = { + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods_aggregate?: InputMaybe; +}; + +/** select columns of table "vesting_account" */ +export enum Provider_Vesting_Account_Select_Column { + /** column name */ + Address = 'address', + /** column name */ + EndTime = 'end_time', + /** column name */ + OriginalVesting = 'original_vesting', + /** column name */ + StartTime = 'start_time', + /** column name */ + Type = 'type' +} + +/** Streaming cursor of the table "vesting_account" */ +export type Provider_Vesting_Account_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Vesting_Account_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Vesting_Account_Stream_Cursor_Value_Input = { + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +/** columns and relationships of "vesting_period" */ +export type Provider_Vesting_Period = { + __typename?: 'provider_vesting_period'; + amount: Scalars['_coin']; + length: Scalars['bigint']; + period_order: Scalars['bigint']; + /** An object relationship */ + vesting_account: Provider_Vesting_Account; +}; + +/** order by aggregate values of table "vesting_period" */ +export type Provider_Vesting_Period_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Avg_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "vesting_period". All fields are combined with a logical 'AND'. */ +export type Provider_Vesting_Period_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe<_Coin_Comparison_Exp>; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; +}; + +/** order by max() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Max_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by min() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Min_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** Ordering options when selecting data from "vesting_period". */ +export type Provider_Vesting_Period_Order_By = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; +}; + +/** select columns of table "vesting_period" */ +export enum Provider_Vesting_Period_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + Length = 'length', + /** column name */ + PeriodOrder = 'period_order' +} + +/** order by stddev() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Stddev_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Stddev_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Stddev_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** Streaming cursor of the table "vesting_period" */ +export type Provider_Vesting_Period_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Provider_Vesting_Period_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Provider_Vesting_Period_Stream_Cursor_Value_Input = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by sum() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Sum_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by var_pop() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Var_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by var_samp() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Var_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by variance() on columns of table "vesting_period" */ +export type Provider_Vesting_Period_Variance_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +export type Query_Root = { + __typename?: 'query_root'; + /** fetch data from the table: "account" */ + account: Array; + /** fetch data from the table: "account" using primary key columns */ + account_by_pk?: Maybe; + action_account_balance?: Maybe; + /** fetch data from the table: "average_block_time_from_genesis" */ + average_block_time_from_genesis: Array; + /** fetch data from the table: "average_block_time_per_day" */ + average_block_time_per_day: Array; + /** fetch data from the table: "average_block_time_per_hour" */ + average_block_time_per_hour: Array; + /** fetch data from the table: "average_block_time_per_minute" */ + average_block_time_per_minute: Array; + bdjuno_provider?: Maybe; + /** fetch data from the table: "block" */ + block: Array; + /** fetch data from the table: "block" using primary key columns */ + block_by_pk?: Maybe; + /** fetch data from the table: "ccv_consumer_chain" */ + ccv_consumer_chain: Array; + /** fetch aggregated fields from the table: "ccv_consumer_chain" */ + ccv_consumer_chain_aggregate: Ccv_Consumer_Chain_Aggregate; + /** fetch data from the table: "ccv_consumer_params" */ + ccv_consumer_params: Array; + /** fetch aggregated fields from the table: "ccv_consumer_params" */ + ccv_consumer_params_aggregate: Ccv_Consumer_Params_Aggregate; + /** fetch data from the table: "ccv_consumer_params" using primary key columns */ + ccv_consumer_params_by_pk?: Maybe; + /** fetch data from the table: "ccv_validator" */ + ccv_validator: Array; + /** fetch data from the table: "ccv_validator" using primary key columns */ + ccv_validator_by_pk?: Maybe; + /** fetch data from the table: "fee_grant_allowance" */ + fee_grant_allowance: Array; + /** fetch data from the table: "genesis" */ + genesis: Array; + /** fetch data from the table: "message" */ + message: Array; + /** execute function "messages_by_address" which returns "message" */ + messages_by_address: Array; + /** fetch data from the table: "modules" */ + modules: Array; + /** fetch data from the table: "modules" using primary key columns */ + modules_by_pk?: Maybe; + /** fetch data from the table: "pre_commit" */ + pre_commit: Array; + /** fetch aggregated fields from the table: "pre_commit" */ + pre_commit_aggregate: Pre_Commit_Aggregate; + provider?: Maybe; + /** fetch data from the table: "slashing_params" */ + slashing_params: Array; + /** fetch data from the table: "supply" */ + supply: Array; + /** fetch data from the table: "token" */ + token: Array; + /** fetch data from the table: "token_price" */ + token_price: Array; + /** fetch data from the table: "token_price_history" */ + token_price_history: Array; + /** fetch data from the table: "token_unit" */ + token_unit: Array; + /** fetch data from the table: "transaction" */ + transaction: Array; + /** fetch data from the table: "validator" */ + validator: Array; + /** fetch data from the table: "validator" using primary key columns */ + validator_by_pk?: Maybe; + /** fetch data from the table: "validator_signing_info" */ + validator_signing_info: Array; + /** fetch data from the table: "validator_signing_info" using primary key columns */ + validator_signing_info_by_pk?: Maybe; + /** fetch data from the table: "vesting_account" */ + vesting_account: Array; + /** fetch data from the table: "vesting_period" */ + vesting_period: Array; + /** fetch data from the table: "wasm_code" */ + wasm_code: Array; + /** fetch aggregated fields from the table: "wasm_code" */ + wasm_code_aggregate: Wasm_Code_Aggregate; + /** fetch data from the table: "wasm_contract" */ + wasm_contract: Array; + /** fetch aggregated fields from the table: "wasm_contract" */ + wasm_contract_aggregate: Wasm_Contract_Aggregate; + /** fetch data from the table: "wasm_execute_contract" */ + wasm_execute_contract: Array; + /** fetch aggregated fields from the table: "wasm_execute_contract" */ + wasm_execute_contract_aggregate: Wasm_Execute_Contract_Aggregate; + /** fetch data from the table: "wasm_params" */ + wasm_params: Array; + /** fetch aggregated fields from the table: "wasm_params" */ + wasm_params_aggregate: Wasm_Params_Aggregate; + /** fetch data from the table: "wasm_params" using primary key columns */ + wasm_params_by_pk?: Maybe; +}; + + +export type Query_RootAccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootAccount_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Query_RootAction_Account_BalanceArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Query_RootAverage_Block_Time_From_GenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootAverage_Block_Time_Per_DayArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootAverage_Block_Time_Per_HourArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootAverage_Block_Time_Per_MinuteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootBlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootBlock_By_PkArgs = { + height: Scalars['bigint']; +}; + + +export type Query_RootCcv_Consumer_ChainArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootCcv_Consumer_Chain_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootCcv_Consumer_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootCcv_Consumer_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootCcv_Consumer_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Query_RootCcv_ValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootCcv_Validator_By_PkArgs = { + consumer_consensus_address: Scalars['String']; +}; + + +export type Query_RootFee_Grant_AllowanceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootGenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootMessageArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootMessages_By_AddressArgs = { + args: Messages_By_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootModulesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootModules_By_PkArgs = { + module_name: Scalars['String']; +}; + + +export type Query_RootPre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootPre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootSlashing_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootSupplyArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootTokenArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootToken_PriceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootToken_Price_HistoryArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootToken_UnitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootTransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Query_RootValidator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootValidator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Query_RootVesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootVesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_CodeArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Code_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Execute_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Execute_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + +/** columns and relationships of "slashing_params" */ +export type Slashing_Params = { + __typename?: 'slashing_params'; + height: Scalars['bigint']; + params: Scalars['jsonb']; +}; + + +/** columns and relationships of "slashing_params" */ +export type Slashing_ParamsParamsArgs = { + path?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "slashing_params". All fields are combined with a logical 'AND'. */ +export type Slashing_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + height?: InputMaybe; + params?: InputMaybe; +}; + +/** Ordering options when selecting data from "slashing_params". */ +export type Slashing_Params_Order_By = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** select columns of table "slashing_params" */ +export enum Slashing_Params_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + Params = 'params' +} + +/** Streaming cursor of the table "slashing_params" */ +export type Slashing_Params_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Slashing_Params_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Slashing_Params_Stream_Cursor_Value_Input = { + height?: InputMaybe; + params?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "smallint". All fields are combined with logical 'AND'. */ +export type Smallint_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +export type Subscription_Root = { + __typename?: 'subscription_root'; + /** fetch data from the table: "account" */ + account: Array; + /** fetch data from the table: "account" using primary key columns */ + account_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "account" */ + account_stream: Array; + /** fetch data from the table: "average_block_time_from_genesis" */ + average_block_time_from_genesis: Array; + /** fetch data from the table in a streaming manner: "average_block_time_from_genesis" */ + average_block_time_from_genesis_stream: Array; + /** fetch data from the table: "average_block_time_per_day" */ + average_block_time_per_day: Array; + /** fetch data from the table in a streaming manner: "average_block_time_per_day" */ + average_block_time_per_day_stream: Array; + /** fetch data from the table: "average_block_time_per_hour" */ + average_block_time_per_hour: Array; + /** fetch data from the table in a streaming manner: "average_block_time_per_hour" */ + average_block_time_per_hour_stream: Array; + /** fetch data from the table: "average_block_time_per_minute" */ + average_block_time_per_minute: Array; + /** fetch data from the table in a streaming manner: "average_block_time_per_minute" */ + average_block_time_per_minute_stream: Array; + /** fetch data from the table: "block" */ + block: Array; + /** fetch data from the table: "block" using primary key columns */ + block_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "block" */ + block_stream: Array; + /** fetch data from the table: "ccv_consumer_chain" */ + ccv_consumer_chain: Array; + /** fetch aggregated fields from the table: "ccv_consumer_chain" */ + ccv_consumer_chain_aggregate: Ccv_Consumer_Chain_Aggregate; + /** fetch data from the table in a streaming manner: "ccv_consumer_chain" */ + ccv_consumer_chain_stream: Array; + /** fetch data from the table: "ccv_consumer_params" */ + ccv_consumer_params: Array; + /** fetch aggregated fields from the table: "ccv_consumer_params" */ + ccv_consumer_params_aggregate: Ccv_Consumer_Params_Aggregate; + /** fetch data from the table: "ccv_consumer_params" using primary key columns */ + ccv_consumer_params_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "ccv_consumer_params" */ + ccv_consumer_params_stream: Array; + /** fetch data from the table: "ccv_validator" */ + ccv_validator: Array; + /** fetch data from the table: "ccv_validator" using primary key columns */ + ccv_validator_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "ccv_validator" */ + ccv_validator_stream: Array; + /** fetch data from the table: "fee_grant_allowance" */ + fee_grant_allowance: Array; + /** fetch data from the table in a streaming manner: "fee_grant_allowance" */ + fee_grant_allowance_stream: Array; + /** fetch data from the table: "genesis" */ + genesis: Array; + /** fetch data from the table in a streaming manner: "genesis" */ + genesis_stream: Array; + /** fetch data from the table: "message" */ + message: Array; + /** fetch data from the table in a streaming manner: "message" */ + message_stream: Array; + /** execute function "messages_by_address" which returns "message" */ + messages_by_address: Array; + /** fetch data from the table: "modules" */ + modules: Array; + /** fetch data from the table: "modules" using primary key columns */ + modules_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "modules" */ + modules_stream: Array; + /** fetch data from the table: "pre_commit" */ + pre_commit: Array; + /** fetch aggregated fields from the table: "pre_commit" */ + pre_commit_aggregate: Pre_Commit_Aggregate; + /** fetch data from the table in a streaming manner: "pre_commit" */ + pre_commit_stream: Array; + provider?: Maybe; + /** fetch data from the table: "slashing_params" */ + slashing_params: Array; + /** fetch data from the table in a streaming manner: "slashing_params" */ + slashing_params_stream: Array; + /** fetch data from the table: "supply" */ + supply: Array; + /** fetch data from the table in a streaming manner: "supply" */ + supply_stream: Array; + /** fetch data from the table: "token" */ + token: Array; + /** fetch data from the table: "token_price" */ + token_price: Array; + /** fetch data from the table: "token_price_history" */ + token_price_history: Array; + /** fetch data from the table in a streaming manner: "token_price_history" */ + token_price_history_stream: Array; + /** fetch data from the table in a streaming manner: "token_price" */ + token_price_stream: Array; + /** fetch data from the table in a streaming manner: "token" */ + token_stream: Array; + /** fetch data from the table: "token_unit" */ + token_unit: Array; + /** fetch data from the table in a streaming manner: "token_unit" */ + token_unit_stream: Array; + /** fetch data from the table: "transaction" */ + transaction: Array; + /** fetch data from the table in a streaming manner: "transaction" */ + transaction_stream: Array; + /** fetch data from the table: "validator" */ + validator: Array; + /** fetch data from the table: "validator" using primary key columns */ + validator_by_pk?: Maybe; + /** fetch data from the table: "validator_signing_info" */ + validator_signing_info: Array; + /** fetch data from the table: "validator_signing_info" using primary key columns */ + validator_signing_info_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "validator_signing_info" */ + validator_signing_info_stream: Array; + /** fetch data from the table in a streaming manner: "validator" */ + validator_stream: Array; + /** fetch data from the table: "vesting_account" */ + vesting_account: Array; + /** fetch data from the table in a streaming manner: "vesting_account" */ + vesting_account_stream: Array; + /** fetch data from the table: "vesting_period" */ + vesting_period: Array; + /** fetch data from the table in a streaming manner: "vesting_period" */ + vesting_period_stream: Array; + /** fetch data from the table: "wasm_code" */ + wasm_code: Array; + /** fetch aggregated fields from the table: "wasm_code" */ + wasm_code_aggregate: Wasm_Code_Aggregate; + /** fetch data from the table in a streaming manner: "wasm_code" */ + wasm_code_stream: Array; + /** fetch data from the table: "wasm_contract" */ + wasm_contract: Array; + /** fetch aggregated fields from the table: "wasm_contract" */ + wasm_contract_aggregate: Wasm_Contract_Aggregate; + /** fetch data from the table in a streaming manner: "wasm_contract" */ + wasm_contract_stream: Array; + /** fetch data from the table: "wasm_execute_contract" */ + wasm_execute_contract: Array; + /** fetch aggregated fields from the table: "wasm_execute_contract" */ + wasm_execute_contract_aggregate: Wasm_Execute_Contract_Aggregate; + /** fetch data from the table in a streaming manner: "wasm_execute_contract" */ + wasm_execute_contract_stream: Array; + /** fetch data from the table: "wasm_params" */ + wasm_params: Array; + /** fetch aggregated fields from the table: "wasm_params" */ + wasm_params_aggregate: Wasm_Params_Aggregate; + /** fetch data from the table: "wasm_params" using primary key columns */ + wasm_params_by_pk?: Maybe; + /** fetch data from the table in a streaming manner: "wasm_params" */ + wasm_params_stream: Array; +}; + + +export type Subscription_RootAccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootAccount_By_PkArgs = { + address: Scalars['String']; +}; + + +export type Subscription_RootAccount_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_From_GenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_From_Genesis_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_DayArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_Day_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_HourArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_Hour_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_MinuteArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootAverage_Block_Time_Per_Minute_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootBlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootBlock_By_PkArgs = { + height: Scalars['bigint']; +}; + + +export type Subscription_RootBlock_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_Consumer_ChainArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_Consumer_Chain_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_Consumer_Chain_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_Consumer_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_Consumer_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_Consumer_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Subscription_RootCcv_Consumer_Params_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_ValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootCcv_Validator_By_PkArgs = { + consumer_consensus_address: Scalars['String']; +}; + + +export type Subscription_RootCcv_Validator_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootFee_Grant_AllowanceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootFee_Grant_Allowance_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootGenesisArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootGenesis_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootMessageArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootMessage_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootMessages_By_AddressArgs = { + args: Messages_By_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootModulesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootModules_By_PkArgs = { + module_name: Scalars['String']; +}; + + +export type Subscription_RootModules_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootPre_CommitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootPre_Commit_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootPre_Commit_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootSlashing_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootSlashing_Params_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootSupplyArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootSupply_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootTokenArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_PriceArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_Price_HistoryArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_Price_History_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_Price_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_UnitArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootToken_Unit_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootTransactionArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootTransaction_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidatorArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_By_PkArgs = { + consensus_address: Scalars['String']; +}; + + +export type Subscription_RootValidator_Signing_InfoArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_Signing_Info_By_PkArgs = { + validator_address: Scalars['String']; +}; + + +export type Subscription_RootValidator_Signing_Info_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootValidator_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootVesting_AccountArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootVesting_Account_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootVesting_PeriodArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootVesting_Period_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_CodeArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Code_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Code_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Contract_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Execute_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Execute_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Execute_Contract_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + + +export type Subscription_RootWasm_Params_StreamArgs = { + batch_size: Scalars['Int']; + cursor: Array>; + where?: InputMaybe; +}; + +/** columns and relationships of "supply" */ +export type Supply = { + __typename?: 'supply'; + coins: Scalars['_coin']; + height: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "supply". All fields are combined with a logical 'AND'. */ +export type Supply_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + coins?: InputMaybe<_Coin_Comparison_Exp>; + height?: InputMaybe; +}; + +/** Ordering options when selecting data from "supply". */ +export type Supply_Order_By = { + coins?: InputMaybe; + height?: InputMaybe; +}; + +/** select columns of table "supply" */ +export enum Supply_Select_Column { + /** column name */ + Coins = 'coins', + /** column name */ + Height = 'height' +} + +/** Streaming cursor of the table "supply" */ +export type Supply_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Supply_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Supply_Stream_Cursor_Value_Input = { + coins?: InputMaybe; + height?: InputMaybe; +}; + +/** Boolean expression to compare columns of type "timestamp". All fields are combined with logical 'AND'. */ +export type Timestamp_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** Boolean expression to compare columns of type "timestamptz". All fields are combined with logical 'AND'. */ +export type Timestamptz_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + +/** columns and relationships of "token" */ +export type Token = { + __typename?: 'token'; + name: Scalars['String']; + /** An array relationship */ + token_units: Array; +}; + + +/** columns and relationships of "token" */ +export type TokenToken_UnitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "token". All fields are combined with a logical 'AND'. */ +export type Token_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + name?: InputMaybe; + token_units?: InputMaybe; +}; + +/** Ordering options when selecting data from "token". */ +export type Token_Order_By = { + name?: InputMaybe; + token_units_aggregate?: InputMaybe; +}; + +/** columns and relationships of "token_price" */ +export type Token_Price = { + __typename?: 'token_price'; + market_cap: Scalars['bigint']; + price: Scalars['numeric']; + timestamp: Scalars['timestamp']; + /** An object relationship */ + token_unit: Token_Unit; + unit_name: Scalars['String']; +}; + +/** order by aggregate values of table "token_price" */ +export type Token_Price_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "token_price" */ +export type Token_Price_Avg_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "token_price". All fields are combined with a logical 'AND'. */ +export type Token_Price_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** columns and relationships of "token_price_history" */ +export type Token_Price_History = { + __typename?: 'token_price_history'; + market_cap: Scalars['bigint']; + price: Scalars['numeric']; + timestamp: Scalars['timestamp']; + /** An object relationship */ + token_unit: Token_Unit; + unit_name: Scalars['String']; +}; + +/** order by aggregate values of table "token_price_history" */ +export type Token_Price_History_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "token_price_history" */ +export type Token_Price_History_Avg_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "token_price_history". All fields are combined with a logical 'AND'. */ +export type Token_Price_History_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** order by max() on columns of table "token_price_history" */ +export type Token_Price_History_Max_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** order by min() on columns of table "token_price_history" */ +export type Token_Price_History_Min_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** Ordering options when selecting data from "token_price_history". */ +export type Token_Price_History_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** select columns of table "token_price_history" */ +export enum Token_Price_History_Select_Column { + /** column name */ + MarketCap = 'market_cap', + /** column name */ + Price = 'price', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + UnitName = 'unit_name' +} + +/** order by stddev() on columns of table "token_price_history" */ +export type Token_Price_History_Stddev_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "token_price_history" */ +export type Token_Price_History_Stddev_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "token_price_history" */ +export type Token_Price_History_Stddev_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** Streaming cursor of the table "token_price_history" */ +export type Token_Price_History_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Token_Price_History_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Token_Price_History_Stream_Cursor_Value_Input = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** order by sum() on columns of table "token_price_history" */ +export type Token_Price_History_Sum_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by var_pop() on columns of table "token_price_history" */ +export type Token_Price_History_Var_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by var_samp() on columns of table "token_price_history" */ +export type Token_Price_History_Var_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by variance() on columns of table "token_price_history" */ +export type Token_Price_History_Variance_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by max() on columns of table "token_price" */ +export type Token_Price_Max_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** order by min() on columns of table "token_price" */ +export type Token_Price_Min_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** Ordering options when selecting data from "token_price". */ +export type Token_Price_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + token_unit?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** select columns of table "token_price" */ +export enum Token_Price_Select_Column { + /** column name */ + MarketCap = 'market_cap', + /** column name */ + Price = 'price', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + UnitName = 'unit_name' +} + +/** order by stddev() on columns of table "token_price" */ +export type Token_Price_Stddev_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "token_price" */ +export type Token_Price_Stddev_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "token_price" */ +export type Token_Price_Stddev_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** Streaming cursor of the table "token_price" */ +export type Token_Price_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Token_Price_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Token_Price_Stream_Cursor_Value_Input = { + market_cap?: InputMaybe; + price?: InputMaybe; + timestamp?: InputMaybe; + unit_name?: InputMaybe; +}; + +/** order by sum() on columns of table "token_price" */ +export type Token_Price_Sum_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by var_pop() on columns of table "token_price" */ +export type Token_Price_Var_Pop_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by var_samp() on columns of table "token_price" */ +export type Token_Price_Var_Samp_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** order by variance() on columns of table "token_price" */ +export type Token_Price_Variance_Order_By = { + market_cap?: InputMaybe; + price?: InputMaybe; +}; + +/** select columns of table "token" */ +export enum Token_Select_Column { + /** column name */ + Name = 'name' +} + +/** Streaming cursor of the table "token" */ +export type Token_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Token_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Token_Stream_Cursor_Value_Input = { + name?: InputMaybe; +}; + +/** columns and relationships of "token_unit" */ +export type Token_Unit = { + __typename?: 'token_unit'; + aliases?: Maybe; + denom: Scalars['String']; + exponent: Scalars['Int']; + price_id?: Maybe; + /** An object relationship */ + token: Token; + token_name: Scalars['String']; + /** An object relationship */ + token_price?: Maybe; + /** An array relationship */ + token_price_histories: Array; + /** An array relationship */ + token_prices: Array; +}; + + +/** columns and relationships of "token_unit" */ +export type Token_UnitToken_Price_HistoriesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "token_unit" */ +export type Token_UnitToken_PricesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "token_unit" */ +export type Token_Unit_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "token_unit" */ +export type Token_Unit_Avg_Order_By = { + exponent?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "token_unit". All fields are combined with a logical 'AND'. */ +export type Token_Unit_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + aliases?: InputMaybe<_Text_Comparison_Exp>; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token?: InputMaybe; + token_name?: InputMaybe; + token_price?: InputMaybe; + token_price_histories?: InputMaybe; + token_prices?: InputMaybe; +}; + +/** order by max() on columns of table "token_unit" */ +export type Token_Unit_Max_Order_By = { + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; +}; + +/** order by min() on columns of table "token_unit" */ +export type Token_Unit_Min_Order_By = { + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; +}; + +/** Ordering options when selecting data from "token_unit". */ +export type Token_Unit_Order_By = { + aliases?: InputMaybe; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token?: InputMaybe; + token_name?: InputMaybe; + token_price?: InputMaybe; + token_price_histories_aggregate?: InputMaybe; + token_prices_aggregate?: InputMaybe; +}; + +/** select columns of table "token_unit" */ +export enum Token_Unit_Select_Column { + /** column name */ + Aliases = 'aliases', + /** column name */ + Denom = 'denom', + /** column name */ + Exponent = 'exponent', + /** column name */ + PriceId = 'price_id', + /** column name */ + TokenName = 'token_name' +} + +/** order by stddev() on columns of table "token_unit" */ +export type Token_Unit_Stddev_Order_By = { + exponent?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "token_unit" */ +export type Token_Unit_Stddev_Pop_Order_By = { + exponent?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "token_unit" */ +export type Token_Unit_Stddev_Samp_Order_By = { + exponent?: InputMaybe; +}; + +/** Streaming cursor of the table "token_unit" */ +export type Token_Unit_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Token_Unit_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Token_Unit_Stream_Cursor_Value_Input = { + aliases?: InputMaybe; + denom?: InputMaybe; + exponent?: InputMaybe; + price_id?: InputMaybe; + token_name?: InputMaybe; +}; + +/** order by sum() on columns of table "token_unit" */ +export type Token_Unit_Sum_Order_By = { + exponent?: InputMaybe; +}; + +/** order by var_pop() on columns of table "token_unit" */ +export type Token_Unit_Var_Pop_Order_By = { + exponent?: InputMaybe; +}; + +/** order by var_samp() on columns of table "token_unit" */ +export type Token_Unit_Var_Samp_Order_By = { + exponent?: InputMaybe; +}; + +/** order by variance() on columns of table "token_unit" */ +export type Token_Unit_Variance_Order_By = { + exponent?: InputMaybe; +}; + +/** columns and relationships of "transaction" */ +export type Transaction = { + __typename?: 'transaction'; + /** An object relationship */ + block: Block; + fee: Scalars['jsonb']; + gas_used?: Maybe; + gas_wanted?: Maybe; + hash: Scalars['String']; + height: Scalars['bigint']; + logs?: Maybe; + memo?: Maybe; + messages: Scalars['jsonb']; + /** An array relationship */ + messagesByTransactionHashPartitionId: Array; + raw_log?: Maybe; + signatures: Scalars['_text']; + signer_infos: Scalars['jsonb']; + success: Scalars['Boolean']; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionFeeArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionLogsArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionMessagesArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionMessagesByTransactionHashPartitionIdArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionSigner_InfosArgs = { + path?: InputMaybe; +}; + +/** order by aggregate values of table "transaction" */ +export type Transaction_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "transaction" */ +export type Transaction_Avg_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "transaction". All fields are combined with a logical 'AND'. */ +export type Transaction_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + messagesByTransactionHashPartitionId?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe<_Text_Comparison_Exp>; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** order by max() on columns of table "transaction" */ +export type Transaction_Max_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + raw_log?: InputMaybe; +}; + +/** order by min() on columns of table "transaction" */ +export type Transaction_Min_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + memo?: InputMaybe; + raw_log?: InputMaybe; +}; + +/** Ordering options when selecting data from "transaction". */ +export type Transaction_Order_By = { + block?: InputMaybe; + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + messagesByTransactionHashPartitionId_aggregate?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** select columns of table "transaction" */ +export enum Transaction_Select_Column { + /** column name */ + Fee = 'fee', + /** column name */ + GasUsed = 'gas_used', + /** column name */ + GasWanted = 'gas_wanted', + /** column name */ + Hash = 'hash', + /** column name */ + Height = 'height', + /** column name */ + Logs = 'logs', + /** column name */ + Memo = 'memo', + /** column name */ + Messages = 'messages', + /** column name */ + RawLog = 'raw_log', + /** column name */ + Signatures = 'signatures', + /** column name */ + SignerInfos = 'signer_infos', + /** column name */ + Success = 'success' +} + +/** order by stddev() on columns of table "transaction" */ +export type Transaction_Stddev_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "transaction" */ +export type Transaction_Stddev_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "transaction" */ +export type Transaction_Stddev_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** Streaming cursor of the table "transaction" */ +export type Transaction_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Transaction_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Transaction_Stream_Cursor_Value_Input = { + fee?: InputMaybe; + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + logs?: InputMaybe; + memo?: InputMaybe; + messages?: InputMaybe; + raw_log?: InputMaybe; + signatures?: InputMaybe; + signer_infos?: InputMaybe; + success?: InputMaybe; +}; + +/** order by sum() on columns of table "transaction" */ +export type Transaction_Sum_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "transaction" */ +export type Transaction_Var_Pop_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "transaction" */ +export type Transaction_Var_Samp_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** order by variance() on columns of table "transaction" */ +export type Transaction_Variance_Order_By = { + gas_used?: InputMaybe; + gas_wanted?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "validator" */ +export type Validator = { + __typename?: 'validator'; + /** An array relationship */ + blocks: Array; + consensus_address: Scalars['String']; + consensus_pubkey: Scalars['String']; + /** An array relationship */ + pre_commits: Array; + /** An aggregate relationship */ + pre_commits_aggregate: Pre_Commit_Aggregate; + /** An array relationship */ + validator_signing_infos: Array; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorBlocksArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorPre_CommitsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorPre_Commits_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "validator" */ +export type ValidatorValidator_Signing_InfosArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator". All fields are combined with a logical 'AND'. */ +export type Validator_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + blocks?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + pre_commits?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + validator_signing_infos?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator". */ +export type Validator_Order_By = { + blocks_aggregate?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + validator_signing_infos_aggregate?: InputMaybe; +}; + +/** select columns of table "validator" */ +export enum Validator_Select_Column { + /** column name */ + ConsensusAddress = 'consensus_address', + /** column name */ + ConsensusPubkey = 'consensus_pubkey' +} + +/** columns and relationships of "validator_signing_info" */ +export type Validator_Signing_Info = { + __typename?: 'validator_signing_info'; + /** An object relationship */ + ccv_validator_signing_info?: Maybe; + height: Scalars['bigint']; + index_offset: Scalars['bigint']; + jailed_until: Scalars['timestamp']; + missed_blocks_counter: Scalars['bigint']; + start_height: Scalars['bigint']; + tombstoned: Scalars['Boolean']; + validator_address: Scalars['String']; +}; + +/** order by aggregate values of table "validator_signing_info" */ +export type Validator_Signing_Info_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Avg_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "validator_signing_info". All fields are combined with a logical 'AND'. */ +export type Validator_Signing_Info_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + ccv_validator_signing_info?: InputMaybe; + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by max() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Max_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by min() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Min_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** Ordering options when selecting data from "validator_signing_info". */ +export type Validator_Signing_Info_Order_By = { + ccv_validator_signing_info?: InputMaybe; + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** select columns of table "validator_signing_info" */ +export enum Validator_Signing_Info_Select_Column { + /** column name */ + Height = 'height', + /** column name */ + IndexOffset = 'index_offset', + /** column name */ + JailedUntil = 'jailed_until', + /** column name */ + MissedBlocksCounter = 'missed_blocks_counter', + /** column name */ + StartHeight = 'start_height', + /** column name */ + Tombstoned = 'tombstoned', + /** column name */ + ValidatorAddress = 'validator_address' +} + +/** order by stddev() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Stddev_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Stddev_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Stddev_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** Streaming cursor of the table "validator_signing_info" */ +export type Validator_Signing_Info_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Validator_Signing_Info_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Validator_Signing_Info_Stream_Cursor_Value_Input = { + height?: InputMaybe; + index_offset?: InputMaybe; + jailed_until?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; + tombstoned?: InputMaybe; + validator_address?: InputMaybe; +}; + +/** order by sum() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Sum_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by var_pop() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Var_Pop_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by var_samp() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Var_Samp_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +/** order by variance() on columns of table "validator_signing_info" */ +export type Validator_Signing_Info_Variance_Order_By = { + height?: InputMaybe; + index_offset?: InputMaybe; + missed_blocks_counter?: InputMaybe; + start_height?: InputMaybe; +}; + +export type Validator_Status_Aggregate_Bool_Exp = { + bool_and?: InputMaybe; + bool_or?: InputMaybe; + count?: InputMaybe; +}; + +export type Validator_Status_Aggregate_Bool_Exp_Bool_And = { + arguments: Provider_Validator_Status_Select_Column_Validator_Status_Aggregate_Bool_Exp_Bool_And_Arguments_Columns; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Boolean_Comparison_Exp; +}; + +export type Validator_Status_Aggregate_Bool_Exp_Bool_Or = { + arguments: Provider_Validator_Status_Select_Column_Validator_Status_Aggregate_Bool_Exp_Bool_Or_Arguments_Columns; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Boolean_Comparison_Exp; +}; + +export type Validator_Status_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + +/** Streaming cursor of the table "validator" */ +export type Validator_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Validator_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Validator_Stream_Cursor_Value_Input = { + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; +}; + +export type Validator_Voting_Power_Aggregate_Bool_Exp = { + count?: InputMaybe; +}; + +export type Validator_Voting_Power_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + +/** columns and relationships of "vesting_account" */ +export type Vesting_Account = { + __typename?: 'vesting_account'; + /** An object relationship */ + account: Account; + address: Scalars['String']; + end_time: Scalars['timestamp']; + original_vesting: Scalars['_coin']; + start_time?: Maybe; + type: Scalars['String']; + /** An array relationship */ + vesting_periods: Array; +}; + + +/** columns and relationships of "vesting_account" */ +export type Vesting_AccountVesting_PeriodsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** order by aggregate values of table "vesting_account" */ +export type Vesting_Account_Aggregate_Order_By = { + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "vesting_account". All fields are combined with a logical 'AND'. */ +export type Vesting_Account_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe<_Coin_Comparison_Exp>; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods?: InputMaybe; +}; + +/** order by max() on columns of table "vesting_account" */ +export type Vesting_Account_Max_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +/** order by min() on columns of table "vesting_account" */ +export type Vesting_Account_Min_Order_By = { + address?: InputMaybe; + end_time?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +/** Ordering options when selecting data from "vesting_account". */ +export type Vesting_Account_Order_By = { + account?: InputMaybe; + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; + vesting_periods_aggregate?: InputMaybe; +}; + +/** select columns of table "vesting_account" */ +export enum Vesting_Account_Select_Column { + /** column name */ + Address = 'address', + /** column name */ + EndTime = 'end_time', + /** column name */ + OriginalVesting = 'original_vesting', + /** column name */ + StartTime = 'start_time', + /** column name */ + Type = 'type' +} + +/** Streaming cursor of the table "vesting_account" */ +export type Vesting_Account_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Vesting_Account_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Vesting_Account_Stream_Cursor_Value_Input = { + address?: InputMaybe; + end_time?: InputMaybe; + original_vesting?: InputMaybe; + start_time?: InputMaybe; + type?: InputMaybe; +}; + +/** columns and relationships of "vesting_period" */ +export type Vesting_Period = { + __typename?: 'vesting_period'; + amount: Scalars['_coin']; + length: Scalars['bigint']; + period_order: Scalars['bigint']; + /** An object relationship */ + vesting_account: Vesting_Account; +}; + +/** order by aggregate values of table "vesting_period" */ +export type Vesting_Period_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** order by avg() on columns of table "vesting_period" */ +export type Vesting_Period_Avg_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "vesting_period". All fields are combined with a logical 'AND'. */ +export type Vesting_Period_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe<_Coin_Comparison_Exp>; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; +}; + +/** order by max() on columns of table "vesting_period" */ +export type Vesting_Period_Max_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by min() on columns of table "vesting_period" */ +export type Vesting_Period_Min_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** Ordering options when selecting data from "vesting_period". */ +export type Vesting_Period_Order_By = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; +}; + +/** select columns of table "vesting_period" */ +export enum Vesting_Period_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + Length = 'length', + /** column name */ + PeriodOrder = 'period_order' +} + +/** order by stddev() on columns of table "vesting_period" */ +export type Vesting_Period_Stddev_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by stddev_pop() on columns of table "vesting_period" */ +export type Vesting_Period_Stddev_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by stddev_samp() on columns of table "vesting_period" */ +export type Vesting_Period_Stddev_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** Streaming cursor of the table "vesting_period" */ +export type Vesting_Period_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Vesting_Period_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Vesting_Period_Stream_Cursor_Value_Input = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by sum() on columns of table "vesting_period" */ +export type Vesting_Period_Sum_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by var_pop() on columns of table "vesting_period" */ +export type Vesting_Period_Var_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by var_samp() on columns of table "vesting_period" */ +export type Vesting_Period_Var_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** order by variance() on columns of table "vesting_period" */ +export type Vesting_Period_Variance_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; +}; + +/** columns and relationships of "wasm_code" */ +export type Wasm_Code = { + __typename?: 'wasm_code'; + byte_code: Scalars['bytea']; + code_id: Scalars['bigint']; + height: Scalars['bigint']; + instantiate_permission?: Maybe; + sender?: Maybe; + /** An array relationship */ + wasm_contracts: Array; + /** An aggregate relationship */ + wasm_contracts_aggregate: Wasm_Contract_Aggregate; +}; + + +/** columns and relationships of "wasm_code" */ +export type Wasm_CodeWasm_ContractsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "wasm_code" */ +export type Wasm_CodeWasm_Contracts_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** aggregated selection of "wasm_code" */ +export type Wasm_Code_Aggregate = { + __typename?: 'wasm_code_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "wasm_code" */ +export type Wasm_Code_Aggregate_Fields = { + __typename?: 'wasm_code_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 "wasm_code" */ +export type Wasm_Code_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Code_Avg_Fields = { + __typename?: 'wasm_code_avg_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** Boolean expression to filter rows from the table "wasm_code". All fields are combined with a logical 'AND'. */ +export type Wasm_Code_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + byte_code?: InputMaybe; + code_id?: InputMaybe; + height?: InputMaybe; + instantiate_permission?: InputMaybe; + sender?: InputMaybe; + wasm_contracts?: InputMaybe; + wasm_contracts_aggregate?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Code_Max_Fields = { + __typename?: 'wasm_code_max_fields'; + code_id?: Maybe; + height?: Maybe; + instantiate_permission?: Maybe; + sender?: Maybe; +}; + +/** aggregate min on columns */ +export type Wasm_Code_Min_Fields = { + __typename?: 'wasm_code_min_fields'; + code_id?: Maybe; + height?: Maybe; + instantiate_permission?: Maybe; + sender?: Maybe; +}; + +/** Ordering options when selecting data from "wasm_code". */ +export type Wasm_Code_Order_By = { + byte_code?: InputMaybe; + code_id?: InputMaybe; + height?: InputMaybe; + instantiate_permission?: InputMaybe; + sender?: InputMaybe; + wasm_contracts_aggregate?: InputMaybe; +}; + +/** select columns of table "wasm_code" */ +export enum Wasm_Code_Select_Column { + /** column name */ + ByteCode = 'byte_code', + /** column name */ + CodeId = 'code_id', + /** column name */ + Height = 'height', + /** column name */ + InstantiatePermission = 'instantiate_permission', + /** column name */ + Sender = 'sender' +} + +/** aggregate stddev on columns */ +export type Wasm_Code_Stddev_Fields = { + __typename?: 'wasm_code_stddev_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Wasm_Code_Stddev_Pop_Fields = { + __typename?: 'wasm_code_stddev_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Wasm_Code_Stddev_Samp_Fields = { + __typename?: 'wasm_code_stddev_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** Streaming cursor of the table "wasm_code" */ +export type Wasm_Code_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Wasm_Code_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Wasm_Code_Stream_Cursor_Value_Input = { + byte_code?: InputMaybe; + code_id?: InputMaybe; + height?: InputMaybe; + instantiate_permission?: InputMaybe; + sender?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Wasm_Code_Sum_Fields = { + __typename?: 'wasm_code_sum_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Wasm_Code_Var_Pop_Fields = { + __typename?: 'wasm_code_var_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Wasm_Code_Var_Samp_Fields = { + __typename?: 'wasm_code_var_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate variance on columns */ +export type Wasm_Code_Variance_Fields = { + __typename?: 'wasm_code_variance_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** columns and relationships of "wasm_contract" */ +export type Wasm_Contract = { + __typename?: 'wasm_contract'; + /** An object relationship */ + account: Account; + admin?: Maybe; + code_id: Scalars['bigint']; + contract_address: Scalars['String']; + contract_info_extension?: Maybe; + contract_states: Scalars['jsonb']; + creator: Scalars['String']; + data?: Maybe; + funds: Scalars['_coin']; + height: Scalars['bigint']; + instantiated_at: Scalars['timestamp']; + label?: Maybe; + raw_contract_message: Scalars['jsonb']; + sender?: Maybe; + /** An object relationship */ + wasm_code: Wasm_Code; + /** An array relationship */ + wasm_execute_contracts: Array; + /** An aggregate relationship */ + wasm_execute_contracts_aggregate: Wasm_Execute_Contract_Aggregate; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractContract_StatesArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractRaw_Contract_MessageArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractWasm_Execute_ContractsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractWasm_Execute_Contracts_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** aggregated selection of "wasm_contract" */ +export type Wasm_Contract_Aggregate = { + __typename?: 'wasm_contract_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Wasm_Contract_Aggregate_Bool_Exp = { + count?: InputMaybe; +}; + +export type Wasm_Contract_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + +/** aggregate fields of "wasm_contract" */ +export type Wasm_Contract_Aggregate_Fields = { + __typename?: 'wasm_contract_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 "wasm_contract" */ +export type Wasm_Contract_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "wasm_contract" */ +export type Wasm_Contract_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Contract_Avg_Fields = { + __typename?: 'wasm_contract_avg_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by avg() on columns of table "wasm_contract" */ +export type Wasm_Contract_Avg_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "wasm_contract". All fields are combined with a logical 'AND'. */ +export type Wasm_Contract_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + contract_states?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + funds?: InputMaybe<_Coin_Comparison_Exp>; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_code?: InputMaybe; + wasm_execute_contracts?: InputMaybe; + wasm_execute_contracts_aggregate?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Contract_Max_Fields = { + __typename?: 'wasm_contract_max_fields'; + admin?: Maybe; + code_id?: Maybe; + contract_address?: Maybe; + contract_info_extension?: Maybe; + creator?: Maybe; + data?: Maybe; + height?: Maybe; + instantiated_at?: Maybe; + label?: Maybe; + sender?: Maybe; +}; + +/** order by max() on columns of table "wasm_contract" */ +export type Wasm_Contract_Max_Order_By = { + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + sender?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Wasm_Contract_Min_Fields = { + __typename?: 'wasm_contract_min_fields'; + admin?: Maybe; + code_id?: Maybe; + contract_address?: Maybe; + contract_info_extension?: Maybe; + creator?: Maybe; + data?: Maybe; + height?: Maybe; + instantiated_at?: Maybe; + label?: Maybe; + sender?: Maybe; +}; + +/** order by min() on columns of table "wasm_contract" */ +export type Wasm_Contract_Min_Order_By = { + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + sender?: InputMaybe; +}; + +/** Ordering options when selecting data from "wasm_contract". */ +export type Wasm_Contract_Order_By = { + account?: InputMaybe; + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + contract_states?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + funds?: InputMaybe; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_code?: InputMaybe; + wasm_execute_contracts_aggregate?: InputMaybe; +}; + +/** select columns of table "wasm_contract" */ +export enum Wasm_Contract_Select_Column { + /** column name */ + Admin = 'admin', + /** column name */ + CodeId = 'code_id', + /** column name */ + ContractAddress = 'contract_address', + /** column name */ + ContractInfoExtension = 'contract_info_extension', + /** column name */ + ContractStates = 'contract_states', + /** column name */ + Creator = 'creator', + /** column name */ + Data = 'data', + /** column name */ + Funds = 'funds', + /** column name */ + Height = 'height', + /** column name */ + InstantiatedAt = 'instantiated_at', + /** column name */ + Label = 'label', + /** column name */ + RawContractMessage = 'raw_contract_message', + /** column name */ + Sender = 'sender' +} + +/** aggregate stddev on columns */ +export type Wasm_Contract_Stddev_Fields = { + __typename?: 'wasm_contract_stddev_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by stddev() on columns of table "wasm_contract" */ +export type Wasm_Contract_Stddev_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Wasm_Contract_Stddev_Pop_Fields = { + __typename?: 'wasm_contract_stddev_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by stddev_pop() on columns of table "wasm_contract" */ +export type Wasm_Contract_Stddev_Pop_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Wasm_Contract_Stddev_Samp_Fields = { + __typename?: 'wasm_contract_stddev_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by stddev_samp() on columns of table "wasm_contract" */ +export type Wasm_Contract_Stddev_Samp_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** Streaming cursor of the table "wasm_contract" */ +export type Wasm_Contract_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Wasm_Contract_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Wasm_Contract_Stream_Cursor_Value_Input = { + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + contract_states?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + funds?: InputMaybe; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Wasm_Contract_Sum_Fields = { + __typename?: 'wasm_contract_sum_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by sum() on columns of table "wasm_contract" */ +export type Wasm_Contract_Sum_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Wasm_Contract_Var_Pop_Fields = { + __typename?: 'wasm_contract_var_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by var_pop() on columns of table "wasm_contract" */ +export type Wasm_Contract_Var_Pop_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Wasm_Contract_Var_Samp_Fields = { + __typename?: 'wasm_contract_var_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by var_samp() on columns of table "wasm_contract" */ +export type Wasm_Contract_Var_Samp_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Wasm_Contract_Variance_Fields = { + __typename?: 'wasm_contract_variance_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by variance() on columns of table "wasm_contract" */ +export type Wasm_Contract_Variance_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "wasm_execute_contract" */ +export type Wasm_Execute_Contract = { + __typename?: 'wasm_execute_contract'; + contract_address: Scalars['String']; + data?: Maybe; + executed_at: Scalars['timestamp']; + funds: Scalars['_coin']; + height: Scalars['bigint']; + raw_contract_message: Scalars['jsonb']; + sender: Scalars['String']; + /** An object relationship */ + wasm_contract: Wasm_Contract; +}; + + +/** columns and relationships of "wasm_execute_contract" */ +export type Wasm_Execute_ContractRaw_Contract_MessageArgs = { + path?: InputMaybe; +}; + +/** aggregated selection of "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate = { + __typename?: 'wasm_execute_contract_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +export type Wasm_Execute_Contract_Aggregate_Bool_Exp = { + count?: InputMaybe; +}; + +export type Wasm_Execute_Contract_Aggregate_Bool_Exp_Count = { + arguments?: InputMaybe>; + distinct?: InputMaybe; + filter?: InputMaybe; + predicate: Int_Comparison_Exp; +}; + +/** aggregate fields of "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate_Fields = { + __typename?: 'wasm_execute_contract_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 "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Execute_Contract_Avg_Fields = { + __typename?: 'wasm_execute_contract_avg_fields'; + height?: Maybe; +}; + +/** order by avg() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Avg_Order_By = { + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "wasm_execute_contract". All fields are combined with a logical 'AND'. */ +export type Wasm_Execute_Contract_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + funds?: InputMaybe<_Coin_Comparison_Exp>; + height?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_contract?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Execute_Contract_Max_Fields = { + __typename?: 'wasm_execute_contract_max_fields'; + contract_address?: Maybe; + data?: Maybe; + executed_at?: Maybe; + height?: Maybe; + sender?: Maybe; +}; + +/** order by max() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Max_Order_By = { + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + height?: InputMaybe; + sender?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Wasm_Execute_Contract_Min_Fields = { + __typename?: 'wasm_execute_contract_min_fields'; + contract_address?: Maybe; + data?: Maybe; + executed_at?: Maybe; + height?: Maybe; + sender?: Maybe; +}; + +/** order by min() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Min_Order_By = { + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + height?: InputMaybe; + sender?: InputMaybe; +}; + +/** Ordering options when selecting data from "wasm_execute_contract". */ +export type Wasm_Execute_Contract_Order_By = { + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + funds?: InputMaybe; + height?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_contract?: InputMaybe; +}; + +/** select columns of table "wasm_execute_contract" */ +export enum Wasm_Execute_Contract_Select_Column { + /** column name */ + ContractAddress = 'contract_address', + /** column name */ + Data = 'data', + /** column name */ + ExecutedAt = 'executed_at', + /** column name */ + Funds = 'funds', + /** column name */ + Height = 'height', + /** column name */ + RawContractMessage = 'raw_contract_message', + /** column name */ + Sender = 'sender' +} + +/** aggregate stddev on columns */ +export type Wasm_Execute_Contract_Stddev_Fields = { + __typename?: 'wasm_execute_contract_stddev_fields'; + height?: Maybe; +}; + +/** order by stddev() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Stddev_Order_By = { + height?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Wasm_Execute_Contract_Stddev_Pop_Fields = { + __typename?: 'wasm_execute_contract_stddev_pop_fields'; + height?: Maybe; +}; + +/** order by stddev_pop() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Stddev_Pop_Order_By = { + height?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Wasm_Execute_Contract_Stddev_Samp_Fields = { + __typename?: 'wasm_execute_contract_stddev_samp_fields'; + height?: Maybe; +}; + +/** order by stddev_samp() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Stddev_Samp_Order_By = { + height?: InputMaybe; +}; + +/** Streaming cursor of the table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Wasm_Execute_Contract_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Wasm_Execute_Contract_Stream_Cursor_Value_Input = { + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + funds?: InputMaybe; + height?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Wasm_Execute_Contract_Sum_Fields = { + __typename?: 'wasm_execute_contract_sum_fields'; + height?: Maybe; +}; + +/** order by sum() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Sum_Order_By = { + height?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Wasm_Execute_Contract_Var_Pop_Fields = { + __typename?: 'wasm_execute_contract_var_pop_fields'; + height?: Maybe; +}; + +/** order by var_pop() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Var_Pop_Order_By = { + height?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Wasm_Execute_Contract_Var_Samp_Fields = { + __typename?: 'wasm_execute_contract_var_samp_fields'; + height?: Maybe; +}; + +/** order by var_samp() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Var_Samp_Order_By = { + height?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Wasm_Execute_Contract_Variance_Fields = { + __typename?: 'wasm_execute_contract_variance_fields'; + height?: Maybe; +}; + +/** order by variance() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Variance_Order_By = { + height?: InputMaybe; +}; + +/** columns and relationships of "wasm_params" */ +export type Wasm_Params = { + __typename?: 'wasm_params'; + code_upload_access: Scalars['access_config_scalar']; + height: Scalars['bigint']; + instantiate_default_permission: Scalars['Int']; + one_row_id: Scalars['Boolean']; +}; + +/** aggregated selection of "wasm_params" */ +export type Wasm_Params_Aggregate = { + __typename?: 'wasm_params_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "wasm_params" */ +export type Wasm_Params_Aggregate_Fields = { + __typename?: 'wasm_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 "wasm_params" */ +export type Wasm_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Params_Avg_Fields = { + __typename?: 'wasm_params_avg_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** Boolean expression to filter rows from the table "wasm_params". All fields are combined with a logical 'AND'. */ +export type Wasm_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + code_upload_access?: InputMaybe; + height?: InputMaybe; + instantiate_default_permission?: InputMaybe; + one_row_id?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Params_Max_Fields = { + __typename?: 'wasm_params_max_fields'; + code_upload_access?: Maybe; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate min on columns */ +export type Wasm_Params_Min_Fields = { + __typename?: 'wasm_params_min_fields'; + code_upload_access?: Maybe; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** Ordering options when selecting data from "wasm_params". */ +export type Wasm_Params_Order_By = { + code_upload_access?: InputMaybe; + height?: InputMaybe; + instantiate_default_permission?: InputMaybe; + one_row_id?: InputMaybe; +}; + +/** select columns of table "wasm_params" */ +export enum Wasm_Params_Select_Column { + /** column name */ + CodeUploadAccess = 'code_upload_access', + /** column name */ + Height = 'height', + /** column name */ + InstantiateDefaultPermission = 'instantiate_default_permission', + /** column name */ + OneRowId = 'one_row_id' +} + +/** aggregate stddev on columns */ +export type Wasm_Params_Stddev_Fields = { + __typename?: 'wasm_params_stddev_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Wasm_Params_Stddev_Pop_Fields = { + __typename?: 'wasm_params_stddev_pop_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Wasm_Params_Stddev_Samp_Fields = { + __typename?: 'wasm_params_stddev_samp_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** Streaming cursor of the table "wasm_params" */ +export type Wasm_Params_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Wasm_Params_Stream_Cursor_Value_Input; + /** cursor ordering */ + ordering?: InputMaybe; +}; + +/** Initial value of the column from where the streaming should start */ +export type Wasm_Params_Stream_Cursor_Value_Input = { + code_upload_access?: InputMaybe; + height?: InputMaybe; + instantiate_default_permission?: InputMaybe; + one_row_id?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Wasm_Params_Sum_Fields = { + __typename?: 'wasm_params_sum_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Wasm_Params_Var_Pop_Fields = { + __typename?: 'wasm_params_var_pop_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Wasm_Params_Var_Samp_Fields = { + __typename?: 'wasm_params_var_samp_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +/** aggregate variance on columns */ +export type Wasm_Params_Variance_Fields = { + __typename?: 'wasm_params_variance_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; +}; + +export type AccountCommissionQueryVariables = Exact<{ + validatorAddress: Scalars['String']; +}>; + + +export type AccountCommissionQuery = { bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', commission?: { __typename?: 'bdjuno_provider_ActionValidatorCommissionAmount', coins?: Array | null } | null } | null }; + +export type AccountWithdrawalAddressQueryVariables = Exact<{ + address: Scalars['String']; +}>; + + +export type AccountWithdrawalAddressQuery = { bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', withdrawalAddress: { __typename?: 'bdjuno_provider_ActionAddress', address: string } } | null }; + +export type AccountBalancesQueryVariables = Exact<{ + address: Scalars['String']; +}>; + + +export type AccountBalancesQuery = { bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', accountBalances?: { __typename?: 'bdjuno_provider_ActionBalance', coins?: Array | null } | null } | null }; + +export type AccountDelegationBalanceQueryVariables = Exact<{ + address: Scalars['String']; +}>; + + +export type AccountDelegationBalanceQuery = { bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', delegationBalance?: { __typename?: 'bdjuno_provider_ActionBalance', coins?: Array | null } | null } | null }; + +export type AccountUnbondingBalanceQueryVariables = Exact<{ + address: Scalars['String']; +}>; + + +export type AccountUnbondingBalanceQuery = { bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', unbondingBalance?: { __typename?: 'bdjuno_provider_ActionBalance', coins?: Array | null } | null } | null }; + +export type AccountDelegationRewardsQueryVariables = Exact<{ + address: Scalars['String']; +}>; + + +export type AccountDelegationRewardsQuery = { bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', delegationRewards?: Array<{ __typename?: 'bdjuno_provider_ActionDelegationReward', coins?: Array | null, validatorAddress: string } | null> | null } | null }; + +export type AccountDelegationsQueryVariables = Exact<{ + address: Scalars['String']; + offset?: InputMaybe; + limit?: InputMaybe; + pagination?: Scalars['Boolean']; +}>; + + +export type AccountDelegationsQuery = { bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', delegations?: { __typename?: 'bdjuno_provider_ActionDelegationResponse', delegations?: Array | null, pagination?: any | null } | null } | null }; + +export type AccountRedelegationsQueryVariables = Exact<{ + address: Scalars['String']; + offset?: InputMaybe; + limit?: InputMaybe; + pagination?: Scalars['Boolean']; +}>; + + +export type AccountRedelegationsQuery = { bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', redelegations?: { __typename?: 'bdjuno_provider_ActionRedelegationResponse', redelegations?: Array | null, pagination?: any | null } | null } | null }; + +export type AccountUndelegationsQueryVariables = Exact<{ + address: Scalars['String']; + offset?: InputMaybe; + limit?: InputMaybe; + pagination?: Scalars['Boolean']; +}>; + + +export type AccountUndelegationsQuery = { bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', undelegations?: { __typename?: 'bdjuno_provider_ActionUnbondingDelegationResponse', pagination?: any | null, undelegations?: Array | null } | null } | null }; + +export type ActiveValidatorCountQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ActiveValidatorCountQuery = { bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', activeTotal: { __typename?: 'bdjuno_provider_validator_status_aggregate', aggregate?: { __typename?: 'bdjuno_provider_validator_status_aggregate_fields', count: number } | null }, inactiveTotal: { __typename?: 'bdjuno_provider_validator_status_aggregate', aggregate?: { __typename?: 'bdjuno_provider_validator_status_aggregate_fields', count: number } | null }, total: { __typename?: 'bdjuno_provider_validator_status_aggregate', aggregate?: { __typename?: 'bdjuno_provider_validator_status_aggregate_fields', count: number } | null } } | null }; + +export type OnlineVotingPowerQueryVariables = Exact<{ [key: string]: never; }>; + + +export type OnlineVotingPowerQuery = { bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', activeTotal: { __typename?: 'bdjuno_provider_validator_status_aggregate', aggregate?: { __typename?: 'bdjuno_provider_validator_status_aggregate_fields', count: number } | null }, validatorVotingPowerAggregate: { __typename?: 'bdjuno_provider_validator_voting_power_aggregate', aggregate?: { __typename?: 'bdjuno_provider_validator_voting_power_aggregate_fields', sum?: { __typename?: 'bdjuno_provider_validator_voting_power_sum_fields', votingPower?: any | null } | null } | null }, stakingPool: Array<{ __typename?: 'bdjuno_provider_staking_pool', bonded: string }>, stakingParams: Array<{ __typename?: 'bdjuno_provider_staking_params', params: any }> } | null }; + +export type ParamsQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ParamsQuery = { slashingParams: Array<{ __typename?: 'slashing_params', params: any }>, wasmParams: Array<{ __typename?: 'wasm_params', instantiate_default_permission: number, code_upload_access: any }>, ccv_consumer_params: Array<{ __typename?: 'ccv_consumer_params', params: any }>, bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', distribution_params: Array<{ __typename?: 'bdjuno_provider_distribution_params', params: any }>, mint_params: Array<{ __typename?: 'bdjuno_provider_mint_params', params: any }>, gov_params: Array<{ __typename?: 'bdjuno_provider_gov_params', deposit_params: any, height: any, one_row_id: boolean, tally_params: any, voting_params: any }>, staking_params: Array<{ __typename?: 'bdjuno_provider_staking_params', params: any }> } | null }; + +export type LastHundredBlocksSubscriptionVariables = Exact<{ + address?: InputMaybe; +}>; + + +export type LastHundredBlocksSubscription = { block: Array<{ __typename?: 'block', height: any, ccv_validator?: { __typename?: 'ccv_validator', validator?: { __typename?: 'provider_validator', validatorInfo?: { __typename?: 'provider_validator_info', operatorAddress: string } | null } | null } | null, transactions: Array<{ __typename?: 'transaction', hash: string }>, precommits: Array<{ __typename?: 'pre_commit', validatorAddress: string }> }> }; + +export type ValidatorLastSeenListenerSubscriptionVariables = Exact<{ + address?: InputMaybe; +}>; + + +export type ValidatorLastSeenListenerSubscription = { preCommit: Array<{ __typename?: 'pre_commit', height: any, timestamp: any }> }; + +export type ValidatorDetailsQueryVariables = Exact<{ + address?: InputMaybe; +}>; + + +export type ValidatorDetailsQuery = { ccv_validator: Array<{ __typename?: 'ccv_validator', consumer_operator_address: string, consumer_self_delegate_address: string, ccv_validator_info?: { __typename?: 'provider_validator_info', validator: { __typename?: 'provider_validator', validatorDescriptions: Array<{ __typename?: 'provider_validator_description', details?: string | null, website?: string | null }>, validatorStatuses: Array<{ __typename?: 'provider_validator_status', status: number, jailed: boolean, height: any }>, validatorSigningInfos: Array<{ __typename?: 'provider_validator_signing_info', tombstoned: boolean, missedBlocksCounter: any }>, validatorInfo?: { __typename?: 'provider_validator_info', operatorAddress: string, selfDelegateAddress?: string | null, maxRate: string } | null, validatorCommissions: Array<{ __typename?: 'provider_validator_commission', commission: any }>, validatorVotingPowers: Array<{ __typename?: 'provider_validator_voting_power', height: any, votingPower: any }> } } | null }>, bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', stakingPool: Array<{ __typename?: 'bdjuno_provider_staking_pool', height: any, bonded: string }>, slashingParams: Array<{ __typename?: 'bdjuno_provider_slashing_params', params: any }> } | null }; + +export type ValidatorConsensusAddressesListQueryVariables = Exact<{ + address: Scalars['String']; +}>; + + +export type ValidatorConsensusAddressesListQuery = { ccv_validator: Array<{ __typename?: 'ccv_validator', consumer_consensus_address: string, consumer_operator_address: string, consumer_self_delegate_address: string, provider_consensus_address: string, provider_operator_address: string, provider_self_delegate_address: string, validator?: { __typename?: 'provider_validator', validator_commissions: Array<{ __typename?: 'provider_validator_commission', commission: any, validator_address: string }>, validator_descriptions: Array<{ __typename?: 'provider_validator_description', moniker?: string | null, avatar_url?: string | null, website?: string | null, details?: string | null }>, validator_info?: { __typename?: 'provider_validator_info', self_delegate_address?: string | null } | null } | null }> }; + +export type ValidatorProviderOperatorAddressesListQueryVariables = Exact<{ + address: Scalars['String']; +}>; + + +export type ValidatorProviderOperatorAddressesListQuery = { ccv_validator: Array<{ __typename?: 'ccv_validator', consumer_consensus_address: string, consumer_operator_address: string, consumer_self_delegate_address: string, provider_consensus_address: string, provider_operator_address: string, provider_self_delegate_address: string, validator?: { __typename?: 'provider_validator', validator_commissions: Array<{ __typename?: 'provider_validator_commission', commission: any, validator_address: string }>, validator_descriptions: Array<{ __typename?: 'provider_validator_description', moniker?: string | null }>, validator_info?: { __typename?: 'provider_validator_info', self_delegate_address?: string | null } | null } | null }> }; + +export type ValidatorDelegationsQueryVariables = Exact<{ + validatorAddress: Scalars['String']; + offset?: InputMaybe; + limit?: InputMaybe; + pagination?: Scalars['Boolean']; +}>; + + +export type ValidatorDelegationsQuery = { bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', delegations?: { __typename?: 'bdjuno_provider_ActionDelegationResponse', delegations?: Array | null, pagination?: any | null } | null } | null }; + +export type ValidatorRedelegationsQueryVariables = Exact<{ + validatorAddress: Scalars['String']; + offset?: InputMaybe; + limit?: InputMaybe; + pagination?: Scalars['Boolean']; +}>; + + +export type ValidatorRedelegationsQuery = { bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', redelegations?: { __typename?: 'bdjuno_provider_ActionRedelegationResponse', redelegations?: Array | null, pagination?: any | null } | null } | null }; + +export type ValidatorUndelegationsQueryVariables = Exact<{ + validatorAddress: Scalars['String']; + offset?: InputMaybe; + limit?: InputMaybe; + pagination?: Scalars['Boolean']; +}>; + + +export type ValidatorUndelegationsQuery = { bdjuno_provider?: { __typename?: 'bdjuno_providerquery_root', undelegations?: { __typename?: 'bdjuno_provider_ActionUnbondingDelegationResponse', pagination?: any | null, undelegations?: Array | null } | null } | null }; + +export type ValidatorsAddressListQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ValidatorsAddressListQuery = { ccv_validator: Array<{ __typename?: 'ccv_validator', validator?: { __typename?: 'provider_validator', validatorInfo?: { __typename?: 'provider_validator_info', operatorAddress: string, selfDelegateAddress?: string | null, consensusAddress: string } | null, validatorDescriptions: Array<{ __typename?: 'provider_validator_description', moniker?: string | null, identity?: string | null, avatarUrl?: string | null }> } | null }> }; + +export type ValidatorAddressesQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ValidatorAddressesQuery = { ccv_validator: Array<{ __typename?: 'ccv_validator', consumer_self_delegate_address: string, consumer_consensus_address: string, provider_self_delegate_address: string, provider_operator_address: string, validator?: { __typename?: 'provider_validator', validatorInfo?: { __typename?: 'provider_validator_info', operatorAddress: string, selfDelegateAddress?: string | null, consensusAddress: string, account?: { __typename?: 'provider_account', address: string } | null } | null, validatorDescriptions: Array<{ __typename?: 'provider_validator_description', moniker?: string | null, avatarUrl?: string | null }> } | null }> }; + + +export const AccountCommissionDocument = gql` + query AccountCommission($validatorAddress: String!) { + bdjuno_provider { + commission: action_validator_commission_amount(address: $validatorAddress) { + coins + } + } +} + `; + +/** + * __useAccountCommissionQuery__ + * + * To run a query within a React component, call `useAccountCommissionQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountCommissionQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountCommissionQuery({ + * variables: { + * validatorAddress: // value for 'validatorAddress' + * }, + * }); + */ +export function useAccountCommissionQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountCommissionDocument, options); + } +export function useAccountCommissionLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountCommissionDocument, options); + } +export type AccountCommissionQueryHookResult = ReturnType; +export type AccountCommissionLazyQueryHookResult = ReturnType; +export type AccountCommissionQueryResult = Apollo.QueryResult; +export const AccountWithdrawalAddressDocument = gql` + query AccountWithdrawalAddress($address: String!) { + bdjuno_provider { + withdrawalAddress: action_delegator_withdraw_address(address: $address) { + address + } + } +} + `; + +/** + * __useAccountWithdrawalAddressQuery__ + * + * To run a query within a React component, call `useAccountWithdrawalAddressQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountWithdrawalAddressQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountWithdrawalAddressQuery({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useAccountWithdrawalAddressQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountWithdrawalAddressDocument, options); + } +export function useAccountWithdrawalAddressLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountWithdrawalAddressDocument, options); + } +export type AccountWithdrawalAddressQueryHookResult = ReturnType; +export type AccountWithdrawalAddressLazyQueryHookResult = ReturnType; +export type AccountWithdrawalAddressQueryResult = Apollo.QueryResult; +export const AccountBalancesDocument = gql` + query AccountBalances($address: String!) { + bdjuno_provider { + accountBalances: action_account_balance(address: $address) { + coins + } + } +} + `; + +/** + * __useAccountBalancesQuery__ + * + * To run a query within a React component, call `useAccountBalancesQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountBalancesQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountBalancesQuery({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useAccountBalancesQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountBalancesDocument, options); + } +export function useAccountBalancesLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountBalancesDocument, options); + } +export type AccountBalancesQueryHookResult = ReturnType; +export type AccountBalancesLazyQueryHookResult = ReturnType; +export type AccountBalancesQueryResult = Apollo.QueryResult; +export const AccountDelegationBalanceDocument = gql` + query AccountDelegationBalance($address: String!) { + bdjuno_provider { + delegationBalance: action_delegation_total(address: $address) { + coins + } + } +} + `; + +/** + * __useAccountDelegationBalanceQuery__ + * + * To run a query within a React component, call `useAccountDelegationBalanceQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountDelegationBalanceQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountDelegationBalanceQuery({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useAccountDelegationBalanceQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountDelegationBalanceDocument, options); + } +export function useAccountDelegationBalanceLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountDelegationBalanceDocument, options); + } +export type AccountDelegationBalanceQueryHookResult = ReturnType; +export type AccountDelegationBalanceLazyQueryHookResult = ReturnType; +export type AccountDelegationBalanceQueryResult = Apollo.QueryResult; +export const AccountUnbondingBalanceDocument = gql` + query AccountUnbondingBalance($address: String!) { + bdjuno_provider { + unbondingBalance: action_unbonding_delegation_total(address: $address) { + coins + } + } +} + `; + +/** + * __useAccountUnbondingBalanceQuery__ + * + * To run a query within a React component, call `useAccountUnbondingBalanceQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountUnbondingBalanceQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountUnbondingBalanceQuery({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useAccountUnbondingBalanceQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountUnbondingBalanceDocument, options); + } +export function useAccountUnbondingBalanceLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountUnbondingBalanceDocument, options); + } +export type AccountUnbondingBalanceQueryHookResult = ReturnType; +export type AccountUnbondingBalanceLazyQueryHookResult = ReturnType; +export type AccountUnbondingBalanceQueryResult = Apollo.QueryResult; +export const AccountDelegationRewardsDocument = gql` + query AccountDelegationRewards($address: String!) { + bdjuno_provider { + delegationRewards: action_delegation_reward(address: $address) { + validatorAddress: validator_address + coins + } + } +} + `; + +/** + * __useAccountDelegationRewardsQuery__ + * + * To run a query within a React component, call `useAccountDelegationRewardsQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountDelegationRewardsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountDelegationRewardsQuery({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useAccountDelegationRewardsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountDelegationRewardsDocument, options); + } +export function useAccountDelegationRewardsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountDelegationRewardsDocument, options); + } +export type AccountDelegationRewardsQueryHookResult = ReturnType; +export type AccountDelegationRewardsLazyQueryHookResult = ReturnType; +export type AccountDelegationRewardsQueryResult = Apollo.QueryResult; +export const AccountDelegationsDocument = gql` + query AccountDelegations($address: String!, $offset: Int = 0, $limit: Int = 10, $pagination: Boolean! = true) { + bdjuno_provider { + delegations: action_delegation( + address: $address + limit: $limit + offset: $offset + count_total: $pagination + ) { + delegations + pagination + } + } +} + `; + +/** + * __useAccountDelegationsQuery__ + * + * To run a query within a React component, call `useAccountDelegationsQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountDelegationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountDelegationsQuery({ + * variables: { + * address: // value for 'address' + * offset: // value for 'offset' + * limit: // value for 'limit' + * pagination: // value for 'pagination' + * }, + * }); + */ +export function useAccountDelegationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountDelegationsDocument, options); + } +export function useAccountDelegationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountDelegationsDocument, options); + } +export type AccountDelegationsQueryHookResult = ReturnType; +export type AccountDelegationsLazyQueryHookResult = ReturnType; +export type AccountDelegationsQueryResult = Apollo.QueryResult; +export const AccountRedelegationsDocument = gql` + query AccountRedelegations($address: String!, $offset: Int = 0, $limit: Int = 10, $pagination: Boolean! = true) { + bdjuno_provider { + redelegations: action_redelegation( + address: $address + limit: $limit + offset: $offset + count_total: $pagination + ) { + redelegations + pagination + } + } +} + `; + +/** + * __useAccountRedelegationsQuery__ + * + * To run a query within a React component, call `useAccountRedelegationsQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountRedelegationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountRedelegationsQuery({ + * variables: { + * address: // value for 'address' + * offset: // value for 'offset' + * limit: // value for 'limit' + * pagination: // value for 'pagination' + * }, + * }); + */ +export function useAccountRedelegationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountRedelegationsDocument, options); + } +export function useAccountRedelegationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountRedelegationsDocument, options); + } +export type AccountRedelegationsQueryHookResult = ReturnType; +export type AccountRedelegationsLazyQueryHookResult = ReturnType; +export type AccountRedelegationsQueryResult = Apollo.QueryResult; +export const AccountUndelegationsDocument = gql` + query AccountUndelegations($address: String!, $offset: Int = 0, $limit: Int = 10, $pagination: Boolean! = true) { + bdjuno_provider { + undelegations: action_unbonding_delegation( + address: $address + limit: $limit + offset: $offset + count_total: $pagination + ) { + undelegations: unbonding_delegations + pagination + } + } +} + `; + +/** + * __useAccountUndelegationsQuery__ + * + * To run a query within a React component, call `useAccountUndelegationsQuery` and pass it any options that fit your needs. + * When your component renders, `useAccountUndelegationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAccountUndelegationsQuery({ + * variables: { + * address: // value for 'address' + * offset: // value for 'offset' + * limit: // value for 'limit' + * pagination: // value for 'pagination' + * }, + * }); + */ +export function useAccountUndelegationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AccountUndelegationsDocument, options); + } +export function useAccountUndelegationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AccountUndelegationsDocument, options); + } +export type AccountUndelegationsQueryHookResult = ReturnType; +export type AccountUndelegationsLazyQueryHookResult = ReturnType; +export type AccountUndelegationsQueryResult = Apollo.QueryResult; +export const ActiveValidatorCountDocument = gql` + query ActiveValidatorCount { + bdjuno_provider { + activeTotal: validator_status_aggregate(where: {status: {_eq: 3}}) { + aggregate { + count + } + } + inactiveTotal: validator_status_aggregate(where: {status: {_neq: 3}}) { + aggregate { + count + } + } + total: validator_status_aggregate { + aggregate { + count + } + } + } +} + `; + +/** + * __useActiveValidatorCountQuery__ + * + * To run a query within a React component, call `useActiveValidatorCountQuery` and pass it any options that fit your needs. + * When your component renders, `useActiveValidatorCountQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useActiveValidatorCountQuery({ + * variables: { + * }, + * }); + */ +export function useActiveValidatorCountQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ActiveValidatorCountDocument, options); + } +export function useActiveValidatorCountLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ActiveValidatorCountDocument, options); + } +export type ActiveValidatorCountQueryHookResult = ReturnType; +export type ActiveValidatorCountLazyQueryHookResult = ReturnType; +export type ActiveValidatorCountQueryResult = Apollo.QueryResult; +export const OnlineVotingPowerDocument = gql` + query OnlineVotingPower { + bdjuno_provider { + activeTotal: validator_status_aggregate(where: {status: {_eq: 3}}) { + aggregate { + count + } + } + validatorVotingPowerAggregate: validator_voting_power_aggregate( + where: {validator: {validator_statuses: {status: {_eq: 3}}}} + ) { + aggregate { + sum { + votingPower: voting_power + } + } + } + stakingPool: staking_pool(order_by: {height: desc}, limit: 1) { + bonded: bonded_tokens + } + stakingParams: staking_params(limit: 1) { + params + } + } +} + `; + +/** + * __useOnlineVotingPowerQuery__ + * + * To run a query within a React component, call `useOnlineVotingPowerQuery` and pass it any options that fit your needs. + * When your component renders, `useOnlineVotingPowerQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useOnlineVotingPowerQuery({ + * variables: { + * }, + * }); + */ +export function useOnlineVotingPowerQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(OnlineVotingPowerDocument, options); + } +export function useOnlineVotingPowerLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(OnlineVotingPowerDocument, options); + } +export type OnlineVotingPowerQueryHookResult = ReturnType; +export type OnlineVotingPowerLazyQueryHookResult = ReturnType; +export type OnlineVotingPowerQueryResult = Apollo.QueryResult; +export const ParamsDocument = gql` + query Params { + slashingParams: slashing_params(limit: 1, order_by: {height: desc}) { + params + } + wasmParams: wasm_params(limit: 1, order_by: {height: desc}) { + instantiate_default_permission + code_upload_access + } + ccv_consumer_params { + params + } + bdjuno_provider { + distribution_params { + params + } + mint_params { + params + } + gov_params { + deposit_params + height + one_row_id + tally_params + voting_params + } + staking_params { + params + } + } +} + `; + +/** + * __useParamsQuery__ + * + * To run a query within a React component, call `useParamsQuery` and pass it any options that fit your needs. + * When your component renders, `useParamsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useParamsQuery({ + * variables: { + * }, + * }); + */ +export function useParamsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ParamsDocument, options); + } +export function useParamsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ParamsDocument, options); + } +export type ParamsQueryHookResult = ReturnType; +export type ParamsLazyQueryHookResult = ReturnType; +export type ParamsQueryResult = Apollo.QueryResult; +export const LastHundredBlocksDocument = gql` + subscription LastHundredBlocks($address: String) { + block(offset: 1, order_by: {height: desc}, limit: 100) { + height + ccv_validator { + validator { + validatorInfo: validator_info { + operatorAddress: operator_address + } + } + } + transactions { + hash + } + precommits: pre_commits(where: {validator_address: {_eq: $address}}) { + validatorAddress: validator_address + } + } +} + `; + +/** + * __useLastHundredBlocksSubscription__ + * + * To run a query within a React component, call `useLastHundredBlocksSubscription` and pass it any options that fit your needs. + * When your component renders, `useLastHundredBlocksSubscription` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the subscription, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useLastHundredBlocksSubscription({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useLastHundredBlocksSubscription(baseOptions?: Apollo.SubscriptionHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useSubscription(LastHundredBlocksDocument, options); + } +export type LastHundredBlocksSubscriptionHookResult = ReturnType; +export type LastHundredBlocksSubscriptionResult = Apollo.SubscriptionResult; +export const ValidatorLastSeenListenerDocument = gql` + subscription ValidatorLastSeenListener($address: String) { + preCommit: pre_commit( + limit: 1 + where: {validator_address: {_eq: $address}} + order_by: {height: desc} + ) { + height + timestamp + } +} + `; + +/** + * __useValidatorLastSeenListenerSubscription__ + * + * To run a query within a React component, call `useValidatorLastSeenListenerSubscription` and pass it any options that fit your needs. + * When your component renders, `useValidatorLastSeenListenerSubscription` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the subscription, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorLastSeenListenerSubscription({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useValidatorLastSeenListenerSubscription(baseOptions?: Apollo.SubscriptionHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useSubscription(ValidatorLastSeenListenerDocument, options); + } +export type ValidatorLastSeenListenerSubscriptionHookResult = ReturnType; +export type ValidatorLastSeenListenerSubscriptionResult = Apollo.SubscriptionResult; +export const ValidatorDetailsDocument = gql` + query ValidatorDetails($address: String) { + ccv_validator(where: {consumer_operator_address: {_eq: $address}}) { + consumer_operator_address + consumer_self_delegate_address + ccv_validator_info { + validator { + validatorDescriptions: validator_descriptions( + order_by: {height: desc} + limit: 1 + ) { + details + website + } + validatorStatuses: validator_statuses(order_by: {height: desc}, limit: 1) { + status + jailed + height + } + validatorSigningInfos: validator_signing_infos( + order_by: {height: desc} + limit: 1 + ) { + missedBlocksCounter: missed_blocks_counter + tombstoned + } + validatorInfo: validator_info { + operatorAddress: operator_address + selfDelegateAddress: self_delegate_address + maxRate: max_rate + } + validatorCommissions: validator_commissions(order_by: {height: desc}, limit: 1) { + commission + } + validatorVotingPowers: validator_voting_powers( + offset: 0 + limit: 1 + order_by: {height: desc} + ) { + height + votingPower: voting_power + } + } + } + } + bdjuno_provider { + stakingPool: staking_pool(order_by: {height: desc}, limit: 1, offset: 0) { + height + bonded: bonded_tokens + } + slashingParams: slashing_params(order_by: {height: desc}, limit: 1) { + params + } + } +} + `; + +/** + * __useValidatorDetailsQuery__ + * + * To run a query within a React component, call `useValidatorDetailsQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorDetailsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorDetailsQuery({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useValidatorDetailsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorDetailsDocument, options); + } +export function useValidatorDetailsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorDetailsDocument, options); + } +export type ValidatorDetailsQueryHookResult = ReturnType; +export type ValidatorDetailsLazyQueryHookResult = ReturnType; +export type ValidatorDetailsQueryResult = Apollo.QueryResult; +export const ValidatorConsensusAddressesListDocument = gql` + query ValidatorConsensusAddressesList($address: String!) { + ccv_validator(where: {consumer_consensus_address: {_eq: $address}}) { + consumer_consensus_address + consumer_operator_address + consumer_self_delegate_address + provider_consensus_address + provider_operator_address + provider_self_delegate_address + validator { + validator_commissions { + commission + validator_address + } + validator_descriptions { + moniker + avatar_url + website + details + } + validator_info { + self_delegate_address + } + } + } +} + `; + +/** + * __useValidatorConsensusAddressesListQuery__ + * + * To run a query within a React component, call `useValidatorConsensusAddressesListQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorConsensusAddressesListQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorConsensusAddressesListQuery({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useValidatorConsensusAddressesListQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorConsensusAddressesListDocument, options); + } +export function useValidatorConsensusAddressesListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorConsensusAddressesListDocument, options); + } +export type ValidatorConsensusAddressesListQueryHookResult = ReturnType; +export type ValidatorConsensusAddressesListLazyQueryHookResult = ReturnType; +export type ValidatorConsensusAddressesListQueryResult = Apollo.QueryResult; +export const ValidatorProviderOperatorAddressesListDocument = gql` + query ValidatorProviderOperatorAddressesList($address: String!) { + ccv_validator(where: {provider_operator_address: {_eq: $address}}) { + consumer_consensus_address + consumer_operator_address + consumer_self_delegate_address + provider_consensus_address + provider_operator_address + provider_self_delegate_address + validator { + validator_commissions { + commission + validator_address + } + validator_descriptions { + moniker + } + validator_info { + self_delegate_address + } + } + } +} + `; + +/** + * __useValidatorProviderOperatorAddressesListQuery__ + * + * To run a query within a React component, call `useValidatorProviderOperatorAddressesListQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorProviderOperatorAddressesListQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorProviderOperatorAddressesListQuery({ + * variables: { + * address: // value for 'address' + * }, + * }); + */ +export function useValidatorProviderOperatorAddressesListQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorProviderOperatorAddressesListDocument, options); + } +export function useValidatorProviderOperatorAddressesListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorProviderOperatorAddressesListDocument, options); + } +export type ValidatorProviderOperatorAddressesListQueryHookResult = ReturnType; +export type ValidatorProviderOperatorAddressesListLazyQueryHookResult = ReturnType; +export type ValidatorProviderOperatorAddressesListQueryResult = Apollo.QueryResult; +export const ValidatorDelegationsDocument = gql` + query ValidatorDelegations($validatorAddress: String!, $offset: Int = 0, $limit: Int = 10, $pagination: Boolean! = true) { + bdjuno_provider { + delegations: action_validator_delegations( + address: $validatorAddress + limit: $limit + offset: $offset + count_total: $pagination + ) { + delegations + pagination + } + } +} + `; + +/** + * __useValidatorDelegationsQuery__ + * + * To run a query within a React component, call `useValidatorDelegationsQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorDelegationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorDelegationsQuery({ + * variables: { + * validatorAddress: // value for 'validatorAddress' + * offset: // value for 'offset' + * limit: // value for 'limit' + * pagination: // value for 'pagination' + * }, + * }); + */ +export function useValidatorDelegationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorDelegationsDocument, options); + } +export function useValidatorDelegationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorDelegationsDocument, options); + } +export type ValidatorDelegationsQueryHookResult = ReturnType; +export type ValidatorDelegationsLazyQueryHookResult = ReturnType; +export type ValidatorDelegationsQueryResult = Apollo.QueryResult; +export const ValidatorRedelegationsDocument = gql` + query ValidatorRedelegations($validatorAddress: String!, $offset: Int = 0, $limit: Int = 10, $pagination: Boolean! = true) { + bdjuno_provider { + redelegations: action_validator_redelegations_from( + address: $validatorAddress + limit: $limit + offset: $offset + count_total: $pagination + ) { + redelegations + pagination + } + } +} + `; + +/** + * __useValidatorRedelegationsQuery__ + * + * To run a query within a React component, call `useValidatorRedelegationsQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorRedelegationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorRedelegationsQuery({ + * variables: { + * validatorAddress: // value for 'validatorAddress' + * offset: // value for 'offset' + * limit: // value for 'limit' + * pagination: // value for 'pagination' + * }, + * }); + */ +export function useValidatorRedelegationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorRedelegationsDocument, options); + } +export function useValidatorRedelegationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorRedelegationsDocument, options); + } +export type ValidatorRedelegationsQueryHookResult = ReturnType; +export type ValidatorRedelegationsLazyQueryHookResult = ReturnType; +export type ValidatorRedelegationsQueryResult = Apollo.QueryResult; +export const ValidatorUndelegationsDocument = gql` + query ValidatorUndelegations($validatorAddress: String!, $offset: Int = 0, $limit: Int = 10, $pagination: Boolean! = true) { + bdjuno_provider { + undelegations: action_validator_unbonding_delegations( + address: $validatorAddress + limit: $limit + offset: $offset + count_total: $pagination + ) { + undelegations: unbonding_delegations + pagination + } + } +} + `; + +/** + * __useValidatorUndelegationsQuery__ + * + * To run a query within a React component, call `useValidatorUndelegationsQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorUndelegationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorUndelegationsQuery({ + * variables: { + * validatorAddress: // value for 'validatorAddress' + * offset: // value for 'offset' + * limit: // value for 'limit' + * pagination: // value for 'pagination' + * }, + * }); + */ +export function useValidatorUndelegationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorUndelegationsDocument, options); + } +export function useValidatorUndelegationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorUndelegationsDocument, options); + } +export type ValidatorUndelegationsQueryHookResult = ReturnType; +export type ValidatorUndelegationsLazyQueryHookResult = ReturnType; +export type ValidatorUndelegationsQueryResult = Apollo.QueryResult; +export const ValidatorsAddressListDocument = gql` + query ValidatorsAddressList { + ccv_validator { + validator { + validatorInfo: validator_info { + operatorAddress: operator_address + selfDelegateAddress: self_delegate_address + consensusAddress: consensus_address + } + validatorDescriptions: validator_descriptions( + limit: 1 + order_by: {height: desc} + ) { + moniker + identity + avatarUrl: avatar_url + } + } + } +} + `; + +/** + * __useValidatorsAddressListQuery__ + * + * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorsAddressListQuery({ + * variables: { + * }, + * }); + */ +export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorsAddressListDocument, options); + } +export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); + } +export type ValidatorsAddressListQueryHookResult = ReturnType; +export type ValidatorsAddressListLazyQueryHookResult = ReturnType; +export type ValidatorsAddressListQueryResult = Apollo.QueryResult; +export const ValidatorAddressesDocument = gql` + query ValidatorAddresses { + ccv_validator( + where: {consumer_consensus_address: {_is_null: false}, provider_consensus_address: {_is_null: false}} + ) { + consumer_self_delegate_address + consumer_consensus_address + provider_self_delegate_address + provider_operator_address + validator { + validatorInfo: validator_info { + operatorAddress: operator_address + selfDelegateAddress: self_delegate_address + consensusAddress: consensus_address + account { + address + } + } + validatorDescriptions: validator_descriptions( + limit: 1 + order_by: {height: desc} + ) { + moniker + avatarUrl: avatar_url + } + } + } +} + `; + +/** + * __useValidatorAddressesQuery__ + * + * To run a query within a React component, call `useValidatorAddressesQuery` and pass it any options that fit your needs. + * When your component renders, `useValidatorAddressesQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useValidatorAddressesQuery({ + * variables: { + * }, + * }); + */ +export function useValidatorAddressesQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ValidatorAddressesDocument, options); + } +export function useValidatorAddressesLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ValidatorAddressesDocument, options); + } +export type ValidatorAddressesQueryHookResult = ReturnType; +export type ValidatorAddressesLazyQueryHookResult = ReturnType; +export type ValidatorAddressesQueryResult = Apollo.QueryResult; \ No newline at end of file diff --git a/apps/web-neutron/src/hooks/useConsumerCustomValidator/index.ts b/apps/web-neutron/src/hooks/useConsumerCustomValidator/index.ts new file mode 100644 index 0000000000..e446f6715e --- /dev/null +++ b/apps/web-neutron/src/hooks/useConsumerCustomValidator/index.ts @@ -0,0 +1,63 @@ +import { useEffect, useState } from 'react'; +import { useRecoilCallback } from 'recoil'; +import * as R from 'ramda'; +import { writeProfile } from '@/recoil/profiles/selectors'; +import { useConsumerCustomValidatorQuery } from '@/graphql/types/general_types'; + +type Profile = { + name: string; + address: string; + imageUrl: string; + bio: string; + website: string; +}; + +interface consumerAddressProfileResult { + profile: Profile | undefined; + loading: boolean; +} + +/** + * Accepts consumerAddress address and returns the appropriate profile + * @param validator - the consumer operator address of the validator + * @returns The return value is an object with the following properties: + * name, address, imageUrl + */ +const useConsumerCustomValidator = (validator: string): consumerAddressProfileResult => { + const { data, loading } = useConsumerCustomValidatorQuery({ + variables: { consumerAddress: validator }, + }); + const [profile, setProfile] = useState(); + const setAvatarName = useRecoilCallback( + ({ set }) => + (address: string, avatarName: AvatarName | null) => + set(writeProfile(address), (prevState) => + R.equals(prevState, avatarName) ? prevState : avatarName + ), + [] + ); + useEffect(() => { + if (data && data?.ccv_validator?.length > 0) { + const validatorDescription = + data?.ccv_validator[0]?.ccv_validator_info?.validator?.validatorDescriptions[0]; + const name = validatorDescription?.moniker ?? ''; + const imageUrl = validatorDescription?.avatar_url ?? ''; + const bio = validatorDescription?.details ?? ''; + const website = validatorDescription?.website ?? ''; + const address = validator; + const res: Profile = { + name, + address, + imageUrl, + bio, + website, + }; + setProfile(res); + setAvatarName(address, res); + } + }, [data, loading, setAvatarName, validator]); + + return { profile, loading }; +}; + +export default useConsumerCustomValidator; diff --git a/apps/web-neutron/src/hooks/useProviderCustomValidator/index.ts b/apps/web-neutron/src/hooks/useProviderCustomValidator/index.ts new file mode 100644 index 0000000000..663f3bd8ab --- /dev/null +++ b/apps/web-neutron/src/hooks/useProviderCustomValidator/index.ts @@ -0,0 +1,63 @@ +import { useEffect, useState } from 'react'; +import { useRecoilCallback } from 'recoil'; +import * as R from 'ramda'; +import { writeProfile } from '@/recoil/profiles/selectors'; +import { useProviderCustomValidatorQuery } from '@/graphql/types/general_types'; + +type Profile = { + name: string; + address: string; + imageUrl: string; + bio: string; + website: string; +}; + +interface providerAddressProfileResult { + profile: Profile | undefined; + loading: boolean; +} + +/** + * Accepts provider operator address and returns the appropriate profile + * @param validator - the provider operator address of the validator + * @returns The return value is an object with the following properties: + * name, address, imageUrl + */ +const useProviderCustomValidator = (validator: string): providerAddressProfileResult => { + const { data, loading } = useProviderCustomValidatorQuery({ + variables: { providerAddress: validator }, + }); + const [profile, setProfile] = useState(); + const setAvatarName = useRecoilCallback( + ({ set }) => + (address: string, avatarName: AvatarName | null) => + set(writeProfile(address), (prevState) => + R.equals(prevState, avatarName) ? prevState : avatarName + ), + [] + ); + useEffect(() => { + if (data && data.ccv_validator.length > 0) { + const validatorDescription = + data.ccv_validator[0].ccv_validator_info?.validator.validatorDescriptions[0]; + const name = validatorDescription?.moniker ?? ''; + const imageUrl = validatorDescription?.avatar_url ?? ''; + const bio = validatorDescription?.details ?? ''; + const website = validatorDescription?.website ?? ''; + const address = data?.ccv_validator[0]?.consumer_operator_address; + const res: Profile = { + name, + address, + imageUrl, + bio, + website, + }; + setProfile(res); + setAvatarName(address, res); + } + }, [data, loading, setAvatarName, validator]); + + return { profile, loading }; +}; + +export default useProviderCustomValidator; diff --git a/apps/web-neutron/src/hooks/useValidatorConsensusAddressesList/index.ts b/apps/web-neutron/src/hooks/useValidatorConsensusAddressesList/index.ts new file mode 100644 index 0000000000..8a98f74537 --- /dev/null +++ b/apps/web-neutron/src/hooks/useValidatorConsensusAddressesList/index.ts @@ -0,0 +1,60 @@ +import { useEffect, useState } from 'react'; +import { useRecoilCallback } from 'recoil'; +import * as R from 'ramda'; +import { writeProfile } from '@/recoil/profiles/selectors'; +import { useValidatorConsensusAddressesListQuery } from '@/graphql/types/provider_types'; + +type Profile = { + name: string; + address: string; + imageUrl: string; + bio: string; + website: string; +}; + +interface providerAddressProfileResult { + profile: Profile | undefined; + loading: boolean; +} + +/** + * Accepts validator consensus address and returns the appropriate profile + * @param validator - the consumer consensus address of the validator + * @returns The return value is an object with the following properties: + * name, address, imageUrl + */ +const useValidatorConsensusAddressesList = (validator: string): providerAddressProfileResult => { + const { data, loading } = useValidatorConsensusAddressesListQuery({ + variables: { address: validator }, + }); + const [profile, setProfile] = useState(); + const setAvatarName = useRecoilCallback( + ({ set }) => (address: string, avatarName: AvatarName | null) => + set(writeProfile(address), prevState => + R.equals(prevState, avatarName) ? prevState : avatarName + ), + [] + ); + useEffect(() => { + if (data && data?.ccv_validator?.length > 0) { + const validatorDescription = data?.ccv_validator[0]?.validator?.validator_descriptions[0]; + const name = validatorDescription?.moniker ?? ''; + const imageUrl = validatorDescription?.avatar_url ?? ''; + const bio = validatorDescription?.details ?? ''; + const website = validatorDescription?.website ?? ''; + const address = data.ccv_validator[0]?.consumer_operator_address; + const res: Profile = { + name, + address, + imageUrl, + bio, + website, + }; + setProfile(res); + setAvatarName(address, res); + } + }, [data, loading, setAvatarName, validator]); + return { profile, loading }; +}; + +export default useValidatorConsensusAddressesList; diff --git a/apps/web-neutron/src/models/ccv_consumer_params/index.tsx b/apps/web-neutron/src/models/ccv_consumer_params/index.tsx new file mode 100644 index 0000000000..391d2d30c1 --- /dev/null +++ b/apps/web-neutron/src/models/ccv_consumer_params/index.tsx @@ -0,0 +1,27 @@ +import * as R from 'ramda'; + +type CCVConsumerParamsPayload = { + enabled: boolean; + unbondingPeriod: number; + ccvTimeoutPeriod: number; + historicalEntries: number; + softOptOutThreshold: string; + transferTimeoutPeriod: number; + consumerRedistributionFraction: string; + blocksPerDistributionTransmission: number; +}; + +function CCVConsumerParams(payload?: CCVConsumerParamsPayload) { + return { + enabled: R.pathOr(false, ['enabled'], payload), + unbondingPeriod: R.pathOr(0, ['unbonding_period'], payload), + ccvTimeoutPeriod: R.pathOr(0, ['ccv_timeout_period'], payload), + historicalEntries: R.pathOr(0, ['historical_entries'], payload), + softOptOutThreshold: R.pathOr('0', ['soft_opt_out_threshold'], payload), + transferTimeoutPeriod: R.pathOr(0, ['transfer_timeout_period'], payload), + consumerRedistributionFraction: R.pathOr('0', ['consumer_redistribution_fraction'], payload), + blocksPerDistributionTransmission: R.pathOr(0, ['blocks_per_distribution_transmission'], payload), + }; +} + +export default CCVConsumerParams; diff --git a/apps/web-neutron/src/pages/404.tsx b/apps/web-neutron/src/pages/404.tsx new file mode 100644 index 0000000000..76cf2cc94d --- /dev/null +++ b/apps/web-neutron/src/pages/404.tsx @@ -0,0 +1,10 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import NotFound from '@/screens/404'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../next-i18next.config'; + +const Custom404: NextPage = () => ; + +export const getStaticProps = withGetStaticProps(nextI18NextConfig); + +export default Custom404; diff --git a/apps/web-neutron/src/pages/[dtag].tsx b/apps/web-neutron/src/pages/[dtag].tsx new file mode 100644 index 0000000000..cb8769bdd0 --- /dev/null +++ b/apps/web-neutron/src/pages/[dtag].tsx @@ -0,0 +1,11 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import ProfileDetails from '@/screens/profile_details'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../next-i18next.config'; + +const ProfileDetailsPage: NextPage = () => ; + +export const getStaticPaths = () => ({ paths: [], fallback: 'blocking' }); +export const getStaticProps = withGetStaticProps(nextI18NextConfig, 'profiles', 'accounts'); + +export default ProfileDetailsPage; diff --git a/apps/web-neutron/src/pages/_app.tsx b/apps/web-neutron/src/pages/_app.tsx new file mode 100644 index 0000000000..254596e760 --- /dev/null +++ b/apps/web-neutron/src/pages/_app.tsx @@ -0,0 +1,7 @@ +import MyApp from '@/screens/app'; +import { appWithTranslation } from 'next-i18next'; +import 'react-toastify/dist/ReactToastify.css'; +import 'shared-utils/assets/styles/global.css'; +import nextI18NextConfig from '../../next-i18next.config'; + +export default appWithTranslation(MyApp, nextI18NextConfig); diff --git a/apps/web-neutron/src/pages/_document.tsx b/apps/web-neutron/src/pages/_document.tsx new file mode 100644 index 0000000000..174b41f650 --- /dev/null +++ b/apps/web-neutron/src/pages/_document.tsx @@ -0,0 +1,12 @@ +import Document from 'next/document'; +import DocumentComponent, { getInitialProps, DocumentComponentProps } from 'ui/pages/_document'; + +class MyDocument extends Document { + render() { + return ; + } +} + +MyDocument.getInitialProps = getInitialProps; + +export default MyDocument; diff --git a/apps/web-neutron/src/pages/_error.tsx b/apps/web-neutron/src/pages/_error.tsx new file mode 100644 index 0000000000..2cac4132ab --- /dev/null +++ b/apps/web-neutron/src/pages/_error.tsx @@ -0,0 +1,8 @@ +import type { NextPage } from 'next'; +import ErrorPage, { getInitialProps } from 'ui/pages/_error'; + +const MyError: NextPage = () => ; + +MyError.getInitialProps = getInitialProps; + +export default MyError; diff --git a/apps/web-neutron/src/pages/accounts/[address].tsx b/apps/web-neutron/src/pages/accounts/[address].tsx new file mode 100644 index 0000000000..bf63138222 --- /dev/null +++ b/apps/web-neutron/src/pages/accounts/[address].tsx @@ -0,0 +1,18 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import AccountDetails from '@/screens/account_details'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const AccountDetailsPage: NextPage = () => ; + +export const getStaticPaths = () => ({ paths: [], fallback: 'blocking' }); +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'accounts', + 'transactions', + 'validators', + 'message_labels', + 'message_contents' +); + +export default AccountDetailsPage; diff --git a/apps/web-neutron/src/pages/blocks/[height].tsx b/apps/web-neutron/src/pages/blocks/[height].tsx new file mode 100644 index 0000000000..3a090fc163 --- /dev/null +++ b/apps/web-neutron/src/pages/blocks/[height].tsx @@ -0,0 +1,17 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import BlockDetails from '@/screens/block_details'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const BlockDetailsPage: NextPage = () => ; + +export const getStaticPaths = () => ({ paths: [], fallback: 'blocking' }); +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'blocks', + 'transactions', + 'message_labels', + 'message_contents' +); + +export default BlockDetailsPage; diff --git a/apps/web-neutron/src/pages/blocks/index.tsx b/apps/web-neutron/src/pages/blocks/index.tsx new file mode 100644 index 0000000000..a25a08f025 --- /dev/null +++ b/apps/web-neutron/src/pages/blocks/index.tsx @@ -0,0 +1,16 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import Blocks from '@/screens/blocks'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const BlocksPage: NextPage = () => ; + +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'blocks', + 'transactions', + 'message_labels', + 'message_contents' +); + +export default BlocksPage; diff --git a/apps/web-neutron/src/pages/index.tsx b/apps/web-neutron/src/pages/index.tsx new file mode 100644 index 0000000000..0e20acaf4b --- /dev/null +++ b/apps/web-neutron/src/pages/index.tsx @@ -0,0 +1,15 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import Home from '@/screens/home'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../next-i18next.config'; + +const HomePage: NextPage = () => ; + +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'home', + 'blocks', + 'transactions' +); + +export default HomePage; diff --git a/apps/web-neutron/src/pages/params/index.tsx b/apps/web-neutron/src/pages/params/index.tsx new file mode 100644 index 0000000000..36c5df67e5 --- /dev/null +++ b/apps/web-neutron/src/pages/params/index.tsx @@ -0,0 +1,10 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import Params from '@/screens/params'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const ParamsPage: NextPage = () => ; + +export const getStaticProps = withGetStaticProps(nextI18NextConfig, 'params'); + +export default ParamsPage; diff --git a/apps/web-neutron/src/pages/server-sitemap.xml/index.tsx b/apps/web-neutron/src/pages/server-sitemap.xml/index.tsx new file mode 100644 index 0000000000..9d27abd6ad --- /dev/null +++ b/apps/web-neutron/src/pages/server-sitemap.xml/index.tsx @@ -0,0 +1,8 @@ +import ServerSitemap, { getServerSideProps } from 'ui/pages/server-sitemap.xml'; + +// This function is called by Next.js before rendering the page. It returns +// a list of URLs that should be included in the sitemap. +export { getServerSideProps }; + +// Next.js calls this function to render the page. +export default ServerSitemap; diff --git a/apps/web-neutron/src/pages/transactions/[tx].tsx b/apps/web-neutron/src/pages/transactions/[tx].tsx new file mode 100644 index 0000000000..500faa8fa1 --- /dev/null +++ b/apps/web-neutron/src/pages/transactions/[tx].tsx @@ -0,0 +1,16 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import type { NextPage } from 'next'; +import TransactionDetails from '@/screens/transaction_details'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const TransactionDetailsPage: NextPage = () => ; + +export const getStaticPaths = () => ({ paths: [], fallback: 'blocking' }); +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'transactions', + 'message_labels', + 'message_contents' +); + +export default TransactionDetailsPage; diff --git a/apps/web-neutron/src/pages/transactions/index.tsx b/apps/web-neutron/src/pages/transactions/index.tsx new file mode 100644 index 0000000000..a54a156581 --- /dev/null +++ b/apps/web-neutron/src/pages/transactions/index.tsx @@ -0,0 +1,15 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import Transactions from '@/screens/transactions'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const TransactionsPage: NextPage = () => ; + +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'transactions', + 'message_labels', + 'message_contents' +); + +export default TransactionsPage; diff --git a/apps/web-neutron/src/pages/validators/[address].tsx b/apps/web-neutron/src/pages/validators/[address].tsx new file mode 100644 index 0000000000..657b818c10 --- /dev/null +++ b/apps/web-neutron/src/pages/validators/[address].tsx @@ -0,0 +1,18 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import ValidatorDetails from '@/screens/validator_details'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const ValidatorDetailsPage: NextPage = () => ; + +export const getStaticPaths = () => ({ paths: [], fallback: 'blocking' }); +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'validators', + 'transactions', + 'accounts', + 'message_labels', + 'message_contents' +); + +export default ValidatorDetailsPage; diff --git a/apps/web-neutron/src/pages/validators/index.tsx b/apps/web-neutron/src/pages/validators/index.tsx new file mode 100644 index 0000000000..7ce3ee119a --- /dev/null +++ b/apps/web-neutron/src/pages/validators/index.tsx @@ -0,0 +1,17 @@ +import withGetStaticProps from '@/pages/withGetStaticProps'; +import Validators from '@/screens/validators'; +import type { NextPage } from 'next'; +import nextI18NextConfig from '../../../next-i18next.config'; + +const ValidatorsPage: NextPage = () => ; + +export const getStaticProps = withGetStaticProps( + nextI18NextConfig, + 'validators', + 'transactions', + 'accounts', + 'message_labels', + 'message_contents' +); + +export default ValidatorsPage; diff --git a/apps/web-neutron/src/recoil/market/hooks.ts b/apps/web-neutron/src/recoil/market/hooks.ts new file mode 100644 index 0000000000..497cec7151 --- /dev/null +++ b/apps/web-neutron/src/recoil/market/hooks.ts @@ -0,0 +1,90 @@ +import Big from 'big.js'; +import numeral from 'numeral'; +import { SetterOrUpdater, useRecoilState } from 'recoil'; +import chainConfig from '@/chainConfig'; +import { MarketDataQuery, useMarketDataQuery } from '@/graphql/types/general_types'; +import { writeMarket } from '@/recoil/market/selectors'; +import type { AtomState } from '@/recoil/market/types'; +import { formatToken } from '@/utils/format_token'; +import { getDenom } from '@/utils/get_denom'; + +const { primaryTokenUnit, tokenUnits } = chainConfig(); + +/** + * It takes a query hook and returns a Recoil state hook + */ +export function useMarketRecoil() { + const [market, setMarket] = useRecoilState(writeMarket) as [ + AtomState, + SetterOrUpdater + ]; + + useMarketDataQuery({ + variables: { + denom: tokenUnits?.[primaryTokenUnit]?.display, + }, + onCompleted: (data) => { + if (data) { + setMarket(formatUseChainIdQuery(data)); + } + }, + }); + + /** + * It takes in a data object and returns an object with the following properties: price, supply, + * marketCap, inflation, communityPool, and apr + * @param {MarketDataQuery} data - MarketDataQuery + * @returns return { + * price, + * supply, + * marketCap, + * inflation, + * communityPool, + * apr, + * }; + */ + function formatUseChainIdQuery(data: MarketDataQuery): AtomState { + // eslint-disable-next-line prefer-const + let { communityPool, price, marketCap } = market; + + if (data?.tokenPrice?.length) { + price = numeral(numeral(data?.tokenPrice[0]?.price).format('0.[00]', Math.floor)).value(); + marketCap = data.tokenPrice[0]?.marketCap; + } + + // const [communityPoolCoin] = ((data?.communityPool?.[0].coins as MsgCoin[]) ?? []).filter( + // (x) => x.denom === primaryTokenUnit + // ); + // const inflation = data?.inflation?.[0]?.value ?? 0; + const inflation = 0; + + /* Getting the supply amount and formatting it. */ + const rawSupplyAmount = getDenom(data?.supply?.[0]?.coins, primaryTokenUnit).amount; + const supply = formatToken(rawSupplyAmount, primaryTokenUnit); + + // if (communityPoolCoin) { + // communityPool = formatToken(communityPoolCoin.amount, communityPoolCoin.denom); + // } + + // const bondedTokens = Big(data?.bondedTokens?.[0]?.bonded_tokens || 0); + // const communityTax = Big(data?.distributionParams?.[0]?.params?.community_tax || 0); + const communityTax = 0; + + /* Calculating the APR. */ + // eslint-disable-next-line no-underscore-dangle + const _inflationWithCommunityTax = Big(1).minus(communityTax)?.times(inflation).toPrecision(2); + // const apr = !bondedTokens.eq(0) + // ? Big(rawSupplyAmount)?.times(inflationWithCommunityTax).div(bondedTokens).toNumber() + // : 0; + const apr = 0; + + return { + price, + supply, + marketCap, + inflation, + communityPool, + apr, + }; + } +} diff --git a/apps/web-neutron/src/recoil/validators/hooks.ts b/apps/web-neutron/src/recoil/validators/hooks.ts new file mode 100644 index 0000000000..0529eacb44 --- /dev/null +++ b/apps/web-neutron/src/recoil/validators/hooks.ts @@ -0,0 +1,59 @@ +import { useEffect } from 'react'; +import { useRecoilCallback } from 'recoil'; +import { AtomState as ValidatorAtomState } from 'ui/recoil/validators'; +import { atomFamilyState as profileAtomFamilyState } from '@/recoil/profiles/atom'; +import type { AtomState as ProfileAtomState } from '@/recoil/profiles/types'; +import { atomFamilyState as validatorAtomState } from '@/recoil/validators/atom'; +import { useValidatorAddressesQuery } from '@/graphql/types/provider_types'; + +export const useValidatorRecoil = () => { + const { loading: loadingValidator, data } = useValidatorAddressesQuery(); + const setValidatorAtomState = useRecoilCallback( + ({ set }) => + (consensusAddress: string, newState: ValidatorAtomState) => + set(validatorAtomState(consensusAddress), newState), + [] + ); + useEffect(() => { + if (!data?.ccv_validator) return; + const map = new Map( + data.ccv_validator + .filter((x) => x.validator?.validatorInfo?.consensusAddress) + .map((x) => [x.validator?.validatorInfo?.consensusAddress ?? '', x]) + ); + map.forEach((x, consensusAddress) => { + setValidatorAtomState(consensusAddress, { + delegator: x.validator?.validatorInfo?.selfDelegateAddress ?? '', + validator: x.validator?.validatorInfo?.consensusAddress ?? '', + }); + }); + }, [data, setValidatorAtomState]); + + const setProfileAtomFamilyState = useRecoilCallback( + ({ set }) => + (delegatorAddress: string, newState: ProfileAtomState) => + set( + profileAtomFamilyState(delegatorAddress), + (prevState: ProfileAtomState): ProfileAtomState => { + if (!prevState || prevState === true) return newState; + return prevState.moniker ? prevState : newState; + } + ), + [] + ); + + useEffect(() => { + data?.ccv_validator?.forEach((validator) => { + if (!validator.validator?.validatorInfo?.selfDelegateAddress) return; + + setProfileAtomFamilyState(validator.validator?.validatorInfo?.selfDelegateAddress, { + moniker: validator.validator?.validatorDescriptions?.[0]?.moniker || '', + imageUrl: validator.validator?.validatorDescriptions?.[0]?.avatarUrl || '', + }); + }); + }, [data?.ccv_validator, setProfileAtomFamilyState]); + + return { + loading: loadingValidator, + }; +}; diff --git a/apps/web-neutron/src/screens/account_details/components/staking/hooks.ts b/apps/web-neutron/src/screens/account_details/components/staking/hooks.ts new file mode 100644 index 0000000000..2cc9c1012f --- /dev/null +++ b/apps/web-neutron/src/screens/account_details/components/staking/hooks.ts @@ -0,0 +1,390 @@ +import Big from 'big.js'; +import { useRouter } from 'next/router'; +import numeral from 'numeral'; +import * as R from 'ramda'; +import { SyntheticEvent, useCallback, useEffect, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { useValidatorsQuery, ValidatorsQuery } from '@/graphql/types/general_types'; +import { + useAccountDelegationsQuery, + useAccountRedelegationsQuery, + useAccountUndelegationsQuery, + useValidatorAddressesQuery, + useValidatorConsensusAddressesListQuery, + useValidatorProviderOperatorAddressesListQuery, +} from '@/graphql/types/provider_types'; +import type { + DelegationType, + RedelegationType, + StakingState, +} from '@/screens/account_details/components/staking/types'; +import type { RewardsType } from '@/screens/account_details/types'; +import { ValidatorType } from '@/screens/validators/components/list/types'; +import { formatToken } from '@/utils/format_token'; +import { getDenom } from '@/utils/get_denom'; + +const { primaryTokenUnit, prefix } = chainConfig(); + +export const ROWS_PER_PAGE = 10; + +export const formatDelegations = ( + data: Array<{ + validator_address?: string; + coins?: MsgCoin[]; + }>, + validatorsCommission: Pick[], + rewards: RewardsType +) => + data + .map((x): DelegationType => { + const validator = x?.validator_address ?? ''; + const delegation = getDenom(x.coins, primaryTokenUnit); + return { + validator, + commission: + numeral( + validatorsCommission.find((val) => val.validator === validator)?.commission?.toFixed(3) + ).value() ?? 0, + amount: formatToken(delegation.amount, delegation.denom), + reward: rewards[validator], + }; + }) + .sort((a, b) => (Big(a.amount?.value).gt(b.amount?.value) ? -1 : 1)); + +export const formatRedelegations = ( + data: Array<{ + entries?: Array<{ balance: string | number; completion_time?: string }>; + validator_src_address?: string; + validator_dst_address?: string; + }> +) => { + const results: RedelegationType[] = []; + data.forEach((x) => { + x.entries?.forEach((y) => { + results.push({ + from: x?.validator_src_address ?? '', + to: x?.validator_dst_address ?? '', + amount: formatToken(y.balance, primaryTokenUnit), + completionTime: y?.completion_time ?? '', + }); + }); + }); + + results.sort((a, b) => (a.completionTime < b.completionTime ? -1 : 1)); + + return results; +}; + +export const formatUnbondings = ( + data: Array<{ + entries?: Array<{ balance: string | number; completion_time?: string }>; + validator_address?: string; + }> +) => { + const results: Array<{ validator: string; amount: TokenUnit; completionTime: string }> = []; + data.forEach((x) => { + x?.entries?.forEach((y) => { + results.push({ + validator: x?.validator_address ?? '', + amount: formatToken(y.balance, primaryTokenUnit), + completionTime: y?.completion_time ?? '', + }); + }); + }); + + results.sort((a, b) => (a.completionTime < b.completionTime ? -1 : 1)); + + return results; +}; + +export const useStaking = ( + rewards: RewardsType, + delegationsPage: number, + redelegationsPage: number, + unbondingsPage: number, + addressParam: string +) => { + const router = useRouter(); + const [state, setState] = useState({ + tab: 0, + }); + + const [validatorsCommission, setValidatorsCommission] = useState< + Pick[] + >([]); + + // ========================== + // Fetch Data + // ========================== + useValidatorsQuery({ + onCompleted: (data) => { + formatValidators(data); + }, + }); + + // return a list of all validators with their address and commission rate + const formatValidators = useCallback( + (data: ValidatorsQuery): { items: Pick[] } => { + const formattedItems: Pick[] = data.ccv_validator + .filter((x) => x.validator?.validatorInfo) + .map((x) => ({ + validator: x.validator?.validatorInfo?.operatorAddress ?? '', + commission: (x?.validator?.validatorCommissions?.[0]?.commission ?? 0) * 100, + })); + + setValidatorsCommission(formattedItems); + + return { + items: formattedItems, + }; + }, + [] + ); + + const { data: valAddressesInfo } = useValidatorAddressesQuery(); + + const address = + addressParam || + (Array.isArray(router?.query?.address) + ? router.query.address[0] + : router?.query?.address ?? ''); + + const [providerAddress, setProviderAddress] = useState(address); + + const { data: addresses } = useValidatorConsensusAddressesListQuery({ + variables: { address: providerAddress }, + }); + + const { data: cosmosvaloperAddresses } = useValidatorProviderOperatorAddressesListQuery({ + variables: { address: providerAddress }, + }); + + useEffect(() => { + let provider = ''; + if (valAddressesInfo?.ccv_validator) { + if (providerAddress.startsWith(prefix.consensus)) { + // const {data: addresses} = useValidatorConsensusAddressesListQuery(providerAddress); + if (addresses) { + // const { ccv_validator: { provider_self_delegate_address }} = addresses[0]; + provider = addresses.ccv_validator?.[0].provider_self_delegate_address; + } else { + provider = address; + } + setProviderAddress(provider); + } else if (providerAddress.startsWith(prefix.account)) { + const matchingValidator = valAddressesInfo.ccv_validator.find( + (x) => x.consumer_self_delegate_address === providerAddress + ); + if (matchingValidator) { + provider = matchingValidator.provider_self_delegate_address ?? ''; + } else { + provider = address; + } + setProviderAddress(provider); + } else if (providerAddress.startsWith('cosmosvaloper')) { + if (cosmosvaloperAddresses) { + provider = cosmosvaloperAddresses.ccv_validator?.[0].provider_self_delegate_address; + } + // const matchingValidator = valAddressesInfo.ccv_validator.find((x) => x.validator?.validatorInfo?.operatorAddress === providerAddress); + else { + provider = address; + } + setProviderAddress(provider); + } + } + }, [address, addresses, cosmosvaloperAddresses, providerAddress, valAddressesInfo]); + + // ===================================== + // delegations + // ===================================== + const { + data: delegationsData, + loading: delegationsLoading, + error: delegationsError, + refetch: delegationsRefetch, + } = useAccountDelegationsQuery({ + variables: { + address: providerAddress, + limit: ROWS_PER_PAGE, + offset: delegationsPage * ROWS_PER_PAGE, + }, + }); + useEffect(() => { + if (delegationsLoading) return; + if (delegationsError) { + delegationsRefetch({ pagination: false }); + } + }, [delegationsError, delegationsLoading, delegationsRefetch]); + useAccountDelegationsQuery({ + variables: { + address: providerAddress, + limit: ROWS_PER_PAGE, + offset: (delegationsPage + 1) * ROWS_PER_PAGE, + }, + }); + + const [delegationsPagination, setDelegationsPagination] = useState(); + const { + data: dData, + error: dError, + refetch: dRefetch, + } = useAccountDelegationsQuery({ + variables: { + address: providerAddress, + limit: 0, + offset: 0, + pagination: true, + }, + skip: delegationsPagination !== undefined, + }); + useEffect(() => { + if (dError) { + dRefetch(); + } else if (dData) { + setDelegationsPagination(dData?.bdjuno_provider?.delegations?.pagination?.total ?? 0); + } + }, [dData, dError, dRefetch]); + + // ===================================== + // redelegations + // ===================================== + const { + data: redelegationsData, + loading: redelegationsLoading, + error: redelegationsError, + refetch: redelegationsRefetch, + } = useAccountRedelegationsQuery({ + variables: { + address: providerAddress, + limit: ROWS_PER_PAGE, + offset: redelegationsPage * ROWS_PER_PAGE, + }, + }); + useEffect(() => { + if (redelegationsLoading) return; + if (redelegationsError) { + redelegationsRefetch({ pagination: false }); + } + }, [redelegationsError, redelegationsLoading, redelegationsRefetch]); + useAccountRedelegationsQuery({ + variables: { + address: providerAddress, + limit: ROWS_PER_PAGE, + offset: (redelegationsPage + 1) * ROWS_PER_PAGE, + }, + }); + + const [redelegationsPagination, setRedelegationsPagination] = useState(); + const { + data: rData, + error: rError, + refetch: rRefetch, + } = useAccountRedelegationsQuery({ + variables: { + address: providerAddress, + limit: 0, + offset: 0, + pagination: true, + }, + skip: redelegationsPagination !== undefined, + }); + useEffect(() => { + if (rError) { + rRefetch(); + } else if (rData) { + setRedelegationsPagination(rData?.bdjuno_provider?.redelegations?.pagination?.total ?? 0); + } + }, [rData, rError, rRefetch]); + + // ===================================== + // unbondings + // ===================================== + const { + data: undelegationsData, + loading: undelegationsLoading, + error: undelegationsError, + refetch: undelegationsRefetch, + } = useAccountUndelegationsQuery({ + variables: { + address: providerAddress, + limit: ROWS_PER_PAGE, + offset: unbondingsPage * ROWS_PER_PAGE, + }, + }); + useEffect(() => { + if (undelegationsLoading) return; + if (undelegationsError) { + undelegationsRefetch({ pagination: false }); + } + }, [undelegationsError, undelegationsLoading, undelegationsRefetch]); + useAccountUndelegationsQuery({ + variables: { + address: providerAddress, + limit: ROWS_PER_PAGE, + offset: (unbondingsPage + 1) * ROWS_PER_PAGE, + }, + }); + + const [undelegationsPagination, setUndelegationsPagination] = useState(); + const { + data: uData, + error: uError, + refetch: uRefetch, + } = useAccountUndelegationsQuery({ + variables: { + address: providerAddress, + limit: 0, + offset: 0, + pagination: true, + }, + skip: undelegationsPagination !== undefined, + }); + useEffect(() => { + if (uError) { + uRefetch(); + } else if (uData) { + setUndelegationsPagination(uData?.bdjuno_provider?.undelegations?.pagination?.total ?? 0); + } + }, [uData, uError, uRefetch]); + + const handleTabChange = useCallback( + (_event: SyntheticEvent, newValue: number) => { + setState((prevState) => { + const newState = { ...prevState, tab: newValue }; + return R.equals(prevState, newState) ? prevState : newState; + }); + }, + [] + ); + + return { + state, + delegations: { + loading: delegationsLoading, + count: delegationsPagination, + data: formatDelegations( + delegationsData?.bdjuno_provider?.delegations?.delegations ?? [], + validatorsCommission, + rewards + ), + error: delegationsError, + }, + redelegations: { + loading: redelegationsLoading, + count: redelegationsPagination, + data: formatRedelegations( + redelegationsData?.bdjuno_provider?.redelegations?.redelegations ?? [] + ), + error: redelegationsError, + }, + unbondings: { + loading: undelegationsLoading, + count: undelegationsPagination, + data: formatUnbondings( + undelegationsData?.bdjuno_provider?.undelegations?.undelegations ?? [] + ), + error: undelegationsError, + }, + handleTabChange, + }; +}; diff --git a/apps/web-neutron/src/screens/account_details/components/transactions/hooks.ts b/apps/web-neutron/src/screens/account_details/components/transactions/hooks.ts new file mode 100644 index 0000000000..4611993e98 --- /dev/null +++ b/apps/web-neutron/src/screens/account_details/components/transactions/hooks.ts @@ -0,0 +1,171 @@ +import { useRouter } from 'next/router'; +import * as R from 'ramda'; +import { useEffect, useRef, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { convertMsgsToModels } from '@/components/msg/utils'; +import { + GetMessagesByAddressQuery, + useGetMessagesByAddressQuery, +} from '@/graphql/types/general_types'; +import { + useValidatorAddressesQuery, + useValidatorConsensusAddressesListQuery, + useValidatorProviderOperatorAddressesListQuery, +} from '@/graphql/types/provider_types'; +import type { TransactionState } from '@/screens/account_details/components/transactions/types'; +import { convertMsgType } from '@/utils/convert_msg_type'; + +const LIMIT = 50; + +const formatTransactions = (data: GetMessagesByAddressQuery): Transactions[] => { + let formattedData = data.messagesByAddress; + if (data.messagesByAddress.length === 51) { + formattedData = data.messagesByAddress.slice(0, 51); + } + return formattedData.map((x) => { + const { transaction } = x; + + // ============================= + // messages + // ============================= + const messages = convertMsgsToModels(transaction); + const msgType = messages.map((eachMsg) => { + const eachMsgType = eachMsg?.type ?? 'none type'; + return eachMsgType ?? ''; + }); + const convertedMsgType = convertMsgType(msgType); + return { + height: transaction?.height, + hash: transaction?.hash ?? '', + type: convertedMsgType, + messages: { + count: messages.length, + items: messages, + }, + success: transaction?.success ?? false, + timestamp: transaction?.block.timestamp, + }; + }); +}; + +export function useTransactions() { + const { prefix } = chainConfig(); + const router = useRouter(); + const [state, setState] = useState({ + data: [], + hasNextPage: false, + isNextPageLoading: true, + offsetCount: 0, + }); + const isFirst = useRef(true); + + const address = Array.isArray(router?.query?.address) + ? router.query.address[0] + : router?.query?.address ?? ''; + + const [consumerAccountAddress, setConsumerAccountAddress] = useState(address); + + const { data: addresses } = useValidatorConsensusAddressesListQuery({ variables: { address } }); + + const { data: cosmosvaloperAddresses } = useValidatorProviderOperatorAddressesListQuery({ + variables: { address }, + }); + + const { data: valAddressesInfo } = useValidatorAddressesQuery(); + + useEffect(() => { + let consumer = ''; + if (valAddressesInfo?.ccv_validator) { + if (address.startsWith(prefix.consensus)) { + if (addresses) { + consumer = addresses.ccv_validator?.[0].consumer_self_delegate_address; + } else { + consumer = address; + } + setConsumerAccountAddress(consumer); + } else if (address.startsWith('cosmosvaloper')) { + if (cosmosvaloperAddresses) { + consumer = cosmosvaloperAddresses.ccv_validator?.[0].consumer_self_delegate_address; + } else { + consumer = address; + } + setConsumerAccountAddress(consumer); + } + } + }, [ + address, + addresses, + cosmosvaloperAddresses, + prefix.account, + prefix.consensus, + valAddressesInfo, + ]); + + // reset state when address changes + useEffect(() => { + if (isFirst.current) { + isFirst.current = false; + } else { + setState((prevState) => ({ + ...prevState, + data: [], + hasNextPage: false, + isNextPageLoading: true, + offsetCount: 0, + })); + } + }, [consumerAccountAddress]); + + const handleSetState = (stateChange: (prevState: TransactionState) => TransactionState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }; + + const { fetchMore } = useGetMessagesByAddressQuery({ + variables: { + limit: LIMIT + 1, // to check if more exist + offset: 0, + address: `{${consumerAccountAddress ?? ''}}`, + }, + onCompleted: (data) => { + const itemsLength = data.messagesByAddress.length; + const newItems = R.uniq([...state.data, ...formatTransactions(data)]); + const stateChange: TransactionState = { + data: newItems, + hasNextPage: itemsLength === 51, + isNextPageLoading: false, + offsetCount: state.offsetCount + LIMIT, + }; + + handleSetState((prevState) => ({ ...prevState, ...stateChange })); + }, + }); + + const loadNextPage = async () => { + handleSetState((prevState) => ({ ...prevState, isNextPageLoading: true })); + // refetch query + await fetchMore({ + variables: { + offset: state.offsetCount, + limit: LIMIT + 1, + }, + }).then(({ data }) => { + const itemsLength = data.messagesByAddress.length; + const newItems = R.uniq([...state.data, ...formatTransactions(data)]); + const stateChange: TransactionState = { + data: newItems, + hasNextPage: itemsLength === 51, + isNextPageLoading: false, + offsetCount: state.offsetCount + LIMIT, + }; + handleSetState((prevState) => ({ ...prevState, ...stateChange })); + }); + }; + + return { + state, + loadNextPage, + }; +} diff --git a/apps/web-neutron/src/screens/account_details/hooks.ts b/apps/web-neutron/src/screens/account_details/hooks.ts new file mode 100644 index 0000000000..9f07c03b9b --- /dev/null +++ b/apps/web-neutron/src/screens/account_details/hooks.ts @@ -0,0 +1,357 @@ +import Big from 'big.js'; +import { useRouter } from 'next/router'; +import * as R from 'ramda'; +import { useCallback, useEffect, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { useDesmosProfile } from '@/hooks/use_desmos_profile'; +import type { + AccountDetailState, + BalanceType, + OtherTokenType, +} from '@/screens/account_details/types'; +import { + useAccountWithdrawalAddress, + useAvailableBalances, + useCommission, + useDelegationBalance, + useRewards, + useUnbondingBalance, +} from '@/screens/account_details/utils'; +import { formatToken } from '@/utils/format_token'; +import { getDenom } from '@/utils/get_denom'; +import { useValidatorAddressesQuery } from '@/graphql/types/provider_types'; + +const { extra, primaryTokenUnit, tokenUnits, prefix } = chainConfig(); + +const defaultTokenUnit: TokenUnit = { + value: '0', + baseDenom: '', + displayDenom: '', + exponent: 0, +}; + +const initialState: AccountDetailState = { + loading: true, + balanceLoading: true, + exists: true, + desmosProfile: null, + overview: { + address: '', + withdrawalAddress: '', + }, + otherTokens: { + count: 0, + data: [], + }, + balance: { + available: defaultTokenUnit, + delegate: defaultTokenUnit, + unbonding: defaultTokenUnit, + reward: defaultTokenUnit, + commission: defaultTokenUnit, + total: defaultTokenUnit, + }, + rewards: {}, +}; + +type Data = { + delegationRewards?: unknown; + accountBalances?: unknown; + delegationBalance?: unknown; + unbondingBalance?: unknown; + commission?: unknown; +}; + +// ============================ +// rewards +// ============================ +const formatRewards = (_data: Data) => { + const rewardsDict: { [key: string]: TokenUnit } = {}; + // log all the rewards + // data?.delegationRewards?.forEach((x) => { + // if (!x) return; + // const coins = x.coins ?? []; + // const denomAmount = getDenom(coins, primaryTokenUnit); + // const denomFormat = formatToken(denomAmount.amount, primaryTokenUnit); + // rewardsDict[x.validatorAddress ?? ''] = denomFormat; + // }); + return rewardsDict; +}; + +// ============================ +// balance +// ============================ +const formatBalance = (data: Data): BalanceType => { + const available = getDenom(R.pathOr([], ['accountBalances', 'coins'], data), primaryTokenUnit); + const availableAmount = formatToken(available.amount, primaryTokenUnit); + const delegate = getDenom(R.pathOr([], ['delegationBalance', 'coins'], data), primaryTokenUnit); + const delegateAmount = formatToken(delegate.amount, primaryTokenUnit); + + const unbonding = getDenom(R.pathOr([], ['unbondingBalance', 'coins'], data), primaryTokenUnit); + const unbondingAmount = formatToken(unbonding.amount, primaryTokenUnit); + + const rewards = '0'; + // data.delegationRewards?.reduce((a: BigSource, b: unknown) => { + // if (!b) return a; + // const coins = R.pathOr([], ['coins'], b); + // const dsmCoins = getDenom(coins, primaryTokenUnit); + + // return Big(a).plus(dsmCoins.amount).toPrecision(); + // }, '0') ?? '0'; + const rewardsAmount = formatToken(rewards, primaryTokenUnit); + + // const commission = getDenom( + // R.pathOr['coins']>>( + // [], + // ['commission', 'coins'], + // data + // ), + // primaryTokenUnit + // ); + const commissionAmount = formatToken(0, primaryTokenUnit); + + const total = Big(availableAmount.value) + .plus(delegateAmount.value) + .plus(unbondingAmount.value) + .plus(rewardsAmount.value) + .plus(commissionAmount.value) + .toFixed(tokenUnits?.[primaryTokenUnit].exponent); + + const balance: BalanceType = { + available: availableAmount, + delegate: delegateAmount, + unbonding: unbondingAmount, + reward: rewardsAmount, + commission: commissionAmount, + total: { + value: total, + displayDenom: availableAmount.displayDenom, + baseDenom: availableAmount.baseDenom, + exponent: availableAmount.exponent, + }, + }; + + return balance; +}; + +// ============================ +// other tokens +// ============================ +const formatOtherTokens = (data: Data) => { + // Loop through balance and delegation to figure out what the other tokens are + const otherTokenUnits = new Set(); + const otherTokens: OtherTokenType[] = []; + // available tokens + const available = R.pathOr([], ['accountBalances', 'coins'], data); + + available.forEach((x) => { + otherTokenUnits.add(x.denom); + }); + + // rewards tokens + const rewards = R.pathOr }>>([], ['delegationRewards'], data); + + rewards.forEach((x) => { + x.coins?.forEach((y) => { + otherTokenUnits.add(y.denom); + }); + }); + + // commission tokens + const commission = R.pathOr([], ['commission', 'coins'], data); + + commission.forEach((x) => { + otherTokenUnits.add(x.denom); + }); + + // remove the primary token unit thats being shown in balance + otherTokenUnits.delete(primaryTokenUnit); + + otherTokenUnits.forEach((x: string) => { + const availableRawAmount = getDenom(available, x); + const availableAmount = formatToken(availableRawAmount.amount, x); + const rewardsRawAmount = rewards.reduce((a, b) => { + const coins = R.pathOr>([], ['coins'], b); + const denom = getDenom(coins, x); + return Big(a).plus(denom.amount).toPrecision(); + }, '0'); + const rewardAmount = formatToken(rewardsRawAmount, x); + const commissionRawAmount = getDenom(commission, x); + const commissionAmount = formatToken(commissionRawAmount.amount, x); + + otherTokens.push({ + denom: tokenUnits?.[x]?.display ?? x, + available: availableAmount, + reward: rewardAmount, + commission: commissionAmount, + }); + }); + + return { + data: otherTokens, + count: otherTokens.length, + }; +}; + +// ========================== +// Format Data +// ========================== +const formatAllBalance = (data: Data) => { + const stateChange: Partial = { + loading: false, + balanceLoading: false, + }; + + stateChange.rewards = formatRewards(data); + + stateChange.balance = formatBalance(data); + + formatOtherTokens(data); + + stateChange.otherTokens = formatOtherTokens(data); + + return stateChange; +}; + +export const useAccountDetails = () => { + const router = useRouter(); + const [state, setState] = useState(initialState); + + const handleSetState = useCallback( + (stateChange: (prevState: AccountDetailState) => AccountDetailState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, + [] + ); + + const { data: valAddressesInfo } = useValidatorAddressesQuery(); + + const address = Array.isArray(router.query.address) + ? router.query.address[0] + : router.query.address ?? ''; + + const [providerAddress, setProviderAddress] = useState(address); + + const [, setConsumerAddress] = useState(address); + + useEffect(() => { + let provider = ''; + let consumer = ''; + if (valAddressesInfo?.ccv_validator) { + if (providerAddress.startsWith(prefix.consensus)) { + const matchingValidator = valAddressesInfo.ccv_validator.find( + (x) => x.consumer_consensus_address === providerAddress + ); + if (matchingValidator) { + provider = matchingValidator.provider_self_delegate_address ?? ''; + consumer = matchingValidator.consumer_self_delegate_address ?? ''; + } else { + provider = address; + } + setProviderAddress(provider); + setConsumerAddress(consumer); + } else if (providerAddress.startsWith(prefix.account)) { + const matchingValidator = valAddressesInfo.ccv_validator.find( + (x) => x.consumer_self_delegate_address === providerAddress + ); + if (matchingValidator) { + provider = matchingValidator.provider_self_delegate_address ?? ''; + consumer = matchingValidator.consumer_self_delegate_address ?? ''; + } else { + provider = address; + } + setProviderAddress(provider); + setConsumerAddress(consumer); + } else if (providerAddress.startsWith('cosmosvaloper')) { + const matchingValidator = valAddressesInfo.ccv_validator.find( + (x) => x.validator?.validatorInfo?.operatorAddress === providerAddress + ); + if (matchingValidator) { + provider = matchingValidator.provider_self_delegate_address ?? ''; + consumer = matchingValidator.consumer_self_delegate_address ?? ''; + } else { + provider = address; + } + setProviderAddress(provider); + setConsumerAddress(consumer); + } + } + }, [address, providerAddress, valAddressesInfo]); + + // ========================== + // Desmos Profile + // ========================== + const { data: dataDesmosProfile, loading: loadingDesmosProfile } = useDesmosProfile({ + addresses: [address], + skip: !extra.profile || !address, + }); + useEffect( + () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), + [dataDesmosProfile] + ); + + const commission = useCommission(providerAddress); + const available = useAvailableBalances(providerAddress); + const delegation = useDelegationBalance(providerAddress); + const unbonding = useUnbondingBalance(providerAddress); + const rewards = useRewards(providerAddress); + + useEffect(() => { + const formattedRawData: { + commission?: any; + accountBalances?: any; + delegationBalance?: any; + unbondingBalance?: any; + delegationRewards?: any; + } = {}; + formattedRawData.commission = R.pathOr({ coins: [] }, ['commission'], commission); + formattedRawData.accountBalances = R.pathOr( + { coins: [] }, + ['bdjuno_provider', 'accountBalances'], + available + ); + formattedRawData.delegationBalance = R.pathOr( + { coins: [] }, + ['bdjuno_provider', 'delegationBalance'], + delegation + ); + formattedRawData.unbondingBalance = R.pathOr( + { coins: [] }, + ['bdjuno_provider', 'unbondingBalance'], + unbonding + ); + formattedRawData.delegationRewards = R.pathOr( + [], + ['bdjuno_provider', 'delegationRewards'], + rewards + ); + handleSetState((prevState) => ({ ...prevState, ...formatAllBalance(formattedRawData) })); + }, [commission, available, delegation, unbonding, rewards, handleSetState]); + + // ========================== + // Fetch Data + // ========================== + const withdrawalAddress = useAccountWithdrawalAddress(providerAddress); + useEffect(() => { + handleSetState((prevState) => ({ + ...prevState, + overview: { + address: address ?? '', + withdrawalAddress: + address ?? withdrawalAddress?.bdjuno_provider?.withdrawalAddress?.address ?? '', + }, + })); + }, [ + handleSetState, + address, + withdrawalAddress?.bdjuno_provider?.withdrawalAddress?.address, + providerAddress, + ]); + + if (loadingDesmosProfile) state.loading = true; + + return { state }; +}; diff --git a/apps/web-neutron/src/screens/account_details/index.tsx b/apps/web-neutron/src/screens/account_details/index.tsx new file mode 100644 index 0000000000..677a5f7eae --- /dev/null +++ b/apps/web-neutron/src/screens/account_details/index.tsx @@ -0,0 +1,63 @@ +import { NextSeo } from 'next-seo'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import DesmosProfile from '@/components/desmos_profile'; +import Layout from '@/components/layout'; +import LoadAndExist from '@/components/load_and_exist'; +import Balance from '@/screens/account_details/components/balance'; +import OtherTokens from '@/screens/account_details/components/other_tokens'; +import Overview from '@/screens/account_details/components/overview'; +import Transactions from '@/screens/account_details/components/transactions'; +import { useAccountDetails } from '@/screens/account_details/hooks'; +import useStyles from '@/screens/account_details/styles'; + +const AccountDetails = () => { + const { t } = useAppTranslation('accounts'); + const { classes } = useStyles(); + const { state } = useAccountDetails(); + + return ( + <> + + + + + {!!state.desmosProfile && ( + + )} + + + + {/* */} + + + + + + ); +}; + +export default AccountDetails; diff --git a/apps/web-neutron/src/screens/account_details/utils.tsx b/apps/web-neutron/src/screens/account_details/utils.tsx new file mode 100644 index 0000000000..8496d562fb --- /dev/null +++ b/apps/web-neutron/src/screens/account_details/utils.tsx @@ -0,0 +1,139 @@ +import { useEffect, useMemo } from 'react'; +import { + useAccountBalancesQuery, + useAccountCommissionQuery, + useAccountDelegationBalanceQuery, + useAccountDelegationRewardsQuery, + useAccountUnbondingBalanceQuery, + useAccountWithdrawalAddressQuery, +} from '@/graphql/types/provider_types'; +import { toValidatorAddress } from '@/utils/prefix_convert'; + +export const useCommission = (address?: string) => { + /* Converting the address to a validator address. */ + let validatorAddress = ''; + try { + if (address) validatorAddress = toValidatorAddress(address); + } catch (e) { + console.error(e); + } + + const defaultReturnValue = useMemo( + () => ({ + commission: { + coins: [], + }, + }), + [] + ); + const { data, error, refetch } = useAccountCommissionQuery({ + variables: { + validatorAddress, + }, + skip: !address, + }); + useEffect(() => { + if (error) refetch(); + }, [error, refetch]); + return data ?? defaultReturnValue; +}; + +export const useAccountWithdrawalAddress = (address?: string) => { + const defaultReturnValue = useMemo( + () => ({ + bdjuno_provider: { + withdrawalAddress: { + address, + }, + }, + }), + [address] + ); + const { data, error, refetch } = useAccountWithdrawalAddressQuery({ + variables: { + address: address ?? '', + }, + skip: !address, + }); + useEffect(() => { + if (error) refetch(); + }, [error, refetch]); + return data ?? defaultReturnValue; +}; + +export const useAvailableBalances = (address?: string) => { + const defaultReturnValue = useMemo( + () => ({ + accountBalances: { + coins: [], + }, + }), + [] + ); + const { data, error, refetch } = useAccountBalancesQuery({ + variables: { + address: address ?? '', + }, + skip: !address, + }); + useEffect(() => { + if (error) refetch(); + }, [error, refetch]); + return data ?? defaultReturnValue; +}; + +export const useDelegationBalance = (address?: string) => { + const defaultReturnValue = useMemo( + () => ({ + delegationBalance: { + coins: [], + }, + }), + [] + ); + const { data, error, refetch } = useAccountDelegationBalanceQuery({ + variables: { + address: address ?? '', + }, + skip: !address, + }); + useEffect(() => { + if (error) refetch(); + }, [error, refetch]); + return data ?? defaultReturnValue; +}; + +export const useUnbondingBalance = (address?: string) => { + const defaultReturnValue = useMemo( + () => ({ + unbondingBalance: { + coins: [], + }, + }), + [] + ); + const { data, error, refetch } = useAccountUnbondingBalanceQuery({ + variables: { + address: address ?? '', + }, + skip: !address, + }); + useEffect(() => { + if (error) refetch(); + }, [error, refetch]); + return data ?? defaultReturnValue; +}; + +export const useRewards = (address?: string) => { + const defaultReturnValue = useMemo(() => ({ delegationRewards: [] }), []); + const { data, error, refetch } = useAccountDelegationRewardsQuery({ + variables: { + address: address ?? '', + }, + skip: !address, + }); + useEffect(() => { + if (error) refetch(); + }, [error, refetch]); + return data ?? defaultReturnValue; +}; diff --git a/apps/web-neutron/src/screens/block_details/components/overview/index.tsx b/apps/web-neutron/src/screens/block_details/components/overview/index.tsx new file mode 100644 index 0000000000..f89e50d7e8 --- /dev/null +++ b/apps/web-neutron/src/screens/block_details/components/overview/index.tsx @@ -0,0 +1,66 @@ +import Typography from '@mui/material/Typography'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import numeral from 'numeral'; +import { useRecoilValue } from 'recoil'; +import AvatarName from '@/components/avatar_name'; +import BoxDetails from '@/components/box_details'; +import { readDate, readTimeFormat } from '@/recoil/settings'; +import type { OverviewType } from '@/screens/block_details/types'; +import dayjs, { formatDayJs } from '@/utils/dayjs'; +import useValidatorConsensusAddressesList from '@/hooks/useValidatorConsensusAddressesList'; +import { VALIDATOR_DETAILS } from '@/utils/go_to_page'; +import { FC } from 'react'; + +const Overview: FC = (props: any, { className }) => { + const { t } = useAppTranslation('blocks'); + const dateFormat = useRecoilValue(readDate); + const timeFormat = useRecoilValue(readTimeFormat); + const { profile } = useValidatorConsensusAddressesList(props?.proposer); + + return ( + + {numeral(props?.height).format('0,0')} + + ), + }, + { + key: 'hash', + label: t('hash'), + detail: props?.hash, + }, + { + key: 'proposer', + label: t('proposer'), + detail: ( + + ), + }, + { + key: 'time', + label: t('time'), + detail: formatDayJs(dayjs.utc(props?.timestamp ?? ''), dateFormat, timeFormat), + }, + { + key: 'txs', + label: t('txs'), + detail: numeral(props?.txs ?? '').format('0,0'), + }, + ]} + /> + ); +}; + +export default Overview; diff --git a/apps/web-neutron/src/screens/block_details/components/signatures/components/desktop/index.tsx b/apps/web-neutron/src/screens/block_details/components/signatures/components/desktop/index.tsx new file mode 100644 index 0000000000..36670db5b3 --- /dev/null +++ b/apps/web-neutron/src/screens/block_details/components/signatures/components/desktop/index.tsx @@ -0,0 +1,90 @@ +import Typography from '@mui/material/Typography'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import { FC, LegacyRef, useMemo } from 'react'; +import AutoSizer from 'react-virtualized-auto-sizer'; +import { VariableSizeGrid as Grid } from 'react-window'; +import { + columns, + formatRows, +} from '@/screens/block_details/components/signatures/components/desktop/utils'; +import useStyles from '@/screens/block_details/components/signatures/components/desktop/styles'; +import useShallowMemo from '@/hooks/useShallowMemo'; +import { useGrid } from '@/hooks/use_react_window'; + +type DesktopProps = { + className?: string; + signatures: string[]; +}; + +const Desktop: FC = ({ className, signatures }) => { + const { t } = useAppTranslation('blocks'); + const { classes, cx } = useStyles(); + const { gridRef, columnRef, onResize, getColumnWidth, getRowHeight } = useGrid(columns); + const signaturesMemo = useShallowMemo(signatures); + const rows = useMemo(() => formatRows(signaturesMemo), [signaturesMemo]); + return ( +

+ + {({ height, width }) => ( + <> + {/* ======================================= */} + {/* Table Header */} + {/* ======================================= */} + } + columnCount={columns.length} + columnWidth={(index) => getColumnWidth(width ?? 0, index)} + height={50} + rowCount={1} + rowHeight={() => 50} + width={width ?? 0} + > + {({ columnIndex, style }) => { + const { key, align } = columns[columnIndex]; + + return ( +
+ + {t(key)} + +
+ ); + }} +
+ {/* ======================================= */} + {/* Table Body */} + {/* ======================================= */} + } + columnCount={columns.length} + columnWidth={(index) => getColumnWidth(width ?? 0, index)} + height={(height ?? 0) - 50} + rowCount={rows.length} + rowHeight={getRowHeight} + width={width ?? 0} + > + {({ columnIndex, rowIndex, style }) => { + const { key, align } = columns[columnIndex]; + const selectedItem = rows[rowIndex][key as keyof (typeof rows)[number]]; + return ( +
+ + {selectedItem} + +
+ ); + }} +
+ + )} +
+
+ ); +}; + +export default Desktop; diff --git a/apps/web-neutron/src/screens/block_details/components/signatures/components/desktop/utils.tsx b/apps/web-neutron/src/screens/block_details/components/signatures/components/desktop/utils.tsx new file mode 100644 index 0000000000..7bb2472736 --- /dev/null +++ b/apps/web-neutron/src/screens/block_details/components/signatures/components/desktop/utils.tsx @@ -0,0 +1,32 @@ +import { FC } from 'react'; +import AvatarName from '@/components/avatar_name'; +import useValidatorConsensusAddressesList from '@/hooks/useValidatorConsensusAddressesList'; +import { VALIDATOR_DETAILS } from '@/utils/go_to_page'; + +export const columns: { + key: string; + align?: 'left' | 'center' | 'right' | 'justify' | 'inherit'; + width: number; +}[] = [ + { + key: 'validator', + width: 100, + }, +]; + +const FormatRow: FC<{ rowAddress: string }> = ({ rowAddress }) => { + const { profile } = useValidatorConsensusAddressesList(rowAddress); + return ( + + ); +}; + +export const formatRows = (data: string[]) => + data.map((x) => ({ + validator: , + })); diff --git a/apps/web-neutron/src/screens/block_details/components/signatures/components/index.ts b/apps/web-neutron/src/screens/block_details/components/signatures/components/index.ts new file mode 100644 index 0000000000..4d64b7ae39 --- /dev/null +++ b/apps/web-neutron/src/screens/block_details/components/signatures/components/index.ts @@ -0,0 +1,4 @@ +import Desktop from '@/screens/block_details/components/signatures/components/desktop'; +import Mobile from '@/screens/block_details/components/signatures/components/mobile'; + +export { Desktop, Mobile }; diff --git a/apps/web-neutron/src/screens/block_details/components/signatures/components/mobile/index.tsx b/apps/web-neutron/src/screens/block_details/components/signatures/components/mobile/index.tsx new file mode 100644 index 0000000000..5a0533b860 --- /dev/null +++ b/apps/web-neutron/src/screens/block_details/components/signatures/components/mobile/index.tsx @@ -0,0 +1,86 @@ +import Divider from '@mui/material/Divider'; +import Typography from '@mui/material/Typography'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import { FC, LegacyRef } from 'react'; +import AutoSizer from 'react-virtualized-auto-sizer'; +import { ListChildComponentProps, VariableSizeList as List } from 'react-window'; +import useStyles from '@/screens/block_details/components/signatures/components/mobile/styles'; +import { useList, useListRow } from '@/hooks/use_react_window'; +import AvatarName from '@/components/avatar_name'; +import useValidatorConsensusAddressesList from '@/hooks/useValidatorConsensusAddressesList'; +import { VALIDATOR_DETAILS } from '@/utils/go_to_page'; + +type ListItemProps = Pick & { + setRowHeight: Parameters[1]; + signatures: string[] | undefined; +}; + +const ListItem: FC = ({ index, style, setRowHeight, signatures }) => { + const { t } = useAppTranslation('blocks'); + const { classes } = useStyles(); + const { rowRef } = useListRow(index, setRowHeight); + const selectedItem = signatures?.[index]; + const { profile } = useValidatorConsensusAddressesList(selectedItem ?? ''); + + return ( +
+
+ {/* single signature start */} +
+
+ + {t('validator')} + + +
+
+ {/* single signature end */} + {!!signatures && index !== signatures.length - 1 && } +
+
+ ); +}; + +type MobileProps = { + className?: string; + signatures?: string[]; +}; + +const Mobile: FC = ({ className, signatures }) => { + const { listRef, getRowHeight, setRowHeight } = useList(); + const { classes, cx } = useStyles(); + + return ( +
+ + {({ height, width }) => ( + } + width={width ?? 0} + > + {({ index, style }) => ( + + )} + + )} + +
+ ); +}; + +export default Mobile; diff --git a/apps/web-neutron/src/screens/block_details/components/signatures/index.tsx b/apps/web-neutron/src/screens/block_details/components/signatures/index.tsx new file mode 100644 index 0000000000..55f04af300 --- /dev/null +++ b/apps/web-neutron/src/screens/block_details/components/signatures/index.tsx @@ -0,0 +1,36 @@ +import Box from '@/components/box'; +import NoData from '@/components/no_data'; +import Desktop from '@/screens/block_details/components/signatures/components/desktop'; +import Mobile from '@/screens/block_details/components/signatures/components/mobile'; +import useStyles from '@/screens/block_details/components/signatures/styles'; +import { useDisplayStyles } from '@/styles/useSharedStyles'; +import Typography from '@mui/material/Typography'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import { FC } from 'react'; + +type SignaturesProps = ComponentDefault & { + signatures: string[]; +}; + +const Signatures: FC = ({ className, signatures }) => { + const { t } = useAppTranslation('blocks'); + const { classes, cx } = useStyles(); + const display = useDisplayStyles().classes; + return ( + + + {t('signatures')} + + {!signatures.length ? ( + + ) : ( +
+ + +
+ )} +
+ ); +}; + +export default Signatures; diff --git a/apps/web-neutron/src/screens/block_details/hooks.ts b/apps/web-neutron/src/screens/block_details/hooks.ts new file mode 100644 index 0000000000..78880bb312 --- /dev/null +++ b/apps/web-neutron/src/screens/block_details/hooks.ts @@ -0,0 +1,130 @@ +import { useRouter } from 'next/router'; +import numeral from 'numeral'; +import * as R from 'ramda'; +import { useCallback, useEffect, useState } from 'react'; +import { convertMsgsToModels } from '@/components/msg/utils'; +import { BlockDetailsQuery, useBlockDetailsQuery } from '@/graphql/types/general_types'; +import type { BlockDetailState } from '@/screens/block_details/types'; +import { convertMsgType } from '@/utils/convert_msg_type'; + +export const useBlockDetails = () => { + const router = useRouter(); + const [state, setState] = useState({ + loading: true, + exists: true, + overview: { + height: 0, + hash: '', + txs: 0, + timestamp: '', + proposer: '', + }, + signatures: [], + transactions: [], + }); + + const handleSetState = useCallback( + (stateChange: (prevState: BlockDetailState) => BlockDetailState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, + [] + ); + + // ========================== + // Fetch Data + // ========================== + useBlockDetailsQuery({ + variables: { + height: numeral(router.query.height).value(), + signatureHeight: (numeral(router.query.height).value() ?? 0) + 1, + }, + onCompleted: (data) => { + handleSetState((prevState) => ({ ...prevState, ...formatRaws(data) })); + }, + }); + + useEffect(() => { + // reset every call + handleSetState((prevState) => ({ + ...prevState, + loading: true, + exists: true, + })); + }, [handleSetState]); + + return { + state, + }; +}; + +// ========================== +// Overview +// ========================== +const formatOverview = (data: BlockDetailsQuery) => { + const proposerAddress = data?.block?.[0]?.validator?.validatorInfo?.[0].operatorAddress ?? ''; + const overview = { + height: data.block[0].height, + hash: data.block[0].hash, + txs: data.block[0].txs ?? 0, + timestamp: data.block[0].timestamp, + proposer: proposerAddress, + }; + return overview; +}; + +// ========================== +// Signatures +// ========================== +const formatSignatures = (data: BlockDetailsQuery) => { + const signatures = data.preCommits + .filter((x) => x?.validator?.validatorInfo) + .map((x) => x?.validator?.validatorInfo?.[0].operatorAddress ?? ''); + return signatures; +}; + +// ========================== +// Transactions +// ========================== +const formatTransactions = (data: BlockDetailsQuery, stateChange: Partial) => { + const transactions = data.transaction.map((x) => { + const messages = convertMsgsToModels(x); + const msgType = messages.map((eachMsg) => { + const eachMsgType = eachMsg?.type ?? 'none type'; + return eachMsgType ?? ''; + }); + const convertedMsgType = convertMsgType(msgType); + return { + type: convertedMsgType, + height: x.height, + hash: x.hash, + success: x.success, + timestamp: stateChange.overview?.timestamp ?? '', + messages: { + count: x.messages.length, + items: messages, + }, + }; + }); + + return transactions; +}; + +function formatRaws(data: BlockDetailsQuery) { + const stateChange: Partial = { + loading: false, + }; + + if (!data.block.length) { + stateChange.exists = false; + return stateChange; + } + + stateChange.overview = formatOverview(data); + stateChange.signatures = formatSignatures(data); + stateChange.transactions = formatTransactions(data, stateChange); + + return stateChange; +} diff --git a/apps/web-neutron/src/screens/blocks/components/desktop/index.tsx b/apps/web-neutron/src/screens/blocks/components/desktop/index.tsx new file mode 100644 index 0000000000..938d1b9f8d --- /dev/null +++ b/apps/web-neutron/src/screens/blocks/components/desktop/index.tsx @@ -0,0 +1,205 @@ +import AvatarName from '@/components/avatar_name'; +import Loading from '@/components/loading'; +import Timestamp from '@/components/Timestamp'; +import { useGrid } from '@/hooks/use_react_window'; +import useStyles from '@/screens/blocks/components/desktop/styles'; +import { columns } from '@/screens/blocks/components/desktop/utils'; +import type { ItemType } from '@/screens/blocks/types'; +import { getMiddleEllipsis } from '@/utils/get_middle_ellipsis'; +import { BLOCK_DETAILS } from '@/utils/go_to_page'; +import { mergeRefs } from '@/utils/merge_refs'; +import Typography from '@mui/material/Typography'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import Link from 'next/link'; +import numeral from 'numeral'; +import { ComponentProps, CSSProperties, FC, LegacyRef, ReactNode } from 'react'; +import AutoSizer from 'react-virtualized-auto-sizer'; +import { VariableSizeGrid as Grid } from 'react-window'; +import InfiniteLoader from 'react-window-infinite-loader'; +import useProviderCustomValidator from '@/hooks/useProviderCustomValidator'; + +type BlockItemProps = { + item: ItemType; + rowIndex: number; + column: string; + style: CSSProperties; + align?: ComponentProps['align']; +}; + +const BlockItem: FC = ({ item, rowIndex, column, style, align }) => { + const { classes, cx } = useStyles(); + const { profile } = useProviderCustomValidator(item.proposer); + + let formattedItem: ReactNode | null = null; + switch (column) { + case 'height': + formattedItem = ( + + {numeral(item.height).format('0,0')} + + ); + break; + case 'txs': + formattedItem = numeral(item.txs).format('0,0'); + break; + case 'time': + formattedItem = ; + break; + case 'proposer': + formattedItem = ( + + ); + break; + case 'hash': + formattedItem = getMiddleEllipsis(item.hash, { + beginning: 13, + ending: 15, + }); + break; + default: + break; + } + return ( +
+ + {formattedItem} + +
+ ); +}; + +type DesktopProps = { + className?: string; + items: ItemType[]; + itemCount: number; + loadMoreItems: (...arg: unknown[]) => void; + isItemLoaded?: (index: number) => boolean; +}; + +const Desktop: FC = ({ + className, + items, + itemCount, + loadMoreItems, + isItemLoaded, +}) => { + const { t } = useAppTranslation('blocks'); + const { classes, cx } = useStyles(); + const { gridRef, columnRef, onResize, getColumnWidth, getRowHeight } = useGrid(columns); + + return ( +
+ + {({ height, width }) => ( + <> + {/* ======================================= */} + {/* Table Header */} + {/* ======================================= */} + } + columnCount={columns.length} + columnWidth={(index) => getColumnWidth(width ?? 0, index)} + height={50} + rowCount={1} + rowHeight={() => 50} + width={width ?? 0} + > + {({ columnIndex, style }) => { + const { key, align } = columns[columnIndex]; + + return ( +
+ + {t(key)} + +
+ ); + }} +
+ {/* ======================================= */} + {/* Table Body */} + {/* ======================================= */} + true)} + itemCount={itemCount} + loadMoreItems={ + loadMoreItems ?? + (() => { + // do nothing + }) + } + > + {({ onItemsRendered, ref }) => ( + { + onItemsRendered({ + overscanStartIndex: overscanRowStartIndex, + overscanStopIndex: overscanRowStopIndex, + visibleStartIndex: visibleRowStartIndex, + visibleStopIndex: visibleRowStopIndex, + }); + }} + ref={mergeRefs(gridRef, ref)} + columnCount={columns.length} + columnWidth={(index) => getColumnWidth(width ?? 0, index)} + height={(height ?? 0) - 50} + rowCount={itemCount} + rowHeight={getRowHeight} + width={width ?? 0} + className="scrollbar" + > + {({ columnIndex, rowIndex, style }) => { + if (!isItemLoaded?.(rowIndex) && columnIndex === 0) { + return ( +
+ +
+ ); + } + + if (!isItemLoaded?.(rowIndex)) { + return null; + } + + const { key, align } = columns[columnIndex]; + const item = items[rowIndex]; + return ( + + ); + }} +
+ )} +
+ + )} +
+
+ ); +}; + +export default Desktop; diff --git a/apps/web-neutron/src/screens/blocks/components/index.ts b/apps/web-neutron/src/screens/blocks/components/index.ts new file mode 100644 index 0000000000..988655eb13 --- /dev/null +++ b/apps/web-neutron/src/screens/blocks/components/index.ts @@ -0,0 +1,4 @@ +import Desktop from '@/screens/blocks/components/desktop'; +import Mobile from '@/screens/blocks/components/mobile'; + +export { Mobile, Desktop }; diff --git a/apps/web-neutron/src/screens/blocks/components/mobile/index.tsx b/apps/web-neutron/src/screens/blocks/components/mobile/index.tsx new file mode 100644 index 0000000000..146c698567 --- /dev/null +++ b/apps/web-neutron/src/screens/blocks/components/mobile/index.tsx @@ -0,0 +1,134 @@ +import AvatarName from '@/components/avatar_name'; +import Loading from '@/components/loading'; +import SingleBlockMobile from '@/components/single_block_mobile'; +import Timestamp from '@/components/Timestamp'; +import { useList, useListRow } from '@/hooks/use_react_window'; +import useStyles from '@/screens/blocks/components/mobile/styles'; +import type { ItemType } from '@/screens/blocks/types'; +import { getMiddleEllipsis } from '@/utils/get_middle_ellipsis'; +import { BLOCK_DETAILS } from '@/utils/go_to_page'; +import { mergeRefs } from '@/utils/merge_refs'; +import Divider from '@mui/material/Divider'; +import Link from 'next/link'; +import numeral from 'numeral'; +import { FC } from 'react'; +import AutoSizer from 'react-virtualized-auto-sizer'; +import { ListChildComponentProps, VariableSizeList as List } from 'react-window'; +import InfiniteLoader from 'react-window-infinite-loader'; +import useProviderCustomValidator from '@/hooks/useProviderCustomValidator'; + +type ListItemProps = Pick & { + setRowHeight: Parameters[1]; + isItemLoaded: ((index: number) => boolean) | undefined; + item: ItemType; + isLast: boolean; +}; + +const ListItem: FC = ({ + index, + style, + setRowHeight, + isItemLoaded, + item, + isLast, +}) => { + const { profile } = useProviderCustomValidator(item.proposer); + + const formattedItem = { + height: ( + + {numeral(item.height).format('0,0')} + + ), + txs: numeral(item.txs).format('0,0'), + time: , + proposer: ( + + ), + hash: getMiddleEllipsis(item.hash, { + beginning: 13, + ending: 10, + }), + }; + + const { rowRef } = useListRow(index, setRowHeight); + if (!isItemLoaded?.(index)) { + return ( +
+
+ +
+
+ ); + } + return ( +
+
+ + {!isLast && } +
+
+ ); +}; + +type MobileProps = { + className?: string; + items: ItemType[]; + itemCount: number; + loadMoreItems: (...arg: unknown[]) => void; + isItemLoaded?: (index: number) => boolean; +}; + +const Mobile: FC = ({ className, items, itemCount, loadMoreItems, isItemLoaded }) => { + const { classes, cx } = useStyles(); + const { listRef, getRowHeight, setRowHeight } = useList(); + + return ( +
+ + {({ height, width }) => ( + true)} + itemCount={itemCount} + loadMoreItems={ + loadMoreItems ?? + (() => { + // do nothing + }) + } + > + {({ onItemsRendered, ref }) => ( + + {({ index, style }) => ( + + )} + + )} + + )} + +
+ ); +}; + +export default Mobile; diff --git a/apps/web-neutron/src/screens/blocks/hooks.ts b/apps/web-neutron/src/screens/blocks/hooks.ts new file mode 100644 index 0000000000..34bd1ae8fe --- /dev/null +++ b/apps/web-neutron/src/screens/blocks/hooks.ts @@ -0,0 +1,162 @@ +import * as R from 'ramda'; +import { useCallback, useState } from 'react'; +import { + BlocksListenerSubscription, + useBlocksListenerSubscription, + useBlocksQuery, + BlocksQuery, +} from '@/graphql/types/general_types'; +import type { BlocksState, BlockType } from '@/screens/blocks/types'; + +// This is a bandaid as it can get extremely +// expensive if there is too much data +/** + * Helps remove any possible duplication + * and sorts by height in case it bugs out + */ +const uniqueAndSort = R.pipe( + R.uniqBy((r: BlockType) => r?.height), + R.sort(R.descend((r) => r?.height)) +); + +const formatBlocks = (data: BlocksListenerSubscription): BlockType[] => { + let formattedData = data.blocks; + if (data.blocks.length === 51) { + formattedData = data.blocks.slice(0, 51); + } + return ( + formattedData?.map((x) => { + const proposerAddress = + x?.validator?.validatorInfo[0].ccv_validator_signing_info?.providerOperatorAddress ?? ''; + const consumerOperatorAddress = x?.ccv_validator?.consumer_operator_address ?? ''; + return { + height: x.height, + txs: x.txs ?? 0, + hash: x.hash, + timestamp: x.timestamp, + proposer: proposerAddress, + consumerOperatorAddress, + }; + }) ?? [] + ); +}; + +const formatBlocksQuery = (data: BlocksQuery): BlockType[] => { + let formattedData = data.blocks; + if (data.blocks.length === 51) { + formattedData = data.blocks.slice(0, 51); + } + return ( + formattedData?.map((x) => { + const proposerAddress = x?.ccv_validator?.validator?.validatorInfo?.operatorAddress ?? ''; + const consumerOperatorAddress = x?.ccv_validator?.consumer_operator_address ?? ''; + return { + height: x.height, + txs: x.txs ?? 0, + hash: x.hash, + timestamp: x.timestamp, + proposer: proposerAddress, + consumerOperatorAddress, + }; + }) ?? [] + ); +}; + +export const useBlocks = () => { + const [state, setState] = useState({ + loading: true, + exists: true, + items: [], + hasNextPage: false, + isNextPageLoading: true, + }); + + const handleSetState = useCallback((stateChange: (prevState: BlocksState) => BlocksState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, []); + + // ================================ + // block subscription + // ================================ + useBlocksListenerSubscription({ + variables: { + limit: 1, + offset: 0, + }, + onData: (data) => { + const newItems = uniqueAndSort([ + ...(data.data.data ? formatBlocks(data.data.data) : []), + ...state.items, + ]); + handleSetState((prevState) => ({ + ...prevState, + loading: false, + items: newItems, + })); + }, + }); + + // ================================ + // block query + // ================================ + const LIMIT = 51; + const blockQuery = useBlocksQuery({ + variables: { + limit: LIMIT, + offset: 1, + }, + onCompleted: (data) => { + const itemsLength = data.blocks.length; + const newItems = uniqueAndSort([...state.items, ...formatBlocksQuery(data)]); + handleSetState((prevState) => ({ + ...prevState, + loading: false, + items: newItems, + hasNextPage: itemsLength === 51, + isNextPageLoading: false, + })); + }, + onError: () => { + handleSetState((prevState) => ({ ...prevState, loading: false })); + }, + }); + + const loadNextPage = async () => { + handleSetState((prevState) => ({ ...prevState, isNextPageLoading: true })); + // refetch query + await blockQuery + .fetchMore({ + variables: { + offset: state.items.length, + limit: LIMIT, + }, + }) + .then(({ data }) => { + const itemsLength = data.blocks.length; + const newItems = uniqueAndSort([...state.items, ...formatBlocks(data)]); + + // set new state + handleSetState((prevState) => ({ + ...prevState, + items: newItems, + isNextPageLoading: false, + hasNextPage: itemsLength === 51, + })); + }); + }; + + const itemCount = state.hasNextPage ? state.items.length + 1 : state.items.length; + const loadMoreItems = state.isNextPageLoading ? () => null : loadNextPage; + const isItemLoaded = (index: number) => !state.hasNextPage || index < state.items.length; + + return { + state, + loadNextPage, + itemCount, + loadMoreItems, + isItemLoaded, + }; +}; diff --git a/apps/web-neutron/src/screens/home/components/blocks/components/desktop/index.tsx b/apps/web-neutron/src/screens/home/components/blocks/components/desktop/index.tsx new file mode 100644 index 0000000000..94e0a97640 --- /dev/null +++ b/apps/web-neutron/src/screens/home/components/blocks/components/desktop/index.tsx @@ -0,0 +1,130 @@ +import AvatarName from '@/components/avatar_name'; +import Timestamp from '@/components/Timestamp'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import useProviderCustomValidator from '@/hooks/useProviderCustomValidator'; +import useStyles from '@/screens/home/components/blocks/components/desktop/styles'; +import { columns } from '@/screens/home/components/blocks/components/desktop/utils'; +import type { ItemType } from '@/screens/home/components/blocks/types'; +import { getMiddleEllipsis } from '@/utils/get_middle_ellipsis'; +import { BLOCK_DETAILS, VALIDATOR_DETAILS } from '@/utils/go_to_page'; +import Table from '@mui/material/Table'; +import TableBody from '@mui/material/TableBody'; +import TableCell from '@mui/material/TableCell'; +import TableHead from '@mui/material/TableHead'; +import TableRow from '@mui/material/TableRow'; +import { AnimatePresence, motion, Variants } from 'framer-motion'; +import Link from 'next/link'; +import numeral from 'numeral'; +import { FC } from 'react'; + +type BlockRowProps = { + item: ItemType; +}; + +const variants: Variants = { + initial: { + height: 0, + display: 'flex', + alignItems: 'center', + overflow: 'hidden', + clipPath: 'inset(0 50 0 50)', + }, + animate: { + height: 50, + display: 'flex', + alignItems: 'center', + overflow: 'hidden', + clipPath: 'inset(0 0 0 0)', + }, + exit: { + height: 50, + display: 'flex', + alignItems: 'center', + overflow: 'hidden', + position: 'absolute', + marginTop: [50, 60], + opacity: 0, + transition: { duration: 0.5 }, + }, +}; + +const BlockRow: FC = ({ item }) => { + const { profile } = useProviderCustomValidator(item.proposer); + const formattedData = { + height: ( + + {numeral(item.height).format('0,0')} + + ), + txs: numeral(item.txs).format('0,0'), + time: , + proposer: ( + + ), + hash: getMiddleEllipsis(item.hash, { + beginning: 6, + ending: 5, + }), + }; + return ( + + {columns.map((column) => { + const { key, align } = column; + return ( + + + {formattedData[key as keyof typeof formattedData]} + + + ); + })} + + ); +}; + +type DesktopProps = { + className?: string; + items: ItemType[]; +}; + +const Desktop: FC = ({ className, items }) => { + const { t } = useAppTranslation('blocks'); + const { classes, cx } = useStyles(); + + return ( +
+ + + + {columns.map((column) => ( + + {t(column.key)} + + ))} + + + + + {items.map((row) => ( + + ))} + + +
+
+ ); +}; + +export default Desktop; diff --git a/apps/web-neutron/src/screens/home/components/blocks/components/mobile/index.tsx b/apps/web-neutron/src/screens/home/components/blocks/components/mobile/index.tsx new file mode 100644 index 0000000000..4e90b08e3a --- /dev/null +++ b/apps/web-neutron/src/screens/home/components/blocks/components/mobile/index.tsx @@ -0,0 +1,64 @@ +import AvatarName from '@/components/avatar_name'; +import SingleBlockMobile from '@/components/single_block_mobile'; +import Timestamp from '@/components/Timestamp'; +import useProviderCustomValidator from '@/hooks/useProviderCustomValidator'; +import type { ItemType } from '@/screens/home/components/blocks/types'; +import { getMiddleEllipsis } from '@/utils/get_middle_ellipsis'; +import { BLOCK_DETAILS, VALIDATOR_DETAILS } from '@/utils/go_to_page'; +import Divider from '@mui/material/Divider'; +import Link from 'next/link'; +import numeral from 'numeral'; +import { FC, Fragment } from 'react'; + +type BlocksItemProps = { + item: ItemType; + i: number; + isLast: boolean; +}; + +const BlocksItem: FC = ({ item, i, isLast }) => { + const { profile } = useProviderCustomValidator(item.proposer); + const name = profile?.name ?? item.proposer; + const imageUrl = profile?.imageUrl ?? ''; + return ( + + + {numeral(item.height).format('0,0')} + + } + txs={numeral(item.txs).format('0,0')} + time={} + proposer={ + + } + hash={getMiddleEllipsis(item.hash, { + beginning: 13, + ending: 10, + })} + /> + {!isLast && } + + ); +}; + +type MobileProps = { + className?: string; + items: ItemType[]; +}; + +const Mobile: FC = ({ className, items }) => ( +
+ {items?.map((x, i) => ( + + ))} +
+); + +export default Mobile; diff --git a/apps/web-neutron/src/screens/home/components/blocks/hooks.ts b/apps/web-neutron/src/screens/home/components/blocks/hooks.ts new file mode 100644 index 0000000000..2c337af4bc --- /dev/null +++ b/apps/web-neutron/src/screens/home/components/blocks/hooks.ts @@ -0,0 +1,53 @@ +import * as R from 'ramda'; +import { useCallback, useState } from 'react'; +import { + BlocksListenerSubscription, + useBlocksListenerSubscription, +} from '@/graphql/types/general_types'; +import type { BlocksState, ItemType } from '@/screens/home/components/blocks/types'; + +const formatBlocks = (data: BlocksListenerSubscription): ItemType[] => + data.blocks.map((x) => { + const proposerAddress = + x?.validator?.validatorInfo?.[0].ccv_validator_signing_info?.providerOperatorAddress ?? ''; + const consumerOperatorAddress = x?.ccv_validator?.consumer_operator_address ?? ''; + return { + height: x.height, + txs: x.txs ?? 0, + hash: x.hash, + timestamp: x.timestamp, + proposer: proposerAddress, + consumerOperatorAddress, + }; + }) ?? []; + +export const useBlocks = () => { + const [state, setState] = useState({ + loading: true, + items: [], + }); + + const handleSetState = useCallback((stateChange: (prevState: BlocksState) => BlocksState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, []); + + // ================================ + // block subscription + // ================================ + useBlocksListenerSubscription({ + onData: (data) => { + handleSetState((prevState) => ({ + ...prevState, + loading: false, + items: data.data.data ? formatBlocks(data.data.data) : [], + })); + }, + }); + + return { + state, + }; +}; diff --git a/apps/web-neutron/src/screens/home/components/consensus/index.tsx b/apps/web-neutron/src/screens/home/components/consensus/index.tsx new file mode 100644 index 0000000000..58949c37c6 --- /dev/null +++ b/apps/web-neutron/src/screens/home/components/consensus/index.tsx @@ -0,0 +1,111 @@ +import AvatarName from '@/components/avatar_name'; +import Box from '@/components/box'; +import Loading from '@/components/loading'; +import { useConsensus } from '@/screens/home/components/consensus/hooks'; +import useStyles from '@/screens/home/components/consensus/styles'; +import Typography from '@mui/material/Typography'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import dynamic from 'next/dynamic'; +import numeral from 'numeral'; +import { FC } from 'react'; +import { PolarAngleAxis, RadialBar, RadialBarChart, Tooltip } from 'recharts'; +import useValidatorConsensusAddressesList from '@/hooks/useValidatorConsensusAddressesList'; + +const DynamicRadialBarChart = dynamic(() => Promise.resolve(RadialBarChart), { ssr: false }); + +const Consensus: FC = ({ className }) => { + const { classes, cx, theme } = useStyles(); + const { state } = useConsensus(); + const { t } = useAppTranslation('home'); + + const data = [ + { + value: state.roundCompletion, + fill: theme.palette.primary.main, + }, + ]; + + const circleSize = 200; + const { profile } = useValidatorConsensusAddressesList(state?.proposer); + + return ( + + + {t('consensus')} + +
+
+ + {t('height')} + + + {t('proposer')} + +
+
+ + {state.loadingNewRound ? '-' : numeral(state.height).format('0,0')} + + {!state.loadingNewStep && state.proposer ? ( + + ) : ( + '-' + )} +
+
+
+ {state.loadingNewStep ? ( + + ) : ( + + + + + + + {t('step', { + step: numeral(state.step).format('0,0'), + })} + + + + + {t('round', { + round: numeral(state.round).format('0,0'), + })} + + + + )} +
+
+ ); +}; + +export default Consensus; diff --git a/apps/web-neutron/src/screens/home/components/data_blocks/hooks.ts b/apps/web-neutron/src/screens/home/components/data_blocks/hooks.ts new file mode 100644 index 0000000000..0a18b03b29 --- /dev/null +++ b/apps/web-neutron/src/screens/home/components/data_blocks/hooks.ts @@ -0,0 +1,109 @@ +import numeral from 'numeral'; +import { useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { + AverageBlockTimeQuery, + TokenPriceListenerSubscription, + useAverageBlockTimeQuery, + useLatestBlockHeightListenerSubscription, + useTokenPriceListenerSubscription, +} from '@/graphql/types/general_types'; +import { + ActiveValidatorCountQuery, + useActiveValidatorCountQuery, +} from '@/graphql/types/provider_types'; + +const { primaryTokenUnit, tokenUnits } = chainConfig(); + +type DataBlocksState = { + blockHeight: number; + blockTime: number; + price: number | null; + validators: { + active: number; + total: number; + }; +}; + +const formatAverageBlockTime = (data: AverageBlockTimeQuery, state: DataBlocksState) => + data.averageBlockTime[0]?.averageTime ?? state.blockTime; + +const formatTokenPrice = (data: TokenPriceListenerSubscription, state: DataBlocksState) => { + if (data?.tokenPrice[0]?.price) { + return numeral(numeral(data?.tokenPrice[0]?.price).format('0.0000', Math.floor)).value(); + } + return state.price; +}; + +const formatActiveValidatorsCount = (data: ActiveValidatorCountQuery) => ({ + active: data.bdjuno_provider?.activeTotal.aggregate?.count ?? 0, + total: data.bdjuno_provider?.total?.aggregate?.count ?? 0, +}); + +export const useDataBlocks = () => { + const [state, setState] = useState({ + blockHeight: 0, + blockTime: 0, + price: null, + validators: { + active: 0, + total: 0, + }, + }); + + // ==================================== + // block height + // ==================================== + + useLatestBlockHeightListenerSubscription({ + onData: (data) => { + setState((prevState) => ({ + ...prevState, + blockHeight: data.data.data?.height?.[0]?.height ?? 0, + })); + }, + }); + + // ==================================== + // block time + // ==================================== + useAverageBlockTimeQuery({ + onCompleted: (data) => { + setState((prevState) => ({ + ...prevState, + blockTime: formatAverageBlockTime(data, state), + })); + }, + }); + + // ==================================== + // token price + // ==================================== + useTokenPriceListenerSubscription({ + variables: { + denom: tokenUnits?.[primaryTokenUnit]?.display, + }, + onData: (data) => { + setState((prevState) => ({ + ...prevState, + price: data.data.data ? formatTokenPrice(data.data.data, state) : 0, + })); + }, + }); + + // ==================================== + // validators + // ==================================== + useActiveValidatorCountQuery({ + onCompleted: (data) => { + setState((prevState) => ({ + ...prevState, + validators: formatActiveValidatorsCount(data), + })); + }, + }); + + return { + state, + }; +}; diff --git a/apps/web-neutron/src/screens/home/components/hero/components/online_voting_power/hooks.ts b/apps/web-neutron/src/screens/home/components/hero/components/online_voting_power/hooks.ts new file mode 100644 index 0000000000..47c8c79d15 --- /dev/null +++ b/apps/web-neutron/src/screens/home/components/hero/components/online_voting_power/hooks.ts @@ -0,0 +1,60 @@ +import numeral from 'numeral'; +import * as R from 'ramda'; +import { useCallback, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { OnlineVotingPowerQuery, useOnlineVotingPowerQuery } from '@/graphql/types/provider_types'; +import { formatToken } from '@/utils/format_token'; + +const { votingPowerTokenUnit } = chainConfig(); + +type OnlineVotingPowerState = { + votingPower: number; + totalVotingPower: number; + activeValidators: number; +}; + +const initialState: OnlineVotingPowerState = { + votingPower: 0, + totalVotingPower: 0, + activeValidators: 0, +}; + +const formatOnlineVotingPower = (data: OnlineVotingPowerQuery) => { + const votingPower = + data?.bdjuno_provider?.validatorVotingPowerAggregate?.aggregate?.sum?.votingPower ?? 0; + const bonded = data?.bdjuno_provider?.stakingPool?.[0]?.bonded ?? 0; + const activeValidators = data?.bdjuno_provider?.activeTotal?.aggregate?.count ?? 0; + + return { + activeValidators, + votingPower, + totalVotingPower: numeral(formatToken(bonded, votingPowerTokenUnit).value).value() ?? 0, + }; +}; + +export const useOnlineVotingPower = () => { + const [state, setState] = useState(initialState); + + const handleSetState = useCallback( + (stateChange: (prevState: OnlineVotingPowerState) => OnlineVotingPowerState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, + [] + ); + + useOnlineVotingPowerQuery({ + onCompleted: (data) => { + handleSetState((prevState) => ({ + ...prevState, + ...formatOnlineVotingPower(data), + })); + }, + }); + + return { + state, + }; +}; diff --git a/apps/web-neutron/src/screens/home/components/tokenomics/hooks.ts b/apps/web-neutron/src/screens/home/components/tokenomics/hooks.ts new file mode 100644 index 0000000000..92eac07c63 --- /dev/null +++ b/apps/web-neutron/src/screens/home/components/tokenomics/hooks.ts @@ -0,0 +1,57 @@ +import numeral from 'numeral'; +import { useState } from 'react'; +import { TokenomicsQuery, useTokenomicsQuery } from '@/graphql/types/general_types'; +import { formatToken } from '@/utils/format_token'; +import chainConfig from '@/chainConfig'; + +type TokenomicsState = { + bonded: number; + unbonded: number; + unbonding: number; + total: number; + denom: string; +}; + +const formatTokenomics = (data: TokenomicsQuery, state: TokenomicsState) => { + const { primaryTokenUnit } = chainConfig(); + const results = { ...state }; + // const stakingParams = StakingParams.fromJson(data?.stakingParams?.[0]?.params ?? {}); + results.denom = primaryTokenUnit; + + const [total] = + (data?.supply?.[0]?.coins as MsgCoin[])?.filter((x) => x.denom === results.denom) ?? []; + if (total) { + results.total = numeral(formatToken(total.amount, total.denom).value).value() ?? 0; + } + + const { bonded } = state; + results.bonded = numeral(formatToken(bonded, results.denom).value).value() ?? 0; + + const unbonding = state.bonded; + results.unbonding = numeral(formatToken(unbonding, results.denom).value).value() ?? 0; + + const unbonded = results.total - results.unbonding - results.bonded; + results.unbonded = unbonded; + + return results; +}; + +export const useTokenomics = () => { + const [state, setState] = useState({ + bonded: 0, + unbonded: 0, + unbonding: 0, + total: 0, + denom: '', + }); + + useTokenomicsQuery({ + onCompleted: (data) => { + setState(formatTokenomics(data, state)); + }, + }); + + return { + state, + }; +}; diff --git a/apps/web-neutron/src/screens/params/hooks.ts b/apps/web-neutron/src/screens/params/hooks.ts new file mode 100644 index 0000000000..2bcb35330f --- /dev/null +++ b/apps/web-neutron/src/screens/params/hooks.ts @@ -0,0 +1,194 @@ +import numeral from 'numeral'; +import * as R from 'ramda'; +import { useCallback, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { ParamsQuery, useParamsQuery } from '@/graphql/types/provider_types'; +import { DistributionParams, GovParams, MintParams, SlashingParams, StakingParams } from '@/models'; +import type { ParamsState } from '@/screens/params/types'; +import { formatToken } from '@/utils/format_token'; +import CCVConsumerParams from '../../models/ccv_consumer_params'; + +const { primaryTokenUnit } = chainConfig(); + +const initialState: ParamsState = { + loading: true, + exists: true, + ccvConsumer: null, + staking: null, + slashing: null, + minting: null, + distribution: null, + gov: null, +}; + +// ================================ +// staking +// ================================ +const formatStaking = (data: ParamsQuery) => { + if (data.bdjuno_provider?.staking_params.length) { + const stakingParamsRaw = StakingParams.fromJson( + data?.bdjuno_provider?.staking_params?.[0]?.params ?? {} + ); + return { + bondDenom: stakingParamsRaw.bondDenom, + unbondingTime: stakingParamsRaw.unbondingTime, + maxEntries: stakingParamsRaw.maxEntries, + historicalEntries: stakingParamsRaw.historicalEntries, + maxValidators: stakingParamsRaw.maxValidators, + }; + } + + return null; +}; + +// ================================ +// slashing +// ================================ +const formatSlashing = (data: ParamsQuery) => { + if (data.bdjuno_provider?.staking_params.length) { + const slashingParamsRaw = SlashingParams.fromJson( + data?.bdjuno_provider?.staking_params?.[0]?.params ?? {} + ); + return { + downtimeJailDuration: slashingParamsRaw.downtimeJailDuration, + minSignedPerWindow: slashingParamsRaw.minSignedPerWindow, + signedBlockWindow: slashingParamsRaw.signedBlockWindow, + slashFractionDoubleSign: slashingParamsRaw.slashFractionDoubleSign, + slashFractionDowntime: slashingParamsRaw.slashFractionDowntime, + }; + } + return null; +}; + +// ================================ +// minting +// ================================ +const formatMint = (data: ParamsQuery) => { + if (data.bdjuno_provider?.mint_params.length) { + const mintParamsRaw = MintParams.fromJson( + data?.bdjuno_provider?.mint_params?.[0]?.params ?? {} + ); + + return { + blocksPerYear: mintParamsRaw.blocksPerYear, + goalBonded: mintParamsRaw.goalBonded, + inflationMax: mintParamsRaw.inflationMax, + inflationMin: mintParamsRaw.inflationMin, + inflationRateChange: mintParamsRaw.inflationRateChange, + mintDenom: mintParamsRaw.mintDenom, + }; + } + + return null; +}; + +// ================================ +// distribution +// ================================ + +const formatDistribution = (data: ParamsQuery) => { + if (data.bdjuno_provider?.distribution_params.length) { + const distributionParamsRaw = DistributionParams.fromJson( + data?.bdjuno_provider?.distribution_params?.[0]?.params ?? {} + ); + return { + baseProposerReward: distributionParamsRaw.baseProposerReward, + bonusProposerReward: distributionParamsRaw.bonusProposerReward, + communityTax: distributionParamsRaw.communityTax, + withdrawAddressEnabled: distributionParamsRaw.withdrawAddressEnabled, + }; + } + + return null; +}; + +// ================================ +// distribution +// ================================ + +const formatGov = (data: ParamsQuery) => { + if (data.bdjuno_provider?.gov_params.length) { + const govParamsRaw = GovParams.fromJson(data?.bdjuno_provider?.gov_params?.[0] ?? {}); + return { + minDeposit: formatToken( + govParamsRaw.depositParams.minDeposit?.[0]?.amount ?? 0, + govParamsRaw.depositParams.minDeposit?.[0]?.denom ?? primaryTokenUnit + ), + maxDepositPeriod: govParamsRaw.depositParams.maxDepositPeriod, + quorum: numeral(numeral(govParamsRaw.tallyParams.quorum).format('0.[00]')).value() ?? 0, + threshold: numeral(numeral(govParamsRaw.tallyParams.threshold).format('0.[00]')).value() ?? 0, + vetoThreshold: + numeral(numeral(govParamsRaw.tallyParams.vetoThreshold).format('0.[00]')).value() ?? 0, + votingPeriod: govParamsRaw.votingParams.votingPeriod, + }; + } + + return null; +}; + +const formatCCVConsumer = (data: ParamsQuery) => { + if (data?.ccv_consumer_params[0]?.params) { + const ccvConsumerParamsRaw = CCVConsumerParams(data?.ccv_consumer_params[0]?.params ?? {}); + return { + enabled: ccvConsumerParamsRaw.enabled, + unbondingPeriod: ccvConsumerParamsRaw.unbondingPeriod, + ccvTimeoutPeriod: ccvConsumerParamsRaw.ccvTimeoutPeriod, + historicalEntries: ccvConsumerParamsRaw.historicalEntries, + softOptOutThreshold: ccvConsumerParamsRaw.softOptOutThreshold, + transferTimeoutPeriod: ccvConsumerParamsRaw.transferTimeoutPeriod, + consumerRedistributionFraction: ccvConsumerParamsRaw.consumerRedistributionFraction, + blocksPerDistributionTransmission: ccvConsumerParamsRaw.blocksPerDistributionTransmission, + }; + } + + return null; +}; + +const formatParam = (data: ParamsQuery) => { + const results: Partial = {}; + + results.ccvConsumer = formatCCVConsumer(data); + + results.staking = formatStaking(data); + + results.slashing = formatSlashing(data); + + results.minting = formatMint(data); + + results.distribution = formatDistribution(data); + + results.gov = formatGov(data); + + return results; +}; + +export const useParams = () => { + const [state, setState] = useState(initialState); + + const handleSetState = useCallback((stateChange: (prevState: ParamsState) => ParamsState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, []); + + // ================================ + // param query + // ================================ + useParamsQuery({ + onCompleted: (data) => { + handleSetState((prevState) => ({ + ...prevState, + loading: false, + ...formatParam(data), + })); + }, + onError: () => { + handleSetState((prevState) => ({ ...prevState, loading: false })); + }, + }); + + return { + state, + }; +}; diff --git a/apps/web-neutron/src/screens/params/index.tsx b/apps/web-neutron/src/screens/params/index.tsx new file mode 100644 index 0000000000..39077de3da --- /dev/null +++ b/apps/web-neutron/src/screens/params/index.tsx @@ -0,0 +1,87 @@ +import { NextSeo } from 'next-seo'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import BoxDetails from '@/components/box_details'; +import Layout from '@/components/layout'; +import LoadAndExist from '@/components/load_and_exist'; +import { useParams } from '@/screens/params/hooks'; +import useStyles from '@/screens/params/styles'; +import { + formatDistribution, + formatGov, + formatMinting, + formatSlashing, + formatStaking, + formatCCVConsumer, +} from '@/screens/params/utils'; + +const Params = () => { + const { t } = useAppTranslation('params'); + const { classes } = useStyles(); + const { state } = useParams(); + + const staking = state.staking + ? { + title: t('staking') ?? undefined, + details: formatStaking(state.staking, t), + } + : null; + + const slashing = state.slashing + ? { + title: t('slashing') ?? undefined, + details: formatSlashing(state.slashing, t), + } + : null; + + const minting = state.minting + ? { + title: t('minting') ?? undefined, + details: formatMinting(state.minting, t), + } + : null; + + const distribution = state.distribution + ? { + title: t('distribution') ?? undefined, + details: formatDistribution(state.distribution, t), + } + : null; + + const gov = state.gov + ? { + title: t('gov') ?? undefined, + details: formatGov(state.gov, t), + } + : null; + + const ccvConsumer = state.ccvConsumer + ? { + title: t('CCVConsumer') ?? undefined, + details: formatCCVConsumer(state.ccvConsumer, t), + } + : null; + return ( + <> + + + + + {staking && } + {slashing && } + {minting && } + {distribution && } + {gov && } + {ccvConsumer && } + + + + + ); +}; + +export default Params; diff --git a/apps/web-neutron/src/screens/params/types.ts b/apps/web-neutron/src/screens/params/types.ts new file mode 100644 index 0000000000..c38d28780c --- /dev/null +++ b/apps/web-neutron/src/screens/params/types.ts @@ -0,0 +1,62 @@ +export interface Staking { + bondDenom: string; + unbondingTime: number; + maxEntries: number; + historicalEntries: number; + maxValidators: number; +} + +export interface Slashing { + downtimeJailDuration: number; + minSignedPerWindow: number; + signedBlockWindow: number; + slashFractionDoubleSign: number; + slashFractionDowntime: number; +} + +export interface Minting { + blocksPerYear: number; + goalBonded: number; + inflationMax: number; + inflationMin: number; + inflationRateChange: number; + mintDenom: string; +} + +export interface Distribution { + baseProposerReward: number; + bonusProposerReward: number; + communityTax: number; + withdrawAddressEnabled: boolean; +} + +export interface Gov { + minDeposit: TokenUnit; + maxDepositPeriod: number; + quorum: number; + threshold: number; + vetoThreshold: number; + votingPeriod: number; +} + +export interface CCVConsumer { + enabled: boolean; + unbondingPeriod: number; + ccvTimeoutPeriod: number; + historicalEntries: number; + softOptOutThreshold: string; + transferTimeoutPeriod: number; + consumerRedistributionFraction: string; + blocksPerDistributionTransmission: number; +} + +export interface ParamsState { + loading: boolean; + exists: boolean; + ccvConsumer: CCVConsumer | null; + staking: Staking | null; + slashing: Slashing | null; + minting: Minting | null; + distribution: Distribution | null; + gov: Gov | null; +} diff --git a/apps/web-neutron/src/screens/params/utils.tsx b/apps/web-neutron/src/screens/params/utils.tsx new file mode 100644 index 0000000000..33d7059b98 --- /dev/null +++ b/apps/web-neutron/src/screens/params/utils.tsx @@ -0,0 +1,207 @@ +import type { + CCVConsumer, + Distribution, + Gov, + Minting, + Slashing, + Staking, +} from '@/screens/params/types'; +import { nanoToSeconds, secondsToDays } from '@/utils/time'; +import type { TFunction } from '@/hooks/useAppTranslation'; +import numeral from 'numeral'; + +const convertBySeconds = (seconds: number, t: TFunction) => { + const SECONDS_IN_DAY = 86400; + return seconds >= SECONDS_IN_DAY + ? t('days', { + day: secondsToDays(seconds), + }) + : t('seconds', { + second: seconds, + }); +}; + +export const formatStaking = (data: Staking, t: TFunction) => [ + { + key: 'bondDenom', + label: t('bondDenom'), + detail: data.bondDenom, + }, + { + key: 'unbondingTime', + label: t('unbondingTime'), + detail: convertBySeconds(nanoToSeconds(data.unbondingTime), t), + }, + { + key: 'maxEntries', + label: t('maxEntries'), + detail: numeral(data.maxEntries).format('0,0'), + }, + { + key: 'historicalEntries', + label: t('historicalEntries'), + detail: numeral(data.historicalEntries).format('0,0'), + }, + { + key: 'maxValidators', + label: t('maxValidators'), + detail: numeral(data.maxValidators).format('0,0'), + }, +]; + +export const formatSlashing = (data: Slashing, t: TFunction) => [ + { + key: 'downtimeJailDuration', + label: t('downtimeJailDuration'), + detail: t('seconds', { + second: numeral(nanoToSeconds(data.downtimeJailDuration)).format('0,0'), + }), + }, + { + key: 'minSignedPerWindow', + label: t('minSignedPerWindow'), + detail: `${numeral(data.minSignedPerWindow * 100).format('0.[00]')}%`, + }, + { + key: 'signedBlockWindow', + label: t('signedBlockWindow'), + detail: numeral(data.signedBlockWindow).format('0,0'), + }, + { + key: 'slashFractionDoubleSign', + label: t('slashFractionDoubleSign'), + detail: `${data.slashFractionDoubleSign * 100} / 100`, + }, + { + key: 'slashFractionDowntime', + label: t('slashFractionDowntime'), + detail: `${data.slashFractionDowntime * 10000} / ${numeral(10000).format('0,0')}`, + }, +]; + +export const formatMinting = (data: Minting, t: TFunction) => [ + { + key: 'blocksPerYear', + label: t('blocksPerYear'), + detail: numeral(data.blocksPerYear).format('0,0'), + }, + { + key: 'goalBonded', + label: t('goalBonded'), + detail: `${numeral(data.goalBonded * 100).format('0.[00]')}%`, + }, + { + key: 'inflationMax', + label: t('inflationMax'), + detail: `${numeral(data.inflationMax * 100).format('0.[00]')}%`, + }, + { + key: 'inflationMin', + label: t('inflationMin'), + detail: `${numeral(data.inflationMin * 100).format('0.[00]')}%`, + }, + { + key: 'inflationRateChange', + label: t('inflationRateChange'), + detail: `${numeral(data.inflationRateChange * 100).format('0.[00]')}%`, + }, + { + key: 'mintDenom', + label: t('mintDenom'), + detail: data.mintDenom, + }, +]; + +export const formatDistribution = (data: Distribution, t: TFunction) => [ + { + key: 'baseProposerReward', + label: t('baseProposerReward'), + detail: `${numeral(data.baseProposerReward * 100).format('0.[00]')}%`, + }, + { + key: 'bonusProposerReward', + label: t('bonusProposerReward'), + detail: `${numeral(data.bonusProposerReward * 100).format('0.[00]')}%`, + }, + { + key: 'communityTax', + label: t('communityTax'), + detail: `${numeral(data.communityTax * 100).format('0.[00]')}%`, + }, + { + key: 'withdrawAddressEnabled', + label: t('withdrawAddressEnabled'), + detail: `${data.withdrawAddressEnabled}`.toUpperCase(), + }, +]; + +export const formatGov = (data: Gov, t: TFunction) => [ + { + key: 'minDeposit', + label: t('minDeposit'), + detail: `${data.minDeposit.value} ${data.minDeposit.displayDenom.toUpperCase()}`, + }, + { + key: 'maxDepositPeriod', + label: t('maxDepositPeriod'), + detail: convertBySeconds(nanoToSeconds(data.maxDepositPeriod), t), + }, + { + key: 'quorum', + label: t('quorum'), + detail: `${numeral(data.quorum * 100).format('0.[00]')}%`, + }, + { + key: 'threshold', + label: t('threshold'), + detail: `${numeral(data.threshold * 100).format('0.[00]')}%`, + }, + { + key: 'vetoThreshold', + label: t('vetoThreshold'), + detail: `${numeral(data.vetoThreshold * 100).format('0.[00]')}%`, + }, + { + key: 'votingPeriod', + label: t('votingPeriod'), + detail: convertBySeconds(nanoToSeconds(data.votingPeriod), t), + }, +]; + +export const formatCCVConsumer = (data: CCVConsumer, t: TFunction) => [ + { + key: 'unbondingPeriod', + label: t('unbondingPeriod'), + detail: convertBySeconds(nanoToSeconds(data.unbondingPeriod), t), + }, + { + key: 'ccvTimeoutPeriod', + label: t('ccvTimeoutPeriod'), + detail: convertBySeconds(nanoToSeconds(data.ccvTimeoutPeriod), t), + }, + { + key: 'historicalEntries', + label: t('historicalEntries'), + detail: numeral(data.historicalEntries).format('0,0'), + }, + { + key: 'softOptOutThreshold', + label: t('softOptOutThreshold'), + detail: data.softOptOutThreshold, + }, + { + key: 'transferTimeoutPeriod', + label: t('transferTimeoutPeriod'), + detail: convertBySeconds(nanoToSeconds(data.transferTimeoutPeriod), t), + }, + { + key: 'consumerRedistributionFraction', + label: t('consumerRedistributionFraction'), + detail: data.consumerRedistributionFraction, + }, + { + key: 'blocksPerDistributionTransmission', + label: t('blocksPerDistributionTransmission'), + detail: numeral(data.blocksPerDistributionTransmission).format('0,0'), + }, +]; diff --git a/apps/web-neutron/src/screens/validator_details/components/blocks/hooks.ts b/apps/web-neutron/src/screens/validator_details/components/blocks/hooks.ts new file mode 100644 index 0000000000..88db99c252 --- /dev/null +++ b/apps/web-neutron/src/screens/validator_details/components/blocks/hooks.ts @@ -0,0 +1,42 @@ +import { useRouter } from 'next/router'; +import { useState } from 'react'; +import { + LastHundredBlocksSubscription, + useLastHundredBlocksSubscription, +} from '@/graphql/types/provider_types'; + +const formatLastHundredBlocks = (data: LastHundredBlocksSubscription) => + data.block.map((x) => ({ + height: x.height, + txs: x.transactions.length, + proposer: x.ccv_validator?.validator?.validatorInfo?.operatorAddress ?? '', + signed: x.precommits.length === 1, + })); + +type BlocksState = { + height: number; + txs: number; + proposer: string; + signed: boolean; +}[]; + +export const useBlocks = (address?: string) => { + const [state, setState] = useState([]); + + const router = useRouter(); + + const { loading } = useLastHundredBlocksSubscription({ + variables: { + address: address ?? (router?.query?.address as string) ?? '', + }, + onData: (data) => { + if (!data.data.data) return; + setState(formatLastHundredBlocks(data.data.data)); + }, + }); + + return { + state, + loading, + }; +}; diff --git a/apps/web-neutron/src/screens/validator_details/components/profile/index.tsx b/apps/web-neutron/src/screens/validator_details/components/profile/index.tsx new file mode 100644 index 0000000000..fa6c081b0a --- /dev/null +++ b/apps/web-neutron/src/screens/validator_details/components/profile/index.tsx @@ -0,0 +1,86 @@ +import Avatar from '@/components/avatar'; +import Box from '@/components/box'; +import Markdown from '@/components/markdown'; +import { useProfileRecoil } from '@/recoil/profiles/hooks'; +import useStyles from '@/screens/validator_details/components/profile/styles'; +import type { OverviewType } from '@/screens/validator_details/types'; +import { useDisplayStyles } from '@/styles/useSharedStyles'; +import Divider from '@mui/material/Divider'; +import Typography from '@mui/material/Typography'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import { FC } from 'react'; +import useConsumerCustomValidator from '@/hooks/useConsumerCustomValidator'; + +const Profile: FC<{ className?: string; profile: OverviewType }> = ({ className, profile }) => { + const { classes, cx } = useStyles(); + const display = useDisplayStyles().classes; + const { t } = useAppTranslation('validators'); + const { imageUrl, name } = useProfileRecoil(profile.validator); + + const pattern = /^((http|https|ftp):\/\/)/; + let { website } = profile; + + if (!pattern.test(profile.website)) { + website = `//${profile.website}`; + } + + useConsumerCustomValidator(profile.operatorAddress); // this one good + + return ( + +
+ +
+
+ {/* ======================== */} + {/* hiddenWhenLg header */} + {/* ======================== */} +
+ +
+ {name} +
+
+
+ {/* ======================== */} + {/* bio */} + {/* ======================== */} + {profile.description && ( +
+ +
+ )} +
+
+ + +
+
+ + {t('website')} + + + {profile.website} + +
+
+
+ ); +}; + +export default Profile; diff --git a/apps/web-neutron/src/screens/validator_details/components/staking/hooks.ts b/apps/web-neutron/src/screens/validator_details/components/staking/hooks.ts new file mode 100644 index 0000000000..2399173cb2 --- /dev/null +++ b/apps/web-neutron/src/screens/validator_details/components/staking/hooks.ts @@ -0,0 +1,285 @@ +import Big from 'big.js'; +import { useRouter } from 'next/router'; +import * as R from 'ramda'; +import { SyntheticEvent, useCallback, useEffect, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { + useValidatorDelegationsQuery, + useValidatorRedelegationsQuery, + useValidatorUndelegationsQuery, + ValidatorDelegationsQuery, +} from '@/graphql/types/provider_types'; +import type { + DelegationType, + RedelegationType, + StakingState, + UnbondingType, +} from '@/screens/validator_details/components/staking/types'; +import { getDenom } from '@/utils/get_denom'; +import { + Delegations, + Redelegations, + Undelegations, +} from '@/screens/validator_details/components/staking/types'; +import { formatProviderToken } from '../../../../utils/format_provider_token'; + +const provider = chainConfig(); +export const ROWS_PER_PAGE = 10; + +export const formatDelegations = (data: Delegations[]) => + data + .map((x): UnbondingType => { + const address = R.pathOr('', ['delegator_address'], x); + const delegation = getDenom(x.coins, provider.primaryTokenUnit); + return { + address, + amount: formatProviderToken(delegation.amount, delegation.denom), + }; + }) + .sort(R.comparator((a, b) => Big(a.amount?.value).gt(b.amount?.value))); + +export const formatRedelegations = (data: Redelegations[]) => { + const results: RedelegationType[] = []; + data.forEach((x) => { + R.pathOr>([], ['entries'], x).forEach((y) => { + results.push({ + address: x?.delegator_address ?? '', + to: x?.validator_dst_address ?? '', + amount: formatProviderToken(y.balance, provider.primaryTokenUnit), + completionTime: R.pathOr('', ['completion_time'], y), + }); + }); + }); + results.sort(R.comparator((a, b) => a.completionTime < b.completionTime)); + + return results; +}; + +export const formatUnbondings = (data: Undelegations[]) => { + const results: UnbondingType[] = []; + data.forEach((x) => { + x?.entries?.forEach((y) => { + results.push({ + address: R.pathOr('', ['delegator_address'], x), + amount: formatProviderToken(y.balance, provider.primaryTokenUnit), + completionTime: R.pathOr('', ['completion_time'], y), + }); + }); + }); + + results.sort((a, b) => ((a.completionTime ?? '') < (b.completionTime ?? '') ? -1 : 1)); + + return results; +}; + +export const useStaking = ( + delegationsPage: number, + redelegationsPage: number, + unbondingsPage: number, + address?: string +) => { + const router = useRouter(); + const [state, setState] = useState({ + tab: 0, + }); + const validatorAddress = + address || + (Array.isArray(router?.query?.address) + ? router.query.address[0] + : router?.query?.address ?? ''); + + // ===================================== + // delegations + // ===================================== + const { + data: delegationsData, + loading: delegationsLoading, + error: delegationsError, + refetch: delegationsRefetch, + } = useValidatorDelegationsQuery({ + variables: { + validatorAddress, + limit: ROWS_PER_PAGE, + offset: delegationsPage * ROWS_PER_PAGE, + pagination: false, + }, + }); + + useEffect(() => { + if (delegationsLoading) return; + if (delegationsError) { + delegationsRefetch({ pagination: false }); + } + }, [delegationsError, delegationsLoading, delegationsRefetch]); + useValidatorDelegationsQuery({ + variables: { + validatorAddress, + limit: ROWS_PER_PAGE, + offset: (delegationsPage + 1) * ROWS_PER_PAGE, + pagination: false, + }, + }); + + const [delegationsPagination, setDelegationsPagination] = useState(); + const { + data: dData, + error: dError, + refetch: dRefetch, + }: { data?: ValidatorDelegationsQuery; error?: any; refetch: any } = useValidatorDelegationsQuery( + { + variables: { + validatorAddress, + limit: 0, + offset: 0, + pagination: true, + }, + skip: delegationsPagination !== undefined, + } + ); + useEffect(() => { + if (dError) { + dRefetch(); + } else if (dData) { + setDelegationsPagination(dData?.bdjuno_provider?.delegations?.pagination?.total ?? 0); + } + }, [dData, dError, dRefetch]); + + // ===================================== + // redelegations + // ===================================== + const { + data: redelegationsData, + loading: redelegationsLoading, + error: redelegationsError, + refetch: redelegationsRefetch, + } = useValidatorRedelegationsQuery({ + variables: { + validatorAddress, + limit: ROWS_PER_PAGE, + offset: redelegationsPage * ROWS_PER_PAGE, + }, + }); + useEffect(() => { + if (redelegationsLoading) return; + if (redelegationsError) { + redelegationsRefetch({ pagination: false }); + } + }, [redelegationsError, redelegationsLoading, redelegationsRefetch]); + useValidatorRedelegationsQuery({ + variables: { + validatorAddress, + limit: ROWS_PER_PAGE, + offset: (redelegationsPage + 1) * ROWS_PER_PAGE, + }, + }); + + const [redelegationsPagination, setRedelegationsPagination] = useState(); + const { + data: rData, + error: rError, + refetch: rRefetch, + } = useValidatorRedelegationsQuery({ + variables: { + validatorAddress, + limit: 0, + offset: 0, + pagination: true, + }, + skip: redelegationsPagination !== undefined, + }); + useEffect(() => { + if (rError) { + rRefetch(); + } else if (rData) { + setRedelegationsPagination(rData?.bdjuno_provider?.redelegations?.pagination?.total ?? 0); + } + }, [rData, rError, rRefetch]); + + // ===================================== + // unbondings + // ===================================== + const { + data: undelegationsData, + loading: undelegationsLoading, + error: undelegationsError, + refetch: undelegationsRefetch, + } = useValidatorUndelegationsQuery({ + variables: { + validatorAddress, + limit: ROWS_PER_PAGE, + offset: unbondingsPage * ROWS_PER_PAGE, + }, + }); + useEffect(() => { + if (undelegationsLoading) return; + if (undelegationsError) { + undelegationsRefetch({ pagination: false }); + } + }, [undelegationsError, undelegationsLoading, undelegationsRefetch]); + useValidatorUndelegationsQuery({ + variables: { + validatorAddress, + limit: ROWS_PER_PAGE, + offset: (unbondingsPage + 1) * ROWS_PER_PAGE, + }, + }); + + const [undelegationsPagination, setUndelegationsPagination] = useState(); + const { + data: uData, + error: uError, + refetch: uRefetch, + } = useValidatorUndelegationsQuery({ + variables: { + validatorAddress, + limit: 0, + offset: 0, + pagination: true, + }, + skip: undelegationsPagination !== undefined, + }); + useEffect(() => { + if (uError) { + uRefetch(); + } else if (uData) { + setUndelegationsPagination(uData?.bdjuno_provider?.undelegations?.pagination?.total ?? 0); + } + }, [uData, uError, uRefetch]); + + const handleTabChange = useCallback( + (_event: SyntheticEvent, newValue: number) => { + setState((prevState) => { + const newState = { ...prevState, tab: newValue }; + return R.equals(newState, prevState) ? prevState : newState; + }); + }, + [] + ); + + return { + state, + delegations: { + loading: delegationsLoading, + count: delegationsPagination, + data: formatDelegations(delegationsData?.bdjuno_provider?.delegations?.delegations ?? []), + error: delegationsError, + }, + redelegations: { + loading: redelegationsLoading, + count: redelegationsPagination, + data: formatRedelegations( + redelegationsData?.bdjuno_provider?.redelegations?.redelegations ?? [] + ), + error: redelegationsError, + }, + unbondings: { + loading: undelegationsLoading, + count: undelegationsPagination, + data: formatUnbondings( + undelegationsData?.bdjuno_provider?.undelegations?.undelegations ?? [] + ), + error: undelegationsError, + }, + handleTabChange, + }; +}; diff --git a/apps/web-neutron/src/screens/validator_details/hooks.ts b/apps/web-neutron/src/screens/validator_details/hooks.ts new file mode 100644 index 0000000000..dc43151814 --- /dev/null +++ b/apps/web-neutron/src/screens/validator_details/hooks.ts @@ -0,0 +1,176 @@ +import { useRouter } from 'next/router'; +import * as R from 'ramda'; +import { useCallback, useEffect, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { useValidatorDetailsQuery, ValidatorDetailsQuery } from '@/graphql/types/provider_types'; +import { useDesmosProfile } from '@/hooks/use_desmos_profile'; +import { SlashingParams } from '@/models'; +import { StatusType, ValidatorDetailsState } from '@/screens/validator_details/types'; +import { formatToken } from '@/utils/format_token'; +import { getValidatorCondition } from '@/utils/get_validator_condition'; + +const { extra, votingPowerTokenUnit } = chainConfig(); + +const initialTokenDenom: TokenUnit = { + value: '0', + displayDenom: '', + baseDenom: '', + exponent: 0, +}; + +const initialState: ValidatorDetailsState = { + exists: true, + desmosProfile: null, + cosmosAddress: '', + overview: { + validator: '', + operatorAddress: '', + selfDelegateAddress: '', + description: '', + website: '', + }, + status: { + status: 0, + jailed: false, + tombstoned: false, + condition: 0, + commission: 0, + missedBlockCounter: 0, + signedBlockWindow: 0, + maxRate: '0', + }, + votingPower: { + height: 0, + overall: initialTokenDenom, + self: 0, + }, +}; + +// ============================ +// overview +// ============================ +const formatOverview = (data: ValidatorDetailsQuery) => { + const operatorAddress = data?.ccv_validator?.[0]?.consumer_operator_address ?? ''; + const selfDelegateAddress = data?.ccv_validator?.[0]?.consumer_self_delegate_address ?? ''; + const profile = { + validator: operatorAddress, + operatorAddress, + selfDelegateAddress, + description: + data?.ccv_validator?.[0]?.ccv_validator_info?.validator?.validatorDescriptions?.[0] + ?.details ?? '', + website: + data?.ccv_validator?.[0]?.ccv_validator_info?.validator?.validatorDescriptions?.[0] + ?.website ?? '', + }; + + return profile; +}; + +// ============================ +// status +// ============================ +const formatStatus = (data: ValidatorDetailsQuery) => { + const slashingParams = SlashingParams.fromJson( + data?.bdjuno_provider?.slashingParams?.[0]?.params ?? {} + ); + const validator = data?.ccv_validator?.[0]?.ccv_validator_info?.validator; + const missedBlockCounter = validator?.validatorSigningInfos?.[0]?.missedBlocksCounter ?? 0; + const { signedBlockWindow } = slashingParams; + const condition = getValidatorCondition(signedBlockWindow, missedBlockCounter); + + const profile: StatusType = { + status: validator?.validatorStatuses?.[0]?.status ?? 3, + jailed: validator?.validatorStatuses?.[0]?.jailed ?? false, + tombstoned: validator?.validatorSigningInfos?.[0]?.tombstoned ?? false, + commission: validator?.validatorCommissions?.[0]?.commission ?? 0, + condition, + missedBlockCounter, + signedBlockWindow, + maxRate: validator?.validatorInfo?.maxRate ?? '0', + }; + + return profile; +}; + +// ============================ +// votingPower +// ============================ +const formatVotingPower = (data: ValidatorDetailsQuery) => { + const validator = data?.ccv_validator?.[0]?.ccv_validator_info?.validator; + const selfVotingPower = + (validator?.validatorVotingPowers?.[0]?.votingPower ?? 0) / + 10 ** (extra.votingPowerExponent ?? 0); + + const votingPower = { + self: selfVotingPower, + overall: formatToken( + data?.bdjuno_provider?.stakingPool?.[0]?.bonded ?? 0, + votingPowerTokenUnit + ), + height: validator?.validatorVotingPowers?.[0]?.height ?? 0, + }; + + return votingPower; +}; + +export const useValidatorDetails = () => { + const router = useRouter(); + const [state, setState] = useState(initialState); + + const handleSetState = useCallback( + (stateChange: (prevState: ValidatorDetailsState) => ValidatorDetailsState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, + [] + ); + + // ========================== + // Fetch Data + // ========================== + const { loading } = useValidatorDetailsQuery({ + variables: { + address: router.query.address as string, + }, + onCompleted: (data) => { + handleSetState((prevState) => ({ ...prevState, ...formatAccountQuery(data) })); + }, + }); + + // ========================== + // Desmos Profile + // ========================== + const { data: dataDesmosProfile, loading: loadingDesmosProfile } = useDesmosProfile({ + addresses: [state.overview.selfDelegateAddress], + skip: !extra.profile || !state.overview.selfDelegateAddress, + }); + useEffect( + () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), + [dataDesmosProfile] + ); + + return { state, loading: loading || loadingDesmosProfile }; +}; + +function formatAccountQuery(data: ValidatorDetailsQuery): Partial { + const stateChange: Partial = {}; + const validator = data?.ccv_validator?.[0]?.ccv_validator_info?.validator; + const cosmosAddress = + data?.ccv_validator?.[0]?.ccv_validator_info?.validator?.validatorInfo?.operatorAddress ?? ''; + + if (!validator) { + stateChange.exists = false; + return stateChange; + } + + stateChange.overview = formatOverview(data); + + stateChange.status = formatStatus(data); + stateChange.votingPower = formatVotingPower(data); + stateChange.cosmosAddress = cosmosAddress; + + return stateChange; +} diff --git a/apps/web-neutron/src/screens/validators/components/list/hooks.ts b/apps/web-neutron/src/screens/validators/components/list/hooks.ts new file mode 100644 index 0000000000..6608e88ebb --- /dev/null +++ b/apps/web-neutron/src/screens/validators/components/list/hooks.ts @@ -0,0 +1,238 @@ +import Big from 'big.js'; +import numeral from 'numeral'; +import * as R from 'ramda'; +import { SyntheticEvent, useCallback, useEffect, useState } from 'react'; +import { SlashingParams } from '@/models'; +import chainConfig from '@/chainConfig'; +import { useValidatorsQuery, ValidatorsQuery } from '@/graphql/types/general_types'; +import type { + ItemType, + ValidatorsState, + ValidatorType, +} from '@/screens/validators/components/list/types'; +import { formatToken } from '@/utils/format_token'; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +import { getValidatorCondition } from '@/utils/get_validator_condition'; +import { useOnlineVotingPowerQuery } from '@/graphql/types/provider_types'; + +const { extra, votingPowerTokenUnit } = chainConfig(); + +// ========================== +// Parse data +// ========================== +const formatValidators = ({ + data, + bonded, +}: { + data: ValidatorsQuery; + bonded: string; +}): Partial => { + const slashingParams = SlashingParams.fromJson( + data?.bdjuno_provider?.slashingParams?.[0]?.params ?? {} + ); + const votingPowerOverall = numeral(formatToken(bonded, votingPowerTokenUnit).value).value() ?? 0; + + const { signedBlockWindow } = slashingParams; + + let formattedItems: ValidatorType[] = data.ccv_validator + .filter((x) => x?.validator?.validatorInfo) + .map((x) => { + const votingPower = + (x?.validator?.validatorVotingPowers?.[0]?.votingPower ?? 0) / + 10 ** (extra.votingPowerExponent ?? 0); + const votingPowerPercent = votingPowerOverall + ? numeral((votingPower / votingPowerOverall) * 100).value() + : 0; + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const missedBlockCounter = x?.validator?.validatorSigningInfos?.[0]?.missedBlocksCounter ?? 0; + const condition = getValidatorCondition(signedBlockWindow, missedBlockCounter); + + return { + consumerOperatorAddress: x.consumer_operator_address ?? '', + validator: x.validator?.validatorInfo?.operatorAddress ?? '', + votingPower: votingPower ?? 0, + votingPowerPercent: votingPowerPercent ?? 0, + commission: (x?.validator?.validatorCommissions?.[0]?.commission ?? 0) * 100, + condition, + status: x?.validator?.validatorStatuses?.[0]?.status ?? 0, + jailed: x?.validator?.validatorStatuses?.[0]?.jailed ?? false, + tombstoned: x?.validator?.validatorSigningInfos?.[0]?.tombstoned ?? false, + }; + }); + + // get the top 34% validators + formattedItems = formattedItems.sort((a, b) => (a.votingPower > b.votingPower ? -1 : 1)); + + // add key to indicate they are part of top 34% + let cumulativeVotingPower = Big(0); + let reached = false; + formattedItems.forEach((x) => { + if (x.status === 3) { + const totalVp = cumulativeVotingPower.add(x.votingPowerPercent); + if (totalVp.lte(34) && !reached) { + x.topVotingPower = true; + } + + if (totalVp.gt(34) && !reached) { + x.topVotingPower = true; + reached = true; + } + + cumulativeVotingPower = totalVp; + } + }); + + return { + votingPowerOverall, + items: formattedItems, + }; +}; + +export const useValidators = () => { + const [search, setSearch] = useState(''); + const [bonded, setBonded] = useState('0'); + const [valData, setValData] = useState(null); + const [state, setState] = useState({ + loading: true, + exists: true, + items: [], + votingPowerOverall: 0, + tab: 0, + sortKey: 'validator.name', + sortDirection: 'asc', + }); + + const handleSetState = useCallback( + (stateChange: (prevState: ValidatorsState) => ValidatorsState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, + [] + ); + + // ========================== + // Fetch Data + // ========================== + const { data: totalVotingPower } = useOnlineVotingPowerQuery(); + + useEffect(() => { + if (totalVotingPower?.bdjuno_provider && valData !== null) { + const tokens = totalVotingPower?.bdjuno_provider.stakingPool[0].bonded; + setBonded(tokens); + handleSetState((prevState) => ({ + ...prevState, + loading: false, + ...formatValidators({ data: valData, bonded }), + })); + } + }, [bonded, handleSetState, totalVotingPower, valData]); + + useValidatorsQuery({ + onCompleted: (data) => { + setValData(data); + handleSetState((prevState) => ({ + ...prevState, + loading: false, + ...formatValidators({ data, bonded }), + })); + }, + onError: () => { + handleSetState((prevState) => ({ + ...prevState, + loading: false, + exists: false, + })); + }, + }); + + const handleTabChange = useCallback( + (_event: SyntheticEvent, newValue: number) => { + setState((prevState) => ({ + ...prevState, + tab: newValue, + })); + }, + [] + ); + + const handleSort = useCallback( + (key: string) => { + if (key === state.sortKey) { + setState((prevState) => ({ + ...prevState, + sortDirection: prevState.sortDirection === 'asc' ? 'desc' : 'asc', + })); + } else { + setState((prevState) => ({ + ...prevState, + sortKey: key, + sortDirection: 'asc', // new key so we start the sort by asc + })); + } + }, + [state.sortKey] + ); + + const handleSearch = useCallback((value: string) => { + setSearch(value); + }, []); + + const sortItems = useCallback( + (items: ItemType[]) => { + let sorted: ItemType[] = R.clone(items); + + if (state.tab === 0) { + sorted = sorted.filter((x) => x.status === 3); + } + + if (state.tab === 1) { + sorted = sorted.filter((x) => x.status !== 3); + } + + if (search) { + sorted = sorted.filter((x) => { + const formattedSearch = search.toLowerCase().replace(/ /g, ''); + return ( + x.validator.name.toLowerCase().replace(/ /g, '').includes(formattedSearch) || + x.validator.address.toLowerCase().includes(formattedSearch) + ); + }); + } + + if (state.sortKey && state.sortDirection) { + sorted.sort((a, b) => { + let compareA = R.pathOr('', [...state.sortKey.split('.')], a); + let compareB = R.pathOr('', [...state.sortKey.split('.')], b); + + if (typeof compareA === 'string' && typeof compareB === 'string') { + compareA = compareA.toLowerCase(); + compareB = compareB.toLowerCase(); + } + + if (compareA < compareB) { + return state.sortDirection === 'asc' ? -1 : 1; + } + if (compareA > compareB) { + return state.sortDirection === 'asc' ? 1 : -1; + } + return 0; + }); + } + + return sorted; + }, + [search, state.sortDirection, state.sortKey, state.tab] + ); + + return { + state, + handleTabChange, + handleSort, + handleSearch, + sortItems, + search, + }; +}; diff --git a/apps/web-neutron/src/screens/validators/components/list/index.tsx b/apps/web-neutron/src/screens/validators/components/list/index.tsx new file mode 100644 index 0000000000..f1f88e20b5 --- /dev/null +++ b/apps/web-neutron/src/screens/validators/components/list/index.tsx @@ -0,0 +1,79 @@ +import { FC, ReactNode, useMemo } from 'react'; +import Box from '@/components/box'; +import LoadAndExist from '@/components/load_and_exist'; +import NoData from '@/components/no_data'; +import useShallowMemo from '@/hooks/useShallowMemo'; +import { useProfilesRecoil } from '@/recoil/profiles/hooks'; +import Desktop from '@/screens/validators/components/list/components/desktop'; +import Mobile from '@/screens/validators/components/list/components/mobile'; +import Tabs from '@/screens/validators/components/list/components/tabs'; +import { useValidators } from '@/screens/validators/components/list/hooks'; +import useStyles from '@/screens/validators/components/list/styles'; +import { useDisplayStyles } from '@/styles/useSharedStyles'; +import { useValidatorAddressesQuery } from '@/graphql/types/provider_types'; + +const List: FC = ({ className }) => { + const { classes, cx } = useStyles(); + const display = useDisplayStyles().classes; + const { state, handleTabChange, handleSearch, handleSort, sortItems, search } = useValidators(); + const validatorsMemo = useShallowMemo(state.items.map((x) => x.validator)); + const { profiles: _dataProfiles, loading } = useProfilesRecoil(validatorsMemo); + const { data } = useValidatorAddressesQuery(); + + const monikerMap = new Map(); + data?.ccv_validator.forEach((validator: any) => { + monikerMap.set(validator.provider_operator_address, [ + validator.validator.validatorDescriptions[0].moniker, + validator.validator.validatorDescriptions[0].avatarUrl, + ]); + }); + + const avatarNames: AvatarName[] = validatorsMemo.map((address, i) => { + const [moniker, avatarUrl] = monikerMap.get(address) || ['', '']; + return { + address: state.items[i].consumerOperatorAddress, + name: moniker, + imageUrl: avatarUrl, + }; + }); + + const items = useMemo( + () => sortItems(state.items.map((x, i) => ({ ...x, validator: avatarNames?.[i] }))), + [sortItems, state.items, avatarNames] + ); + + let list: ReactNode; + + if (!items.length) { + list = ; + } else { + list = ( + <> + + + + ); + } + + return ( + + + +
{list}
+
+
+ ); +}; + +export default List; diff --git a/apps/web-neutron/src/screens/validators/components/list/types.ts b/apps/web-neutron/src/screens/validators/components/list/types.ts new file mode 100644 index 0000000000..7cfd4a39a7 --- /dev/null +++ b/apps/web-neutron/src/screens/validators/components/list/types.ts @@ -0,0 +1,15 @@ +import { + ValidatorType as ValidatorTypeBase, + ValidatorsState as ValidatorsStateBase, + ItemType, +} from 'ui/src/screens/validators/components/list/types'; + +type ValidatorType = ValidatorTypeBase & { + consumerOperatorAddress: string; +}; + +type ValidatorsState = Omit & { + items: ValidatorType[]; +}; + +export type { ItemType, ValidatorType, ValidatorsState }; diff --git a/apps/web-neutron/src/utils/format_provider_token/index.ts b/apps/web-neutron/src/utils/format_provider_token/index.ts new file mode 100644 index 0000000000..d361b350f4 --- /dev/null +++ b/apps/web-neutron/src/utils/format_provider_token/index.ts @@ -0,0 +1,43 @@ +import Big from 'big.js'; +import chainConfig from '@/chainConfig'; + +const provider = chainConfig(); + +/** + * Util to help me correctly transform a base denom amount + * in to a display denom amount + * @param value the current amount + * @param denom the denom to convert the amount in to + * @returns TokenUnit + */ +export const formatProviderToken = ( + value: number | string | null | undefined, + denom = '' +): TokenUnit => { + const selectedDenom = provider?.tokenUnits[denom]; + + if (typeof value !== 'string' && typeof value !== 'number') { + value = '0'; + } + + if (typeof value === 'number') { + value = `${value}`; + } + + const results: TokenUnit = { + value, + displayDenom: denom, + baseDenom: denom, + exponent: selectedDenom?.exponent ?? 0, + }; + + if (!selectedDenom) { + return results; + } + + const ratio = Big(10 ** selectedDenom.exponent); + results.value = !ratio.eq(0) ? Big(value).div(ratio).toFixed(selectedDenom.exponent) : ''; + results.displayDenom = selectedDenom.display; + + return results; +}; diff --git a/apps/web-neutron/src/utils/index.ts b/apps/web-neutron/src/utils/index.ts new file mode 100644 index 0000000000..7e29221f00 --- /dev/null +++ b/apps/web-neutron/src/utils/index.ts @@ -0,0 +1 @@ +export { formatProviderToken } from './format_provider_token'; diff --git a/apps/web-neutron/tsconfig.json b/apps/web-neutron/tsconfig.json new file mode 100644 index 0000000000..d02c130bbc --- /dev/null +++ b/apps/web-neutron/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../packages/tsconfig/nextjs.json", + "compilerOptions": { + "rootDirs": ["../../packages/ui", "."], + "baseUrl": "./src/", + "paths": { + "@/*": ["./*", "../../../packages/ui/src/*"], + "@/public/*": ["../public/*"], + "ui/*": ["../../../packages/ui/src/*"] + } + }, + "include": ["*.d.ts", "src/**/*.ts", "src/**/*.tsx", "../../packages/ui/*.d.ts"] +} diff --git a/apps/web-stride/src/components/avatar_name/index.tsx b/apps/web-stride/src/components/avatar_name/index.tsx index 4765bfb88b..bdcd0a103d 100644 --- a/apps/web-stride/src/components/avatar_name/index.tsx +++ b/apps/web-stride/src/components/avatar_name/index.tsx @@ -1,13 +1,14 @@ import Avatar from '@/components/avatar'; import useStyles from '@/components/avatar_name/styles'; -import MiddleEllipsis from '@/components/MiddleEllipsis'; +import AddressEllipsis from '@/components/AddressEllipsis'; import { ADDRESS_DETAILS } from '@/utils/go_to_page'; import Tooltip from '@mui/material/Tooltip'; import Zoom from '@mui/material/Zoom'; import Link from 'next/link'; import { FC } from 'react'; +import { AvatarNameProps } from '@/components/avatar_name/types'; -const AvatarName: FC = ({ +const AvatarName: FC = ({ className, address, name, @@ -34,7 +35,7 @@ const AvatarName: FC - + diff --git a/apps/web-stride/src/components/avatar_name/types.ts b/apps/web-stride/src/components/avatar_name/types.ts new file mode 100644 index 0000000000..abda93e42b --- /dev/null +++ b/apps/web-stride/src/components/avatar_name/types.ts @@ -0,0 +1,5 @@ +import { AvatarNameProps as AvatarNamePropsBase } from 'ui/src/components/avatar_name/types'; + +export type AvatarNameProps = AvatarNamePropsBase & { + displayAddress?: string; +}; diff --git a/packages/shared-utils/assets/icons/neutron-both.svg b/packages/shared-utils/assets/icons/neutron-both.svg new file mode 100644 index 0000000000..6172618bf1 --- /dev/null +++ b/packages/shared-utils/assets/icons/neutron-both.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/shared-utils/assets/logos/neutron-dark.svg b/packages/shared-utils/assets/logos/neutron-dark.svg new file mode 100644 index 0000000000..bdd1b2e536 --- /dev/null +++ b/packages/shared-utils/assets/logos/neutron-dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/shared-utils/assets/logos/neutron-light.svg b/packages/shared-utils/assets/logos/neutron-light.svg new file mode 100644 index 0000000000..e65cf8be43 --- /dev/null +++ b/packages/shared-utils/assets/logos/neutron-light.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/ui/public/locales/en/web_neutron.json b/packages/ui/public/locales/en/web_neutron.json new file mode 100644 index 0000000000..80b77b3c19 --- /dev/null +++ b/packages/ui/public/locales/en/web_neutron.json @@ -0,0 +1,10 @@ +{ + "params.CCVConsumer": "CCV Consumer", + "params.unbondingPeriod": "Unbonding Period", + "params.ccvTimeoutPeriod": "CCV Timeout Period", + "params.historicalEntries": "Historical Entries", + "params.softOptOutThreshold": "Soft Opt Out Threshold", + "params.transferTimeoutPeriod": "Transfer Timeout Period", + "params.consumerRedistributionFraction": "Consumer Redistribution Fraction", + "params.blocksPerDistributionTransmission": "Blocks Per Distribution Transmission" +} \ No newline at end of file diff --git a/packages/ui/public/locales/it/web_neutron.json b/packages/ui/public/locales/it/web_neutron.json new file mode 100644 index 0000000000..257a5fb874 --- /dev/null +++ b/packages/ui/public/locales/it/web_neutron.json @@ -0,0 +1,10 @@ +{ + "params.CCVConsumer": "Consumatore CCV", + "params.unbondingPeriod": "Periodo di svincolo", + "params.ccvTimeoutPeriod": "Periodo di timeout CCV", + "params.historicalEntries": "Voci storiche", + "params.softOptOutThreshold": "Soglia di disattivazione soft", + "params.transferTimeoutPeriod": "Periodo di timeout del trasferimento", + "params.consumerRedistributionFraction": "Frazione di ridistribuzione del consumatore", + "params.blocksPerDistributionTransmission": "Blocchi per trasmissione di distribuzione" +} \ No newline at end of file diff --git a/packages/ui/public/locales/pl/web_neutron.json b/packages/ui/public/locales/pl/web_neutron.json new file mode 100644 index 0000000000..caf420ee20 --- /dev/null +++ b/packages/ui/public/locales/pl/web_neutron.json @@ -0,0 +1,10 @@ +{ + "params.CCVConsumer": "Konsument CCV", + "params.unbondingPeriod": "Okres rozłączenia", + "params.ccvTimeoutPeriod": "Okres limitu czasu CCV", + "params.historicalEntries": "Wpisy historyczne", + "params.softOptOutThreshold": "Próg rezygnacji", + "params.transferTimeoutPeriod": "Okres limitu czasu transferu", + "params.consumerRedistributionFraction": "Frakcja redystrybucji konsumentów", + "params.blocksPerDistributionTransmission": "Bloki na transmisję dystrybucyjną" +} \ No newline at end of file diff --git a/packages/ui/public/locales/zhs/web_neutron.json b/packages/ui/public/locales/zhs/web_neutron.json new file mode 100644 index 0000000000..4dd1e73c38 --- /dev/null +++ b/packages/ui/public/locales/zhs/web_neutron.json @@ -0,0 +1,10 @@ +{ + "params.CCVConsumer": "CCV 消费者", + "params.unbondingPeriod": "解除绑定期", + "params.ccvTimeoutPeriod": "CCV 超时时间", + "params.historicalEntries": "历史条目", + "params.softOptOutThreshold": "软选择退出阈值", + "params.transferTimeoutPeriod": "传输超时时间", + "params.consumerRedistributionFraction": "消费者重新分配分数", + "params.blocksPerDistributionTransmission": "每次分发传输的块数" +} \ No newline at end of file diff --git a/packages/ui/public/locales/zht/web_neutron.json b/packages/ui/public/locales/zht/web_neutron.json new file mode 100644 index 0000000000..b9a4439541 --- /dev/null +++ b/packages/ui/public/locales/zht/web_neutron.json @@ -0,0 +1,10 @@ +{ + "params.CCVConsumer": "CCV 消費者", + "params.unbondingPeriod": "解除綁定期", + "params.ccvTimeoutPeriod": "CCV 逾時時間", + "params.historicalEntries": "歷史條目", + "params.softOptOutThreshold": "軟體選擇退出閾值", + "params.transferTimeoutPeriod": "傳輸逾時時間", + "params.consumerRedistributionFraction": "消費者重新分配分數", + "params.blocksPerDistributionTransmission": "每次分發傳輸的區塊數" +} \ No newline at end of file diff --git a/packages/ui/src/components/AddressEllipsis/index.tsx b/packages/ui/src/components/AddressEllipsis/index.tsx new file mode 100644 index 0000000000..22088df9d5 --- /dev/null +++ b/packages/ui/src/components/AddressEllipsis/index.tsx @@ -0,0 +1,68 @@ +import { FC, useMemo } from 'react'; +import { makeStyles } from 'tss-react/mui'; + +/* styles */ +const useStyles = makeStyles()(() => ({ + root: { + display: 'inline-flex', + flexFlow: 'row nowrap', + whiteSpace: 'nowrap', + overflow: 'hidden', + textAlign: 'left', + }, + ellipsis: { + display: 'inline-block', + flex: 'unset', + height: '1lh', + letterSpacing: 0, + lineHeight: '1lh', + overflow: 'hidden', + textOverflow: 'ellipsis', + whiteSpace: 'nowrap', + }, + clip: { + letterSpacing: 0, + display: 'flex', + flex: '1', + overflow: 'hidden', + height: '1lh', + lineHeight: '1lh', + maxWidth: 'max-content', + minWidth: 'fit-content', + whiteSpace: 'normal', + overflowWrap: 'anywhere', + }, +})); + +/* types */ +type AddressEllipsisProps = JSX.IntrinsicElements['span'] & { + content?: string; +}; + +/* components */ +const AddressEllipsis: FC = ({ className, content, ...rest }) => { + const beginning = useMemo(() => { + const midIndex = (content?.length ?? 0) / 2; + + if (!content) return ''; + + const index = (() => { + if (content.length < 10) return midIndex - 3; + if (content.length < 30) return midIndex + 3; + return midIndex + 9; + })(); + + return (content ?? '').substring(0, Math.max(0, index)); + }, [content]); + + const ending = (content ?? '').substring(beginning.length); + const { classes, cx } = useStyles(); + return ( + + {beginning} + {ending} + + ); +}; + +export default AddressEllipsis; diff --git a/packages/ui/src/components/ChainIcon/index.tsx b/packages/ui/src/components/ChainIcon/index.tsx index 5adf4272e9..35b44bf3c7 100644 --- a/packages/ui/src/components/ChainIcon/index.tsx +++ b/packages/ui/src/components/ChainIcon/index.tsx @@ -41,6 +41,7 @@ import coreumIconBoth from 'shared-utils/assets/icons/coreum-both.svg?url'; import kyveIconBoth from 'shared-utils/assets/icons/kyve-both.svg?url'; import humansaiIconDark from 'shared-utils/assets/icons/humansai-both.svg?url'; import gitopiaIconDark from 'shared-utils/assets/icons/gitopia-both.svg?url'; +import neutronIconBoth from 'shared-utils/assets/icons/neutron-both.svg?url'; import jackalIconBoth from 'shared-utils/assets/icons/jackal-both.svg?url'; import archwayIconBoth from 'shared-utils/assets/icons/archway-both.svg?url'; import agoricLogoLight from 'shared-utils/assets/logos/agoric-light.png'; @@ -87,6 +88,8 @@ import kyveLogoLight from 'shared-utils/assets/logos/kyve-light.svg?url'; import humansaiLogoDark from 'shared-utils/assets/logos/humansai-dark.svg?url'; import gitopiaLogoDark from 'shared-utils/assets/logos/gitopia-dark.svg?url'; import gitopiaLogoLight from 'shared-utils/assets/logos/gitopia-light.svg?url'; +import neutronLogoDark from 'shared-utils/assets/logos/neutron-dark.svg?url'; +import neutronLogoLight from 'shared-utils/assets/logos/neutron-light.svg?url'; import jackalLogoDark from 'shared-utils/assets/logos/jackal-dark.svg?url'; import jackalLogoLight from 'shared-utils/assets/logos/jackal-light.svg?url'; import archwayLogoDark from 'shared-utils/assets/logos/archway-dark.svg?url'; @@ -281,6 +284,10 @@ const ChainIcon = ({ [iconDark, iconLight] = type === 'icon' ? [gitopiaIconDark, gitopiaIconDark] : [gitopiaLogoDark, gitopiaLogoLight]; break; + case 'neutron': + [iconDark, iconLight] = + type === 'icon' ? [neutronIconBoth, neutronIconBoth] : [neutronLogoDark, neutronLogoLight]; + break; case 'jackal': [iconDark, iconLight] = type === 'icon' ? [jackalIconBoth, jackalIconBoth] : [jackalLogoDark, jackalLogoLight]; diff --git a/packages/ui/src/components/MiddleEllipsis/index.tsx b/packages/ui/src/components/MiddleEllipsis/index.tsx deleted file mode 100644 index 9ec82faad5..0000000000 --- a/packages/ui/src/components/MiddleEllipsis/index.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import { FC } from 'react'; -import { makeStyles } from 'tss-react/mui'; - -/* styles */ -const useStyles = makeStyles<{ length: number }>()((theme, { length }) => ({ - root: { - display: 'inline-flex', - flexFlow: 'row nowrap', - whiteSpace: 'nowrap', - overflow: 'hidden', - maxWidth: '100%', - textAlign: 'left', - }, - ellipsis: { - '&&': { - letterSpacing: 0, - display: 'inline-block', - flex: `0 1 auto`, - overflow: 'hidden', - height: '1lh', - lineHeight: '1lh', - whiteSpace: 'nowrap', - textOverflow: 'ellipsis', - [theme.breakpoints.up('sm')]: { - maxWidth: length > 24 ? '20%' : '50%', - }, - [theme.breakpoints.up('md')]: { - maxWidth: '50%', - }, - }, - }, - clip: { - '&&': { - letterSpacing: 0, - display: 'inline-block', - flex: '0 1 auto', - overflow: 'hidden', - height: '1lh', - lineHeight: '1lh', - maxWidth: 'max-content', - whiteSpace: 'normal', - overflowWrap: 'anywhere', - }, - }, - ellipsisEnd: { - '&&': { - letterSpacing: 0, - display: 'inline-block', - flex: `0 1 auto`, - overflow: 'hidden', - height: '1lh', - lineHeight: '1lh', - maxWidth: '50%', - whiteSpace: 'nowrap', - textOverflow: 'ellipsis', - direction: 'rtl', - }, - }, -})); - -/* types */ -type MiddleEllipsisProps = JSX.IntrinsicElements['span'] & { - content?: string; - ellipsisOnEnd?: boolean; -}; - -/* components */ -const MiddleEllipsis: FC = ({ - className, - content, - ellipsisOnEnd, - ...rest -}) => { - const midIndex = (content?.length ?? 0) / 2; - const beginning = (content ?? '').substring(0, Math.max(0, midIndex - 3)); - const ending = (content ?? '').substring(beginning.length); - const { classes, cx } = useStyles({ length: ending.length ?? 0 }); - const [begin, end] = ellipsisOnEnd - ? [classes.clip, classes.ellipsisEnd] - : [classes.ellipsis, classes.clip]; - return ( - - {beginning} - {ending} - - ); -}; - -export default MiddleEllipsis; diff --git a/packages/ui/src/components/avatar_name/__snapshots__/index.test.tsx.snap b/packages/ui/src/components/avatar_name/__snapshots__/index.test.tsx.snap index 29fe55f68e..99ef141d21 100644 --- a/packages/ui/src/components/avatar_name/__snapshots__/index.test.tsx.snap +++ b/packages/ui/src/components/avatar_name/__snapshots__/index.test.tsx.snap @@ -6,6 +6,9 @@ exports[`component: AvatarName matches snapshot 1`] = ` display: -webkit-flex; display: -ms-flexbox; display: flex; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; -webkit-align-items: center; -webkit-box-align: center; -ms-flex-align: center; @@ -42,54 +45,44 @@ exports[`component: AvatarName matches snapshot 1`] = ` flex-flow: row nowrap; white-space: nowrap; overflow: hidden; - max-width: 100%; text-align: left; -} - -.emotion-2 { - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; color: #4092CD; } -.emotion-3.emotion-3 { - letter-spacing: 0; +.emotion-3 { display: inline-block; - -webkit-flex: 0 1 auto; - -ms-flex: 0 1 auto; - flex: 0 1 auto; - overflow: hidden; + -webkit-flex: unset; + -ms-flex: unset; + flex: unset; height: 1lh; + letter-spacing: 0; line-height: 1lh; - white-space: nowrap; + overflow: hidden; text-overflow: ellipsis; + white-space: nowrap; } -@media (min-width:375px) { - .emotion-3.emotion-3 { - max-width: 50%; - } -} - -@media (min-width:768px) { - .emotion-3.emotion-3 { - max-width: 50%; - } -} - -.emotion-4.emotion-4 { +.emotion-4 { letter-spacing: 0; - display: inline-block; - -webkit-flex: 0 1 auto; - -ms-flex: 0 1 auto; - flex: 0 1 auto; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; overflow: hidden; height: 1lh; line-height: 1lh; max-width: -webkit-max-content; max-width: -moz-max-content; max-width: max-content; + min-width: -webkit-fit-content; + min-width: -moz-fit-content; + min-width: fit-content; white-space: normal; overflow-wrap: anywhere; } @@ -138,6 +131,9 @@ exports[`component: AvatarName matches snapshot with imageUrl 1`] = ` display: -webkit-flex; display: -ms-flexbox; display: flex; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; -webkit-align-items: center; -webkit-box-align: center; -ms-flex-align: center; @@ -174,54 +170,44 @@ exports[`component: AvatarName matches snapshot with imageUrl 1`] = ` flex-flow: row nowrap; white-space: nowrap; overflow: hidden; - max-width: 100%; text-align: left; -} - -.emotion-2 { - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; color: #4092CD; } -.emotion-3.emotion-3 { - letter-spacing: 0; +.emotion-3 { display: inline-block; - -webkit-flex: 0 1 auto; - -ms-flex: 0 1 auto; - flex: 0 1 auto; - overflow: hidden; + -webkit-flex: unset; + -ms-flex: unset; + flex: unset; height: 1lh; + letter-spacing: 0; line-height: 1lh; - white-space: nowrap; + overflow: hidden; text-overflow: ellipsis; + white-space: nowrap; } -@media (min-width:375px) { - .emotion-3.emotion-3 { - max-width: 50%; - } -} - -@media (min-width:768px) { - .emotion-3.emotion-3 { - max-width: 50%; - } -} - -.emotion-4.emotion-4 { +.emotion-4 { letter-spacing: 0; - display: inline-block; - -webkit-flex: 0 1 auto; - -ms-flex: 0 1 auto; - flex: 0 1 auto; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; overflow: hidden; height: 1lh; line-height: 1lh; max-width: -webkit-max-content; max-width: -moz-max-content; max-width: max-content; + min-width: -webkit-fit-content; + min-width: -moz-fit-content; + min-width: fit-content; white-space: normal; overflow-wrap: anywhere; } diff --git a/packages/ui/src/components/avatar_name/index.tsx b/packages/ui/src/components/avatar_name/index.tsx index ec54a1421d..2e72cb6917 100644 --- a/packages/ui/src/components/avatar_name/index.tsx +++ b/packages/ui/src/components/avatar_name/index.tsx @@ -1,13 +1,14 @@ import Avatar from '@/components/avatar'; import useStyles from '@/components/avatar_name/styles'; -import MiddleEllipsis from '@/components/MiddleEllipsis'; +import AddressEllipsis from '@/components/AddressEllipsis'; import { ADDRESS_DETAILS } from '@/utils/go_to_page'; import Tooltip from '@mui/material/Tooltip'; import Zoom from '@mui/material/Zoom'; import Link from 'next/link'; import { FC } from 'react'; +import { AvatarNameProps } from '@/components/avatar_name/types'; -const AvatarName: FC = ({ +const AvatarName: FC = ({ className, address, name, @@ -15,10 +16,19 @@ const AvatarName: FC = ({ href = ADDRESS_DETAILS, image, target, + location, + noLink, ...props }) => { const { classes, cx } = useStyles(); + const content = ( + + + + + ); + return ( = ({ PopperProps={{ className: classes.popper }} slotProps={{ tooltip: { className: classes.tooltip } }} > - - - - - - + {noLink ? ( +
{content}
+ ) : ( + + {content} + + )}
); }; diff --git a/packages/ui/src/components/avatar_name/styles.ts b/packages/ui/src/components/avatar_name/styles.ts index 8b68bddbf1..b1803d318b 100644 --- a/packages/ui/src/components/avatar_name/styles.ts +++ b/packages/ui/src/components/avatar_name/styles.ts @@ -3,6 +3,7 @@ import { makeStyles } from 'tss-react/mui'; const useStyles = makeStyles()((theme) => ({ root: { display: 'flex', + flex: 1, alignItems: 'center', justifyContent: 'flex-start', gap: theme.spacing(1), @@ -11,16 +12,21 @@ const useStyles = makeStyles()((theme) => ({ cursor: 'pointer', }, }, - avatar: { - '&': { - flex: `0 0 ${theme.spacing(3.5)}`, + noLink: { + '&&': { + cursor: 'default', + color: theme.palette.custom.fonts.fontOne, + '&:hover': { + cursor: 'default', + }, }, }, + avatar: { + flex: `0 0 ${theme.spacing(3.5)}`, + }, text: { - '&': { - flex: `1 1 auto`, - color: theme.palette.custom.fonts.highlight, - }, + flex: `1`, + color: theme.palette.custom.fonts.highlight, }, popper: { marginTop: `-${theme.spacing(2)} !important`, diff --git a/packages/ui/src/components/avatar_name/types.ts b/packages/ui/src/components/avatar_name/types.ts new file mode 100644 index 0000000000..3d6eec576f --- /dev/null +++ b/packages/ui/src/components/avatar_name/types.ts @@ -0,0 +1,5 @@ +export type AvatarNameProps = AvatarName & + JSX.IntrinsicElements['div'] & { + location?: 'delegationRow' | 'redelegationRow' | 'unbondingRow'; + noLink?: boolean; + }; diff --git a/packages/ui/src/recoil/profiles/hooks.ts b/packages/ui/src/recoil/profiles/hooks.ts index 4150c3d04e..98ed698f4c 100644 --- a/packages/ui/src/recoil/profiles/hooks.ts +++ b/packages/ui/src/recoil/profiles/hooks.ts @@ -16,7 +16,7 @@ const { extra } = chainConfig(); * @param address */ export const useProfileRecoil = (address: string): AvatarName => { - const profiles = useRecoilValue(readProfile(address)); + const profile = useRecoilValue(readProfile(address)); const delegatorAddress = useRecoilValue(readDelegatorAddress(address)); // ========================== @@ -27,7 +27,7 @@ export const useProfileRecoil = (address: string): AvatarName => { skip: !extra.profile || !delegatorAddress, }); - return profiles; + return profile; }; /** diff --git a/packages/ui/src/screens/account_details/components/staking/components/delegations/components/desktop/index.tsx b/packages/ui/src/screens/account_details/components/staking/components/delegations/components/desktop/index.tsx index 44989de2bc..272247e588 100644 --- a/packages/ui/src/screens/account_details/components/staking/components/delegations/components/desktop/index.tsx +++ b/packages/ui/src/screens/account_details/components/staking/components/delegations/components/desktop/index.tsx @@ -23,7 +23,9 @@ const DelegationsRow: FC = ({ item, i }) => { const reward = item.reward ? formatNumber(item.reward.value, item.reward.exponent) : ''; const formattedItem = { identifier: i, - validator: , + validator: ( + + ), amount: `${amount} ${item.amount?.displayDenom.toUpperCase()}`, commission: `${commission} %`, reward: `${reward} ${item.reward?.displayDenom.toUpperCase()}`, diff --git a/packages/ui/src/screens/account_details/components/staking/components/delegations/components/mobile/index.tsx b/packages/ui/src/screens/account_details/components/staking/components/delegations/components/mobile/index.tsx index 97eac7d5fe..d5cf7fbe76 100644 --- a/packages/ui/src/screens/account_details/components/staking/components/delegations/components/mobile/index.tsx +++ b/packages/ui/src/screens/account_details/components/staking/components/delegations/components/mobile/index.tsx @@ -24,7 +24,7 @@ const DelegationsItem: FC = ({ item, isLast }) => { {t('validator')} - +
diff --git a/packages/ui/src/screens/account_details/components/staking/components/redelegations/components/desktop/index.tsx b/packages/ui/src/screens/account_details/components/staking/components/redelegations/components/desktop/index.tsx index fd786f7097..cb0ee7ea01 100644 --- a/packages/ui/src/screens/account_details/components/staking/components/redelegations/components/desktop/index.tsx +++ b/packages/ui/src/screens/account_details/components/staking/components/redelegations/components/desktop/index.tsx @@ -30,8 +30,22 @@ const RedelegationsRow: FC = ({ item, i }) => { const timeFormat = useRecoilValue(readTimeFormat); const formattedItem = { identifier: i, - to: , - from: , + to: ( + + ), + from: ( + + ), amount: item.amount ? `${formatNumber( item.amount.value, diff --git a/packages/ui/src/screens/account_details/components/staking/components/redelegations/components/mobile/index.tsx b/packages/ui/src/screens/account_details/components/staking/components/redelegations/components/mobile/index.tsx index f807361050..3516f009a5 100644 --- a/packages/ui/src/screens/account_details/components/staking/components/redelegations/components/mobile/index.tsx +++ b/packages/ui/src/screens/account_details/components/staking/components/redelegations/components/mobile/index.tsx @@ -34,7 +34,12 @@ const RedelegationsItem: FC = ({ item, isLast }) => { {t('from')} - +
diff --git a/packages/ui/src/screens/account_details/components/staking/components/unbondings/components/desktop/index.tsx b/packages/ui/src/screens/account_details/components/staking/components/unbondings/components/desktop/index.tsx index 26c4b68dec..2e4c93657f 100644 --- a/packages/ui/src/screens/account_details/components/staking/components/unbondings/components/desktop/index.tsx +++ b/packages/ui/src/screens/account_details/components/staking/components/unbondings/components/desktop/index.tsx @@ -23,7 +23,9 @@ const UnbondingsRow: FC = ({ item }) => { const dateFormat = useRecoilValue(readDate); const timeFormat = useRecoilValue(readTimeFormat); const formattedItem = { - validator: , + validator: ( + + ), amount: item.amount ? `${formatNumber( item.amount.value, diff --git a/packages/ui/src/screens/account_details/components/staking/components/unbondings/components/mobile/index.tsx b/packages/ui/src/screens/account_details/components/staking/components/unbondings/components/mobile/index.tsx index 25c6566d34..e9654b8e37 100644 --- a/packages/ui/src/screens/account_details/components/staking/components/unbondings/components/mobile/index.tsx +++ b/packages/ui/src/screens/account_details/components/staking/components/unbondings/components/mobile/index.tsx @@ -29,7 +29,7 @@ const UnbondingsItem: FC = ({ item, isLast }) => { {t('validator')} - +
diff --git a/packages/ui/src/screens/blocks/components/desktop/index.tsx b/packages/ui/src/screens/blocks/components/desktop/index.tsx index f23e5bfe10..c34bc8266d 100644 --- a/packages/ui/src/screens/blocks/components/desktop/index.tsx +++ b/packages/ui/src/screens/blocks/components/desktop/index.tsx @@ -17,6 +17,7 @@ import { ComponentProps, CSSProperties, FC, LegacyRef, ReactNode } from 'react'; import AutoSizer from 'react-virtualized-auto-sizer'; import { VariableSizeGrid as Grid } from 'react-window'; import InfiniteLoader from 'react-window-infinite-loader'; +import { resolveProfile } from '@/screens/blocks/utils'; type BlockItemProps = { item: ItemType; @@ -27,7 +28,8 @@ type BlockItemProps = { }; const BlockItem: FC = ({ item, rowIndex, column, style, align }) => { - const { name, address, imageUrl } = useProfileRecoil(item.proposer); + const profile = useProfileRecoil(item.proposer); + const { address, imageUrl, name } = resolveProfile(item, profile); const { classes, cx } = useStyles(); let formattedItem: ReactNode | null = null; switch (column) { diff --git a/packages/ui/src/screens/blocks/components/mobile/index.tsx b/packages/ui/src/screens/blocks/components/mobile/index.tsx index 284a0e9511..e93a8712c4 100644 --- a/packages/ui/src/screens/blocks/components/mobile/index.tsx +++ b/packages/ui/src/screens/blocks/components/mobile/index.tsx @@ -16,6 +16,7 @@ import { FC } from 'react'; import AutoSizer from 'react-virtualized-auto-sizer'; import { ListChildComponentProps, VariableSizeList as List } from 'react-window'; import InfiniteLoader from 'react-window-infinite-loader'; +import { resolveProfile } from '@/screens/blocks/utils'; type ListItemProps = Pick & { setRowHeight: Parameters[1]; @@ -32,7 +33,8 @@ const ListItem: FC = ({ item, isLast, }) => { - const { name, address, imageUrl } = useProfileRecoil(item.proposer); + const profile = useProfileRecoil(item.proposer); + const { address, name, imageUrl } = resolveProfile(item, profile); const formattedItem = { height: ( diff --git a/packages/ui/src/screens/blocks/utils.ts b/packages/ui/src/screens/blocks/utils.ts new file mode 100644 index 0000000000..ba6fe7db21 --- /dev/null +++ b/packages/ui/src/screens/blocks/utils.ts @@ -0,0 +1,3 @@ +import { ItemType } from '@/screens/blocks/types'; + +export const resolveProfile = (_item: ItemType, profile: AvatarName) => profile; diff --git a/packages/ui/src/screens/validator_details/components/blocks/hooks.ts b/packages/ui/src/screens/validator_details/components/blocks/hooks.ts index 76687a8760..940c9fa904 100644 --- a/packages/ui/src/screens/validator_details/components/blocks/hooks.ts +++ b/packages/ui/src/screens/validator_details/components/blocks/hooks.ts @@ -20,14 +20,14 @@ type BlocksState = { signed: boolean; }[]; -export const useBlocks = () => { +export const useBlocks = (address?: string) => { const [state, setState] = useState([]); const router = useRouter(); const { loading } = useLastHundredBlocksSubscription({ variables: { - address: (router?.query?.address as string) ?? '', + address: address ?? (router?.query?.address as string) ?? '', }, onData: (data) => { if (!data.data.data) return; diff --git a/packages/ui/src/screens/validator_details/components/blocks/index.tsx b/packages/ui/src/screens/validator_details/components/blocks/index.tsx index f84484ba1e..70aead3d97 100644 --- a/packages/ui/src/screens/validator_details/components/blocks/index.tsx +++ b/packages/ui/src/screens/validator_details/components/blocks/index.tsx @@ -69,9 +69,13 @@ const BlockBox: FC = ({ i, item, state }) => { ); }; -const Blocks: FC = ({ className }) => { +type BlocksProps = ComponentDefault & { + address?: string; +}; + +const Blocks: FC = ({ className, address }) => { const { t } = useAppTranslation('validators'); - const { state, loading } = useBlocks(); + const { state, loading } = useBlocks(address); const { classes, cx } = useStyles(); return ( diff --git a/packages/ui/src/screens/validator_details/components/profile/__snapshots__/index.test.tsx.snap b/packages/ui/src/screens/validator_details/components/profile/__snapshots__/index.test.tsx.snap index 50e973449c..e0680bf63d 100644 --- a/packages/ui/src/screens/validator_details/components/profile/__snapshots__/index.test.tsx.snap +++ b/packages/ui/src/screens/validator_details/components/profile/__snapshots__/index.test.tsx.snap @@ -6,6 +6,7 @@ exports[`screen: ValidatorDetails/Profile matches snapshot 1`] = ` display: -webkit-flex; display: -ms-flexbox; display: flex; + gap: 16px; } .emotion-0 .bio__header { diff --git a/packages/ui/src/screens/validator_details/components/profile/styles.ts b/packages/ui/src/screens/validator_details/components/profile/styles.ts index f9f6a9eb15..0c1270cf47 100644 --- a/packages/ui/src/screens/validator_details/components/profile/styles.ts +++ b/packages/ui/src/screens/validator_details/components/profile/styles.ts @@ -9,6 +9,7 @@ const useStyles = makeStyles()((theme) => ({ }, bio: { display: 'flex', + gap: theme.spacing(2), '& .bio__header': { display: 'flex', alignItems: 'flex-start', diff --git a/packages/ui/src/screens/validator_details/components/staking/components/delegations/components/desktop/index.tsx b/packages/ui/src/screens/validator_details/components/staking/components/delegations/components/desktop/index.tsx index 6867212f8a..e1f296780e 100644 --- a/packages/ui/src/screens/validator_details/components/staking/components/delegations/components/desktop/index.tsx +++ b/packages/ui/src/screens/validator_details/components/staking/components/delegations/components/desktop/index.tsx @@ -18,7 +18,9 @@ type DelegationsRowProps = { const DelegationsRow: FC = ({ item }) => { const { name, address, imageUrl } = useProfileRecoil(item.address); const formattedItem = { - address: , + address: ( + + ), amount: item.amount ? `${formatNumber( item.amount.value, diff --git a/packages/ui/src/screens/validator_details/components/staking/components/delegations/components/mobile/index.tsx b/packages/ui/src/screens/validator_details/components/staking/components/delegations/components/mobile/index.tsx index b9917cdaf5..a095597642 100644 --- a/packages/ui/src/screens/validator_details/components/staking/components/delegations/components/mobile/index.tsx +++ b/packages/ui/src/screens/validator_details/components/staking/components/delegations/components/mobile/index.tsx @@ -26,7 +26,7 @@ const DelegationsItem: FC = ({ i, item, isLast }) => { {t('address')} - +
diff --git a/packages/ui/src/screens/validator_details/components/staking/components/redelegations/components/desktop/index.tsx b/packages/ui/src/screens/validator_details/components/staking/components/redelegations/components/desktop/index.tsx index a8945943c1..9172c588b0 100644 --- a/packages/ui/src/screens/validator_details/components/staking/components/redelegations/components/desktop/index.tsx +++ b/packages/ui/src/screens/validator_details/components/staking/components/redelegations/components/desktop/index.tsx @@ -20,8 +20,17 @@ const RedelegationsItem: FC<{ item: ItemType }> = ({ item }) => { const dateFormat = useRecoilValue(readDate); const timeFormat = useRecoilValue(readTimeFormat); const formattedItem = { - address: , - to: , + address: ( + + ), + to: ( + + ), amount: item.amount ? `${formatNumber( item.amount.value, diff --git a/packages/ui/src/screens/validator_details/components/staking/components/redelegations/components/mobile/index.tsx b/packages/ui/src/screens/validator_details/components/staking/components/redelegations/components/mobile/index.tsx index 439fcbce10..ff6e58a404 100644 --- a/packages/ui/src/screens/validator_details/components/staking/components/redelegations/components/mobile/index.tsx +++ b/packages/ui/src/screens/validator_details/components/staking/components/redelegations/components/mobile/index.tsx @@ -31,13 +31,23 @@ const RedelegationsItem: FC = ({ i, item, isLast }) => { {t('address')} - +
{t('to')} - +
diff --git a/packages/ui/src/screens/validator_details/components/staking/components/unbondings/components/desktop/index.tsx b/packages/ui/src/screens/validator_details/components/staking/components/unbondings/components/desktop/index.tsx index 9e305e8c33..25bd8d033e 100644 --- a/packages/ui/src/screens/validator_details/components/staking/components/unbondings/components/desktop/index.tsx +++ b/packages/ui/src/screens/validator_details/components/staking/components/unbondings/components/desktop/index.tsx @@ -14,16 +14,18 @@ import { readDate, readTimeFormat } from '@/recoil/settings'; import { useProfileRecoil } from '@/recoil/profiles/hooks'; import AvatarName from '@/components/avatar_name'; -type UnboundingRowProps = { +type UnbondingRowProps = { item: ItemType; }; -const UnboundingRow: FC = ({ item }) => { +const UnbondingRow: FC = ({ item }) => { const { name, address, imageUrl } = useProfileRecoil(item.address); const dateFormat = useRecoilValue(readDate); const timeFormat = useRecoilValue(readTimeFormat); const formattedItem = { - address: , + address: ( + + ), amount: item.amount ? `${formatNumber( item.amount.value, @@ -73,7 +75,7 @@ const Desktop: FC = ({ className, items }) => { {items?.map((row, i) => ( // eslint-disable-next-line react/no-array-index-key - + ))} diff --git a/packages/ui/src/screens/validator_details/components/staking/components/unbondings/components/mobile/index.tsx b/packages/ui/src/screens/validator_details/components/staking/components/unbondings/components/mobile/index.tsx index 11a12c4070..1170726a04 100644 --- a/packages/ui/src/screens/validator_details/components/staking/components/unbondings/components/mobile/index.tsx +++ b/packages/ui/src/screens/validator_details/components/staking/components/unbondings/components/mobile/index.tsx @@ -30,7 +30,7 @@ const UnbondingsItem: FC = ({ i, item, isLast }) => { {t('address')} - +
diff --git a/packages/ui/src/screens/validator_details/components/staking/hooks.ts b/packages/ui/src/screens/validator_details/components/staking/hooks.ts index 2387cd5eab..f9eac21993 100644 --- a/packages/ui/src/screens/validator_details/components/staking/hooks.ts +++ b/packages/ui/src/screens/validator_details/components/staking/hooks.ts @@ -16,32 +16,16 @@ import type { } from '@/screens/validator_details/components/staking/types'; import { formatToken } from '@/utils/format_token'; import { getDenom } from '@/utils/get_denom'; +import { + Delegations, + Redelegations, + Undelegations, +} from '@/screens/validator_details/components/staking/types'; const { primaryTokenUnit } = chainConfig(); export const ROWS_PER_PAGE = 10; -type Delegations = { - coins: MsgCoin[]; - entries: Array<{ - balance: string; - }>; -}; - -type Redelegations = { - delegator_address: string; - validator_dst_address: string; - entries: Array<{ - balance: string; - }>; -}; - -type Undelegations = { - entries: Array<{ - balance: string; - }>; -}; - export const formatDelegations = (data: Delegations[]) => data .map((x): UnbondingType => { @@ -57,7 +41,7 @@ export const formatDelegations = (data: Delegations[]) => export const formatRedelegations = (data: Redelegations[]) => { const results: RedelegationType[] = []; data.forEach((x) => { - R.pathOr>([], ['entries'], x).forEach((y) => { + R.pathOr>([], ['entries'], x).forEach((y) => { results.push({ address: x?.delegator_address ?? '', to: x?.validator_dst_address ?? '', @@ -91,15 +75,18 @@ export const formatUnbondings = (data: Undelegations[]) => { export const useStaking = ( delegationsPage: number, redelegationsPage: number, - unbondingsPage: number + unbondingsPage: number, + address?: string ) => { const router = useRouter(); const [state, setState] = useState({ tab: 0, }); - const validatorAddress = Array.isArray(router?.query?.address) - ? router.query.address[0] - : router?.query?.address ?? ''; + const validatorAddress = + address || + (Array.isArray(router?.query?.address) + ? router.query.address[0] + : router?.query?.address ?? ''); // ===================================== // delegations diff --git a/packages/ui/src/screens/validator_details/components/staking/index.tsx b/packages/ui/src/screens/validator_details/components/staking/index.tsx index d02ba98eda..02e7563734 100644 --- a/packages/ui/src/screens/validator_details/components/staking/index.tsx +++ b/packages/ui/src/screens/validator_details/components/staking/index.tsx @@ -35,7 +35,11 @@ export function formatCount( return numeral(page * ROWS_PER_PAGE + length).format('0,0'); } -const Staking: FC = (props) => { +type StakingProps = ComponentDefault & { + address?: string; +}; + +const Staking: FC = ({ address, className }) => { const { classes, cx } = useStyles(); const [delegationsPage, setDelegationsPage] = useState(0); const [redelegationsPage, setRedelegationsPage] = useState(0); @@ -43,7 +47,8 @@ const Staking: FC = (props) => { const { state, delegations, redelegations, unbondings, handleTabChange } = useStaking( delegationsPage, redelegationsPage, - unbondingsPage + unbondingsPage, + address ); const tabs = [ @@ -68,7 +73,7 @@ const Staking: FC = (props) => { ]; return ( - + {tabs.map((x) => ( diff --git a/packages/ui/src/screens/validator_details/components/staking/types.ts b/packages/ui/src/screens/validator_details/components/staking/types.ts index be2d2aa677..6e7ee67269 100644 --- a/packages/ui/src/screens/validator_details/components/staking/types.ts +++ b/packages/ui/src/screens/validator_details/components/staking/types.ts @@ -32,3 +32,24 @@ export type UnbondingsType = StakingType; export interface StakingState { tab: number; } + +export type Delegations = { + coins: MsgCoin[]; + entries: Array<{ + balance: string; + }>; +}; + +export type Redelegations = { + delegator_address: string; + validator_dst_address: string; + entries: Array<{ + balance: string; + }>; +}; + +export type Undelegations = { + entries: Array<{ + balance: string; + }>; +}; diff --git a/packages/ui/src/screens/validator_details/index.tsx b/packages/ui/src/screens/validator_details/index.tsx index ff7f4682d1..2554012319 100644 --- a/packages/ui/src/screens/validator_details/index.tsx +++ b/packages/ui/src/screens/validator_details/index.tsx @@ -16,7 +16,7 @@ const ValidatorDetails = () => { const { t } = useAppTranslation('validators'); const { classes } = useStyles(); const { state, loading } = useValidatorDetails(); - const { desmosProfile, exists, overview, status, votingPower } = state; + const { desmosProfile, exists, overview, status, votingPower, cosmosAddress } = state; return ( <> @@ -40,8 +40,14 @@ const ValidatorDetails = () => { data={votingPower} status={status.status} /> - - + + diff --git a/packages/ui/src/screens/validator_details/types.ts b/packages/ui/src/screens/validator_details/types.ts index 79a3c98010..2ae98a254f 100644 --- a/packages/ui/src/screens/validator_details/types.ts +++ b/packages/ui/src/screens/validator_details/types.ts @@ -28,6 +28,7 @@ export interface ValidatorDetailsState { exists: boolean; desmosProfile: DesmosProfile | null; overview: OverviewType; + cosmosAddress?: string; status: StatusType; votingPower: VotingPowerType; } diff --git a/yarn.lock b/yarn.lock index 1dd9897392..11657da284 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18150,6 +18150,131 @@ __metadata: languageName: unknown linkType: soft +"web-neutron@workspace:apps/web-neutron": + version: 0.0.0-use.local + resolution: "web-neutron@workspace:apps/web-neutron" + dependencies: + "@apollo/client": ^3.7.14 + "@cosmjs/encoding": ^0.30.1 + "@cosmjs/launchpad": ^0.27.1 + "@cosmjs/stargate": ^0.29.5 + "@emotion/cache": ^11.11.0 + "@emotion/jest": ^11.11.0 + "@emotion/react": ^11.11.0 + "@emotion/server": ^11.11.0 + "@emotion/styled": ^11.11.0 + "@graphql-codegen/cli": ^3.3.1 + "@graphql-codegen/client-preset": ^3.0.1 + "@graphql-codegen/fragment-matcher": ^4.0.1 + "@graphql-codegen/typescript": ^3.0.4 + "@graphql-codegen/typescript-operations": ^3.0.4 + "@graphql-codegen/typescript-react-apollo": ^3.3.7 + "@graphql-tools/mock": ^8.7.20 + "@graphql-tools/schema": ^9.0.19 + "@jest/globals": ^29.5.0 + "@keplr-wallet/types": ^0.11.59 + "@keplr-wallet/wc-client": ^0.11.59 + "@mui/icons-material": ^5.11.16 + "@mui/material": ^5.12.3 + "@next/eslint-plugin-next": ^13.4.1 + "@socialgouv/matomo-next": ^1.6.1 + "@svgr/webpack": ^7.0.0 + "@testing-library/jest-dom": ^5.16.5 + "@testing-library/react": ^14.0.0 + "@types/big.js": ^6.1.6 + "@types/color": ^3.0.3 + "@types/eslint": ^8.37.0 + "@types/esprima": ^4.0.3 + "@types/jest": ^29.5.1 + "@types/js-yaml": ^4.0.5 + "@types/node": ^18.16.5 + "@types/numeral": ^2.0.2 + "@types/qs": ^6.9.7 + "@types/ramda": ^0.29.1 + "@types/react": ^18.2.6 + "@types/react-dom": ^18.2.4 + "@types/react-test-renderer": ^18.0.0 + "@types/react-virtualized-auto-sizer": ^1.0.1 + "@types/react-window": ^1.8.5 + "@types/react-window-infinite-loader": ^1.0.6 + "@typescript-eslint/eslint-plugin": ^5.59.2 + "@typescript-eslint/parser": ^5.59.2 + "@walletconnect/client": ^1.8.0 + "@walletconnect/encoding": ^1.0.2 + "@yarnpkg/pnpify": ^4.0.0-rc.43 + apollo-link-rest: ^0.9.0 + bech32: ^2.0.0 + big.js: ^6.2.1 + color: ^4.2.3 + copy-to-clipboard: ^3.3.3 + csstype: ^3.1.2 + dayjs: ^1.11.7 + dotenv: ^16.0.3 + eslint: ^8.40.0 + eslint-config-airbnb: ^19.0.4 + eslint-config-custom: "workspace:*" + eslint-config-next: ^13.4.1 + eslint-config-prettier: ^8.8.0 + eslint-config-turbo: ^1.9.3 + eslint-import-resolver-typescript: ^3.5.5 + eslint-plugin-import: ^2.27.5 + eslint-plugin-jsx-a11y: ^6.7.1 + eslint-plugin-react: ^7.32.2 + eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-turbo: ^1.9.3 + esprima: ^4.0.1 + framer-motion: ^10.12.8 + graphql: ^16.6.0 + graphql-tag: ^2.12.6 + graphql-ws: ^5.12.1 + i18next: ^22.4.15 + jdenticon: ^3.2.0 + jest: ^29.5.0 + jest-cli: ^29.5.0 + jest-environment-jsdom: ^29.5.0 + jest-localstorage-mock: ^2.4.26 + jest-presets: "workspace:*" + jest-transform-stub: ^2.0.0 + jest-watch-typeahead: ^2.2.2 + js-yaml: ^4.1.0 + lightweight-charts: ^4.0.1 + markdown-to-jsx: ^7.2.0 + next: ^13.4.1 + next-i18next: ^13.2.2 + next-seo: ^6.0.0 + next-sitemap: ^4.1.3 + numeral: ^2.0.6 + qrcode.react: ^3.1.0 + qs: ^6.11.1 + ramda: ^0.29.0 + react: ^18.2.0 + react-dom: ^18.2.0 + react-i18next: ^12.2.2 + react-share: ^4.4.1 + react-test-renderer: ^18.2.0 + react-toastify: ^9.1.2 + react-virtualized-auto-sizer: ^1.0.15 + react-window: ^1.8.9 + react-window-infinite-loader: ^1.0.9 + recharts: ^2.5.0 + recoil: ^0.7.7 + shared-utils: "workspace:*" + subscriptions-transport-ws: ^0.11.0 + ts-jest: ^29.1.0 + ts-node: ^10.9.1 + tsconfig: "workspace:*" + tslib: ^2.5.0 + tss-react: ^4.8.3 + typanion: ^3.12.1 + typescript: ^5.0.4 + ui: "workspace:*" + usehooks-ts: ^2.9.1 + ws: ^8.13.0 + xss: ^1.0.14 + zod: ^3.21.4 + languageName: unknown + linkType: soft + "web-nomic@workspace:apps/web-nomic": version: 0.0.0-use.local resolution: "web-nomic@workspace:apps/web-nomic" From 3b7f63b1a25ed43cc129882efe11eec4672f634a Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Wed, 1 Nov 2023 18:26:41 +0700 Subject: [PATCH 09/20] fix: update desmos proposals type display [web-desmos] (#1310) ## Description Closes: #XXXX --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [x] ran linting via `yarn lint` - [x] wrote tests where necessary - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] targeted the correct branch - [x] provided a link to the relevant issue or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed - [x] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) --- .changeset/cuddly-turtles-search.md | 5 + .../components/overview/index.tsx | 98 +++++++++++-------- 2 files changed, 60 insertions(+), 43 deletions(-) create mode 100644 .changeset/cuddly-turtles-search.md diff --git a/.changeset/cuddly-turtles-search.md b/.changeset/cuddly-turtles-search.md new file mode 100644 index 0000000000..463fe4effe --- /dev/null +++ b/.changeset/cuddly-turtles-search.md @@ -0,0 +1,5 @@ +--- +'web-desmos': major +--- + +update desmos proposals type display diff --git a/apps/web-desmos/src/screens/proposal_details/components/overview/index.tsx b/apps/web-desmos/src/screens/proposal_details/components/overview/index.tsx index 0e967c65f7..358a560745 100644 --- a/apps/web-desmos/src/screens/proposal_details/components/overview/index.tsx +++ b/apps/web-desmos/src/screens/proposal_details/components/overview/index.tsx @@ -26,10 +26,14 @@ const Overview: FC<{ className?: string; overview: OverviewType }> = ({ classNam const { classes, cx } = useStyles(); const { t } = useAppTranslation('proposals'); - const type = - R.pathOr('', [0, '@type'], overview.content) === '' - ? getProposalType(R.pathOr('', ['@type'], overview.content)) - : getProposalType(R.pathOr('', [0, '@type'], overview.content)); + const types: string[] = []; + if (Array.isArray(overview.content)) { + overview.content.forEach((type: string) => { + types.push(getProposalType(R.pathOr('', ['@type'], type))); + }); + } else { + types.push(getProposalType(R.pathOr('', ['@type'], overview.content))); + } const { address: proposerAddress, name: proposerName } = useProfileRecoil(overview.proposer); const { name: recipientName } = useProfileRecoil(overview?.content?.recipient); @@ -47,45 +51,49 @@ const Overview: FC<{ className?: string; overview: OverviewType }> = ({ classNam const getExtraDetails = useCallback(() => { let extraDetails = null; - if (type === 'parameterChangeProposal') { - extraDetails = ( - <> - - {t('changes')} - - - - ); - } else if (type === 'softwareUpgradeProposal') { - extraDetails = ( - <> - - {t('plan')} - - - - ); - } else if (type === 'communityPoolSpendProposal') { - extraDetails = ( - <> - - {t('content')} - - - - ); - } + types.forEach((type: string) => { + if (type === 'parameterChangeProposal') { + extraDetails = ( + <> + + {t('changes')} + + + + ); + } + if (type === 'softwareUpgradeProposal') { + extraDetails = ( + <> + + {t('plan')} + + + + ); + } + if (type === 'communityPoolSpendProposal') { + extraDetails = ( + <> + + {t('content')} + + + + ); + } + }); return extraDetails; - }, [overview.content, parsedAmountRequested, recipientMoniker, t, type]); + }, [overview.content, parsedAmountRequested, recipientMoniker, t, types]); const extra = getExtraDetails(); @@ -101,8 +109,12 @@ const Overview: FC<{ className?: string; overview: OverviewType }> = ({ classNam {t('type')} - - {t(type)} + + {types.map((type) => ( + + {t(type)} + + ))} {t('proposer')} From e749a3b0317efb1f659447d336e8dec081aed64d Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Thu, 2 Nov 2023 14:35:38 +0700 Subject: [PATCH 10/20] fix: display suggested proposal params changes [web-desmos] (#1311) ## Description Closes: #XXXX --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [x] ran linting via `yarn lint` - [x] wrote tests where necessary - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] targeted the correct branch - [x] provided a link to the relevant issue or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed - [x] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) --- .changeset/spotty-coats-reflect.md | 6 ++ .../components/overview/index.tsx | 54 +++++++++---- .../components/overview/styles.ts | 77 +++++++++++++++++++ .../components/update_params/index.tsx | 42 ++++++++++ 4 files changed, 165 insertions(+), 14 deletions(-) create mode 100644 .changeset/spotty-coats-reflect.md create mode 100644 apps/web-desmos/src/screens/proposal_details/components/overview/styles.ts create mode 100644 packages/ui/src/screens/proposal_details/components/overview/components/update_params/index.tsx diff --git a/.changeset/spotty-coats-reflect.md b/.changeset/spotty-coats-reflect.md new file mode 100644 index 0000000000..53e36728d0 --- /dev/null +++ b/.changeset/spotty-coats-reflect.md @@ -0,0 +1,6 @@ +--- +'web-desmos': major +'ui': major +--- + +display suggested proposal params changes on proposal page diff --git a/apps/web-desmos/src/screens/proposal_details/components/overview/index.tsx b/apps/web-desmos/src/screens/proposal_details/components/overview/index.tsx index 358a560745..5aa355329b 100644 --- a/apps/web-desmos/src/screens/proposal_details/components/overview/index.tsx +++ b/apps/web-desmos/src/screens/proposal_details/components/overview/index.tsx @@ -3,7 +3,7 @@ import Typography from '@mui/material/Typography'; import useAppTranslation from '@/hooks/useAppTranslation'; import numeral from 'numeral'; import * as R from 'ramda'; -import { FC, useCallback } from 'react'; +import { FC, useCallback, useMemo } from 'react'; import { useRecoilValue } from 'recoil'; import Box from '@/components/box'; import Markdown from '@/components/markdown'; @@ -12,13 +12,14 @@ import SingleProposal from '@/components/single_proposal'; import { useProfileRecoil } from '@/recoil/profiles/hooks'; import { readDate, readTimeFormat } from '@/recoil/settings'; import CommunityPoolSpend from '@/screens/proposal_details/components/overview/components/community_pool_spend'; +import UpdateParams from '@/screens/proposal_details/components/overview/components/update_params'; import ParamsChange from '@/screens/proposal_details/components/overview/components/params_change'; import SoftwareUpgrade from '@/screens/proposal_details/components/overview/components/software_upgrade'; -import useStyles from '@/screens/proposal_details/components/overview/styles'; import type { OverviewType } from '@/screens/proposal_details/types'; import { getProposalType } from '@/screens/proposal_details/utils'; import dayjs, { formatDayJs } from '@/utils/dayjs'; import { formatNumber, formatToken } from '@/utils/format_token'; +import useStyles from './styles'; const Overview: FC<{ className?: string; overview: OverviewType }> = ({ className, overview }) => { const dateFormat = useRecoilValue(readDate); @@ -26,14 +27,30 @@ const Overview: FC<{ className?: string; overview: OverviewType }> = ({ classNam const { classes, cx } = useStyles(); const { t } = useAppTranslation('proposals'); - const types: string[] = []; - if (Array.isArray(overview.content)) { - overview.content.forEach((type: string) => { - types.push(getProposalType(R.pathOr('', ['@type'], type))); - }); - } else { - types.push(getProposalType(R.pathOr('', ['@type'], overview.content))); - } + const types = useMemo(() => { + if (Array.isArray(overview.content)) { + const typeArray: string[] = []; + overview.content.forEach((type: { params: JSON; type: string }) => + typeArray.push(getProposalType(R.pathOr('', ['@type'], type))) + ); + return typeArray; + } + const typeArray: string[] = []; + typeArray.push(getProposalType(R.pathOr('', ['@type'], overview.content))); + return typeArray; + }, [overview.content]); + + const changes = useMemo(() => { + const changeList: any[] = []; + if (Array.isArray(overview.content)) { + overview.content.forEach((type: { params: JSON; type: string }) => { + changeList.push({ params: type.params, type: R.pathOr('', ['@type'], type) }); + }); + + return changeList; + } + return changeList; + }, [overview.content]); const { address: proposerAddress, name: proposerName } = useProfileRecoil(overview.proposer); const { name: recipientName } = useProfileRecoil(overview?.content?.recipient); @@ -90,10 +107,19 @@ const Overview: FC<{ className?: string; overview: OverviewType }> = ({ classNam ); } - }); + if (type.includes('MsgUpdateParams')) { + extraDetails = ( + <> + {changes.map((change) => ( + + ))} + + ); + } + }); return extraDetails; - }, [overview.content, parsedAmountRequested, recipientMoniker, t, types]); + }, [changes, overview.content, parsedAmountRequested, recipientMoniker, t, types]); const extra = getExtraDetails(); @@ -110,8 +136,8 @@ const Overview: FC<{ className?: string; overview: OverviewType }> = ({ classNam {t('type')} - {types.map((type) => ( - + {types.map((type: string) => ( + {t(type)} ))} diff --git a/apps/web-desmos/src/screens/proposal_details/components/overview/styles.ts b/apps/web-desmos/src/screens/proposal_details/components/overview/styles.ts new file mode 100644 index 0000000000..55ec30709d --- /dev/null +++ b/apps/web-desmos/src/screens/proposal_details/components/overview/styles.ts @@ -0,0 +1,77 @@ +import { makeStyles } from 'tss-react/mui'; + +const useStyles = makeStyles()((theme) => ({ + root: { + '& .label': { + color: theme.palette.custom.fonts.fontThree, + }, + '& .content': { + marginBottom: theme.spacing(2), + display: 'block', + [theme.breakpoints.up('lg')]: { + display: 'flex', + }, + }, + '& .recipient': { + marginBottom: theme.spacing(2), + [theme.breakpoints.up('lg')]: { + display: 'block', + }, + }, + '& .amountRequested': { + marginBottom: theme.spacing(2), + display: 'block', + padding: '0', + [theme.breakpoints.up('lg')]: { + display: 'block', + paddingLeft: '30px', + }, + }, + '& .accordion': { + background: '#151519', + }, + }, + content: { + marginTop: theme.spacing(2), + display: 'grid', + p: { + lineHeight: 1.8, + }, + '& ul': { + padding: '0.25rem 0.5rem', + [theme.breakpoints.up('lg')]: { + padding: '0.5rem 1rem', + }, + }, + '& li': { + padding: '0.25rem 0.5rem', + [theme.breakpoints.up('lg')]: { + padding: '0.5rem 1rem', + }, + }, + '& > *': { + marginBottom: theme.spacing(1), + [theme.breakpoints.up('lg')]: { + marginBottom: theme.spacing(2), + }, + }, + [theme.breakpoints.up('lg')]: { + gridTemplateColumns: '200px auto', + }, + }, + time: { + marginTop: theme.spacing(2), + display: 'grid', + '& > *': { + marginBottom: theme.spacing(1), + [theme.breakpoints.up('md')]: { + marginBottom: theme.spacing(2), + }, + }, + [theme.breakpoints.up('md')]: { + gridTemplateColumns: 'repeat(2, 1fr)', + }, + }, +})); + +export default useStyles; diff --git a/packages/ui/src/screens/proposal_details/components/overview/components/update_params/index.tsx b/packages/ui/src/screens/proposal_details/components/overview/components/update_params/index.tsx new file mode 100644 index 0000000000..2bc3136f9b --- /dev/null +++ b/packages/ui/src/screens/proposal_details/components/overview/components/update_params/index.tsx @@ -0,0 +1,42 @@ +import useAppTranslation from '@/hooks/useAppTranslation'; +import { FC } from 'react'; +import Accordion from '@mui/material/Accordion'; +import AccordionSummary from '@mui/material/AccordionSummary'; +import AccordionDetails from '@mui/material/AccordionDetails'; +import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; +import Typography from '@mui/material/Typography'; + +type UpdateParamsProps = { + changes: { params: JSON; type: string }; + className?: string; +}; + +const UpdateParams: FC = ({ changes, className }) => { + const { t } = useAppTranslation('proposals'); + + return ( + <> + + {t('changes')} + + + } + aria-controls="panel1a-content" + id="panel1a-header" + > + + {JSON.stringify(changes.type, null, 2).replace(/['"]+/g, '')} + + + + + {JSON.stringify(changes.params, null, 2)} + + + + + ); +}; + +export default UpdateParams; From c6ec239b634bca5789e4ae7dc7c43b91b424b85a Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Tue, 28 Nov 2023 09:17:24 +0700 Subject: [PATCH 11/20] fix: token and params display [web-nym] (#1312) ## Description Closes: #XXXX --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [x] ran linting via `yarn lint` - [ ] wrote tests where necessary - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] targeted the correct branch - [x] provided a link to the relevant issue or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed - [x] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) --- .changeset/empty-months-sniff.md | 6 + apps/web-nym/src/chain.json | 8 +- apps/web-nym/src/chainConfig/types.ts | 149 ++++++++ .../src/graphql/general/params.graphql | 6 +- .../graphql/general/proposal_details.graphql | 3 +- .../src/graphql/types/general_types.ts | 359 ++++++++++++++---- apps/web-nym/src/models/gov_params/index.ts | 65 ++++ .../home/components/data_blocks/hooks.ts | 107 ++++++ .../src/screens/home/components/hero/hooks.ts | 53 +++ apps/web-nym/src/screens/params/hooks.ts | 169 +++++++++ apps/web-nym/src/screens/params/index.tsx | 79 ++++ apps/web-nym/src/screens/params/types.ts | 53 +++ apps/web-nym/src/screens/params/utils.tsx | 179 +++++++++ .../src/screens/proposal_details/hooks.ts | 95 +++++ .../src/screens/proposal_details/types.ts | 24 ++ packages/ui/public/locales/en/web_nym.json | 5 + packages/ui/public/locales/it/web_nym.json | 5 + packages/ui/public/locales/pl/web_nym.json | 5 + packages/ui/public/locales/zhs/web_nym.json | 5 + packages/ui/public/locales/zht/web_nym.json | 5 + 20 files changed, 1305 insertions(+), 75 deletions(-) create mode 100644 .changeset/empty-months-sniff.md create mode 100644 apps/web-nym/src/chainConfig/types.ts create mode 100644 apps/web-nym/src/models/gov_params/index.ts create mode 100644 apps/web-nym/src/screens/home/components/data_blocks/hooks.ts create mode 100644 apps/web-nym/src/screens/home/components/hero/hooks.ts create mode 100644 apps/web-nym/src/screens/params/hooks.ts create mode 100644 apps/web-nym/src/screens/params/index.tsx create mode 100644 apps/web-nym/src/screens/params/types.ts create mode 100644 apps/web-nym/src/screens/params/utils.tsx create mode 100644 apps/web-nym/src/screens/proposal_details/hooks.ts create mode 100644 apps/web-nym/src/screens/proposal_details/types.ts create mode 100644 packages/ui/public/locales/en/web_nym.json create mode 100644 packages/ui/public/locales/it/web_nym.json create mode 100644 packages/ui/public/locales/pl/web_nym.json create mode 100644 packages/ui/public/locales/zhs/web_nym.json create mode 100644 packages/ui/public/locales/zht/web_nym.json diff --git a/.changeset/empty-months-sniff.md b/.changeset/empty-months-sniff.md new file mode 100644 index 0000000000..6a4a331c48 --- /dev/null +++ b/.changeset/empty-months-sniff.md @@ -0,0 +1,6 @@ +--- +'web-nym': patch +'ui': patch +--- + +fix: token and params display diff --git a/apps/web-nym/src/chain.json b/apps/web-nym/src/chain.json index 78dd598cfc..e321bafa7a 100644 --- a/apps/web-nym/src/chain.json +++ b/apps/web-nym/src/chain.json @@ -2,6 +2,7 @@ "chainName": "nym", "title": "NYM Block Explorer", "extra": { + "votingPowerExponent": 6, "profile": true, "graphqlWs": false }, @@ -205,7 +206,7 @@ } } }, - "keplr": "{\"chainId\":\"nyx\",\"chainName\":\"Nyx\",\"chainSymbolImageUrl\":\"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/nyx/chain.png\",\"rpc\":\"https://rpc.nyx.nodes.guru\",\"rest\":\"https://api.nyx.nodes.guru/\",\"nodeProvider\":{\"name\":\"NodesGuru\",\"email\":\"andreym@nodes.guru\",\"website\":\"https://nodes.guru/\"},\"bip44\":{\"coinType\":118},\"bech32Config\":{\"bech32PrefixAccAddr\":\"n\",\"bech32PrefixAccPub\":\"npub\",\"bech32PrefixValAddr\":\"nvaloper\",\"bech32PrefixValPub\":\"nvaloperpub\",\"bech32PrefixConsAddr\":\"nvalcons\",\"bech32PrefixConsPub\":\"nvalconspub\"},\"stakeCurrency\":{\"coinDenom\":\"nyx\",\"coinMinimalDenom\":\"unyx\",\"coinDecimals\":6},\"currencies\":[{\"coinDenom\":\"NYM\",\"coinMinimalDenom\":\"unym\",\"coinDecimals\":6,\"coinGeckoId\":\"nym\"},{\"coinDenom\":\"NYX\",\"coinMinimalDenom\":\"unyx\",\"coinDecimals\":6,\"coinGeckoId\":\"nyx\"}],\"feeCurrencies\":[{\"coinDenom\":\"nym\",\"coinMinimalDenom\":\"unym\",\"coinDecimals\":6,\"coinGeckoId\":\"nym\"},{\"coinDenom\":\"nyx\",\"coinMinimalDenom\":\"unyx\",\"coinDecimals\":6,\"coinGeckoId\":\"nyx\"}],\"features\":[\"cosmwasm\"]}", + "keplr": "{\"chainId\":\"nyx\",\"chainName\":\"Nyx\",\"chainSymbolImageUrl\":\"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/nyx/chain.png\",\"rpc\":\"https://rpc.nyx.nodes.guru\",\"rest\":\"https://api.nyx.nodes.guru/\",\"nodeProvider\":{\"name\":\"NodesGuru\",\"email\":\"andreym@nodes.guru\",\"website\":\"https://nodes.guru/\"},\"bip44\":{\"coinType\":118},\"bech32Config\":{\"bech32PrefixAccAddr\":\"n\",\"bech32PrefixAccPub\":\"npub\",\"bech32PrefixValAddr\":\"nvaloper\",\"bech32PrefixValPub\":\"nvaloperpub\",\"bech32PrefixConsAddr\":\"nvalcons\",\"bech32PrefixConsPub\":\"nvalconspub\"},\"stakeCurrency\":{\"coinDenom\":\"nyx\",\"coinMinimalDenom\":\"unyx\",\"coinDecimals\":6},\"currencies\":[{\"coinDenom\":\"NYX\",\"coinMinimalDenom\":\"unyx\",\"coinDecimals\":6,\"coinGeckoId\":\"nym\"},{\"coinDenom\":\"NYX\",\"coinMinimalDenom\":\"unyx\",\"coinDecimals\":6,\"coinGeckoId\":\"nyx\"}],\"feeCurrencies\":[{\"coinDenom\":\"nyx\",\"coinMinimalDenom\":\"unyx\",\"coinDecimals\":6,\"coinGeckoId\":\"nym\"},{\"coinDenom\":\"nyx\",\"coinMinimalDenom\":\"unyx\",\"coinDecimals\":6,\"coinGeckoId\":\"nyx\"}],\"features\":[\"cosmwasm\"]}", "chains": [ { "network": "nyx", @@ -221,8 +222,13 @@ }, "primaryTokenUnit": "unyx", "votingPowerTokenUnit": "unyx", + "priceTokenUnit": "unym", "tokenUnits": { "unyx": { + "display": "nyx", + "exponent": 6 + }, + "unym": { "display": "nym", "exponent": 6 } diff --git a/apps/web-nym/src/chainConfig/types.ts b/apps/web-nym/src/chainConfig/types.ts new file mode 100644 index 0000000000..1aa953fcaa --- /dev/null +++ b/apps/web-nym/src/chainConfig/types.ts @@ -0,0 +1,149 @@ +export interface ChainSettings { + network: string; + chainType: string; + genesis: { + time: string; + height: number; + }; + prefix: { + consensus: string; + validator: string; + account: string; + }; + primaryTokenUnit: string; + priceTokenUnit: string; + votingPowerTokenUnit: string; + tokenUnits: { + [token: string]: { + display: string; + exponent: number; + }; + }; + endpoints: { + graphql?: string; + graphqlWebsocket?: string; + publicRpcWebsocket?: string; + }; + marketing: { + matomoURL?: string; + matomoSiteID?: string; + }; +} + +export interface PaletteSettings { + primary: { + main?: string; + contractText?: string; + }; + background: { + default?: string; + paper?: string; + }; + divider?: string; + text: { + primary?: string; + secondary?: string; + }; + custom: { + general: { + background?: string; + surfaceOne?: string; + surfaceTwo?: string; + surfaceThree?: string; + icon?: string; + }; + fonts: { + fontOne?: string; + fontTwo?: string; + fontThree?: string; + fontFour?: string; + fontFive?: string; + highlight?: string; + }; + primaryData: { + one?: string; + two?: string; + three?: string; + four?: string; + }; + results: { + pass?: string; + fail?: string; + }; + tokenomics: { + one?: string; + two?: string; + three?: string; + }; + conditions: { + zero?: string; + one?: string; + two?: string; + three?: string; + }; + charts: { + zero?: string; + one?: string; + two?: string; + three?: string; + four?: string; + five?: string; + }; + tags: { + zero?: string; + one?: string; + two?: string; + three?: string; + four?: string; + five?: string; + six?: string; + seven?: string; + eight?: string; + nine?: string; + ten?: string; + eleven?: string; + twelve?: string; + thirteen?: string; + fourteen?: string; + fifteen?: string; + sixteen?: string; + seventeen?: string; + eighteen?: string; + nineteen?: string; + twenty?: string; + }; + wallet: { + background?: string; + backgroundTwo?: string; + surfaceOne: string; + surfaceTwo: string; + surfaceThree: string; + surfaceFour: string; + surfaceFive: string; + divider?: string; + textPrimary?: string; + textSecondary?: string; + active?: string; + inactive?: string; + }; + }; +} + +export interface ChainConfig extends ChainSettings { + chainName: string; + title: string; + extra: { + profile: boolean; + graphqlWs: boolean; + votingPowerExponent?: number; + }; + basePath: string; + previewImage?: string; + themes: { + default: string; + themeList: Array<'dark' | 'light' | 'deuteranopia' | 'tritanopia'>; + dark: PaletteSettings; + light: PaletteSettings; + }; + keplr: string | undefined; +} diff --git a/apps/web-nym/src/graphql/general/params.graphql b/apps/web-nym/src/graphql/general/params.graphql index b5415d40e3..6c98662632 100644 --- a/apps/web-nym/src/graphql/general/params.graphql +++ b/apps/web-nym/src/graphql/general/params.graphql @@ -11,9 +11,7 @@ query Params { distributionParams: distribution_params(limit: 1, order_by: {height: desc}) { params } - govParams: gov_params (limit: 1, order_by: {height: desc}) { - depositParams: deposit_params - tallyParams: tally_params - votingParams: voting_params + govParams: gov_params(limit: 1, order_by: {height: desc}) { + params } } diff --git a/apps/web-nym/src/graphql/general/proposal_details.graphql b/apps/web-nym/src/graphql/general/proposal_details.graphql index 82ddef911b..2f810101ee 100644 --- a/apps/web-nym/src/graphql/general/proposal_details.graphql +++ b/apps/web-nym/src/graphql/general/proposal_details.graphql @@ -7,7 +7,6 @@ query ProposalDetails($proposalId: Int) { content proposalId: id submitTime: submit_time - proposalType: proposal_type depositEndTime: deposit_end_time votingStartTime: voting_start_time votingEndTime: voting_end_time @@ -25,7 +24,7 @@ query ProposalDetailsTally($proposalId: Int) { bondedTokens: bonded_tokens } quorum: gov_params (limit: 1, order_by: {height: desc}) { - tallyParams: tally_params + tallyParams: params } } diff --git a/apps/web-nym/src/graphql/types/general_types.ts b/apps/web-nym/src/graphql/types/general_types.ts index 074e39f6ad..c98df8c3c9 100644 --- a/apps/web-nym/src/graphql/types/general_types.ts +++ b/apps/web-nym/src/graphql/types/general_types.ts @@ -185,6 +185,14 @@ export type Account = { __typename?: 'account'; address: Scalars['String']; /** An array relationship */ + feeGrantAllowancesByGranterAddress: Array; + /** An aggregate relationship */ + feeGrantAllowancesByGranterAddress_aggregate: Fee_Grant_Allowance_Aggregate; + /** An array relationship */ + fee_grant_allowances: Array; + /** An aggregate relationship */ + fee_grant_allowances_aggregate: Fee_Grant_Allowance_Aggregate; + /** An array relationship */ proposal_deposits: Array; /** An aggregate relationship */ proposal_deposits_aggregate: Proposal_Deposit_Aggregate; @@ -209,6 +217,46 @@ export type Account = { }; +/** columns and relationships of "account" */ +export type AccountFeeGrantAllowancesByGranterAddressArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountFeeGrantAllowancesByGranterAddress_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountFee_Grant_AllowancesArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountFee_Grant_Allowances_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + /** columns and relationships of "account" */ export type AccountProposal_DepositsArgs = { distinct_on?: InputMaybe>; @@ -336,6 +384,8 @@ export type Account_Bool_Exp = { _not?: InputMaybe; _or?: InputMaybe>; address?: InputMaybe; + feeGrantAllowancesByGranterAddress?: InputMaybe; + fee_grant_allowances?: InputMaybe; proposal_deposits?: InputMaybe; proposal_votes?: InputMaybe; proposals?: InputMaybe; @@ -359,6 +409,8 @@ export type Account_Min_Fields = { /** Ordering options when selecting data from "account". */ export type Account_Order_By = { address?: InputMaybe; + feeGrantAllowancesByGranterAddress_aggregate?: InputMaybe; + fee_grant_allowances_aggregate?: InputMaybe; proposal_deposits_aggregate?: InputMaybe; proposal_votes_aggregate?: InputMaybe; proposals_aggregate?: InputMaybe; @@ -2199,6 +2251,21 @@ export type Fee_Grant_Allowance_Aggregate_FieldsCountArgs = { distinct?: InputMaybe; }; +/** order by aggregate values of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + /** aggregate avg on columns */ export type Fee_Grant_Allowance_Avg_Fields = { __typename?: 'fee_grant_allowance_avg_fields'; @@ -2206,6 +2273,12 @@ export type Fee_Grant_Allowance_Avg_Fields = { id?: Maybe; }; +/** order by avg() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Avg_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + /** Boolean expression to filter rows from the table "fee_grant_allowance". All fields are combined with a logical 'AND'. */ export type Fee_Grant_Allowance_Bool_Exp = { _and?: InputMaybe>; @@ -2229,6 +2302,14 @@ export type Fee_Grant_Allowance_Max_Fields = { id?: Maybe; }; +/** order by max() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Max_Order_By = { + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; +}; + /** aggregate min on columns */ export type Fee_Grant_Allowance_Min_Fields = { __typename?: 'fee_grant_allowance_min_fields'; @@ -2238,6 +2319,14 @@ export type Fee_Grant_Allowance_Min_Fields = { id?: Maybe; }; +/** order by min() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Min_Order_By = { + grantee_address?: InputMaybe; + granter_address?: InputMaybe; + height?: InputMaybe; + id?: InputMaybe; +}; + /** Ordering options when selecting data from "fee_grant_allowance". */ export type Fee_Grant_Allowance_Order_By = { allowance?: InputMaybe; @@ -2270,6 +2359,12 @@ export type Fee_Grant_Allowance_Stddev_Fields = { id?: Maybe; }; +/** order by stddev() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stddev_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + /** aggregate stddev_pop on columns */ export type Fee_Grant_Allowance_Stddev_Pop_Fields = { __typename?: 'fee_grant_allowance_stddev_pop_fields'; @@ -2277,6 +2372,12 @@ export type Fee_Grant_Allowance_Stddev_Pop_Fields = { id?: Maybe; }; +/** order by stddev_pop() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stddev_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + /** aggregate stddev_samp on columns */ export type Fee_Grant_Allowance_Stddev_Samp_Fields = { __typename?: 'fee_grant_allowance_stddev_samp_fields'; @@ -2284,6 +2385,12 @@ export type Fee_Grant_Allowance_Stddev_Samp_Fields = { id?: Maybe; }; +/** order by stddev_samp() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Stddev_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + /** aggregate sum on columns */ export type Fee_Grant_Allowance_Sum_Fields = { __typename?: 'fee_grant_allowance_sum_fields'; @@ -2291,6 +2398,12 @@ export type Fee_Grant_Allowance_Sum_Fields = { id?: Maybe; }; +/** order by sum() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Sum_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + /** aggregate var_pop on columns */ export type Fee_Grant_Allowance_Var_Pop_Fields = { __typename?: 'fee_grant_allowance_var_pop_fields'; @@ -2298,6 +2411,12 @@ export type Fee_Grant_Allowance_Var_Pop_Fields = { id?: Maybe; }; +/** order by var_pop() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Var_Pop_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + /** aggregate var_samp on columns */ export type Fee_Grant_Allowance_Var_Samp_Fields = { __typename?: 'fee_grant_allowance_var_samp_fields'; @@ -2305,6 +2424,12 @@ export type Fee_Grant_Allowance_Var_Samp_Fields = { id?: Maybe; }; +/** order by var_samp() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Var_Samp_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + /** aggregate variance on columns */ export type Fee_Grant_Allowance_Variance_Fields = { __typename?: 'fee_grant_allowance_variance_fields'; @@ -2312,6 +2437,12 @@ export type Fee_Grant_Allowance_Variance_Fields = { id?: Maybe; }; +/** order by variance() on columns of table "fee_grant_allowance" */ +export type Fee_Grant_Allowance_Variance_Order_By = { + height?: InputMaybe; + id?: InputMaybe; +}; + /** columns and relationships of "genesis" */ export type Genesis = { __typename?: 'genesis'; @@ -2444,28 +2575,14 @@ export type Genesis_Variance_Fields = { /** columns and relationships of "gov_params" */ export type Gov_Params = { __typename?: 'gov_params'; - deposit_params: Scalars['jsonb']; height: Scalars['bigint']; one_row_id: Scalars['Boolean']; - tally_params: Scalars['jsonb']; - voting_params: Scalars['jsonb']; -}; - - -/** columns and relationships of "gov_params" */ -export type Gov_ParamsDeposit_ParamsArgs = { - path?: InputMaybe; -}; - - -/** columns and relationships of "gov_params" */ -export type Gov_ParamsTally_ParamsArgs = { - path?: InputMaybe; + params: Scalars['jsonb']; }; /** columns and relationships of "gov_params" */ -export type Gov_ParamsVoting_ParamsArgs = { +export type Gov_ParamsParamsArgs = { path?: InputMaybe; }; @@ -2510,11 +2627,9 @@ export type Gov_Params_Bool_Exp = { _and?: InputMaybe>; _not?: InputMaybe; _or?: InputMaybe>; - deposit_params?: InputMaybe; height?: InputMaybe; one_row_id?: InputMaybe; - tally_params?: InputMaybe; - voting_params?: InputMaybe; + params?: InputMaybe; }; /** aggregate max on columns */ @@ -2531,25 +2646,19 @@ export type Gov_Params_Min_Fields = { /** Ordering options when selecting data from "gov_params". */ export type Gov_Params_Order_By = { - deposit_params?: InputMaybe; height?: InputMaybe; one_row_id?: InputMaybe; - tally_params?: InputMaybe; - voting_params?: InputMaybe; + params?: InputMaybe; }; /** select columns of table "gov_params" */ export enum Gov_Params_Select_Column { - /** column name */ - DepositParams = 'deposit_params', /** column name */ Height = 'height', /** column name */ OneRowId = 'one_row_id', /** column name */ - TallyParams = 'tally_params', - /** column name */ - VotingParams = 'voting_params' + Params = 'params' } /** aggregate stddev on columns */ @@ -2756,6 +2865,8 @@ export type Message = { partition_id: Scalars['bigint']; /** An object relationship */ transaction?: Maybe; + /** An object relationship */ + transactionByPartitionIdTransactionHash?: Maybe; transaction_hash: Scalars['String']; type: Scalars['String']; value: Scalars['jsonb']; @@ -2797,6 +2908,21 @@ export type Message_Aggregate_FieldsCountArgs = { distinct?: InputMaybe; }; +/** order by aggregate values of table "message" */ +export type Message_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + /** aggregate avg on columns */ export type Message_Avg_Fields = { __typename?: 'message_avg_fields'; @@ -2805,6 +2931,13 @@ export type Message_Avg_Fields = { partition_id?: Maybe; }; +/** order by avg() on columns of table "message" */ +export type Message_Avg_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + /** Boolean expression to filter rows from the table "message". All fields are combined with a logical 'AND'. */ export type Message_Bool_Exp = { _and?: InputMaybe>; @@ -2815,6 +2948,7 @@ export type Message_Bool_Exp = { involved_accounts_addresses?: InputMaybe<_Text_Comparison_Exp>; partition_id?: InputMaybe; transaction?: InputMaybe; + transactionByPartitionIdTransactionHash?: InputMaybe; transaction_hash?: InputMaybe; type?: InputMaybe; value?: InputMaybe; @@ -2830,6 +2964,15 @@ export type Message_Max_Fields = { type?: Maybe; }; +/** order by max() on columns of table "message" */ +export type Message_Max_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; +}; + /** aggregate min on columns */ export type Message_Min_Fields = { __typename?: 'message_min_fields'; @@ -2840,6 +2983,15 @@ export type Message_Min_Fields = { type?: Maybe; }; +/** order by min() on columns of table "message" */ +export type Message_Min_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; + transaction_hash?: InputMaybe; + type?: InputMaybe; +}; + /** Ordering options when selecting data from "message". */ export type Message_Order_By = { height?: InputMaybe; @@ -2847,6 +2999,7 @@ export type Message_Order_By = { involved_accounts_addresses?: InputMaybe; partition_id?: InputMaybe; transaction?: InputMaybe; + transactionByPartitionIdTransactionHash?: InputMaybe; transaction_hash?: InputMaybe; type?: InputMaybe; value?: InputMaybe; @@ -2878,6 +3031,13 @@ export type Message_Stddev_Fields = { partition_id?: Maybe; }; +/** order by stddev() on columns of table "message" */ +export type Message_Stddev_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + /** aggregate stddev_pop on columns */ export type Message_Stddev_Pop_Fields = { __typename?: 'message_stddev_pop_fields'; @@ -2886,6 +3046,13 @@ export type Message_Stddev_Pop_Fields = { partition_id?: Maybe; }; +/** order by stddev_pop() on columns of table "message" */ +export type Message_Stddev_Pop_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + /** aggregate stddev_samp on columns */ export type Message_Stddev_Samp_Fields = { __typename?: 'message_stddev_samp_fields'; @@ -2894,6 +3061,13 @@ export type Message_Stddev_Samp_Fields = { partition_id?: Maybe; }; +/** order by stddev_samp() on columns of table "message" */ +export type Message_Stddev_Samp_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + /** aggregate sum on columns */ export type Message_Sum_Fields = { __typename?: 'message_sum_fields'; @@ -2902,6 +3076,13 @@ export type Message_Sum_Fields = { partition_id?: Maybe; }; +/** order by sum() on columns of table "message" */ +export type Message_Sum_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + /** aggregate var_pop on columns */ export type Message_Var_Pop_Fields = { __typename?: 'message_var_pop_fields'; @@ -2910,6 +3091,13 @@ export type Message_Var_Pop_Fields = { partition_id?: Maybe; }; +/** order by var_pop() on columns of table "message" */ +export type Message_Var_Pop_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + /** aggregate var_samp on columns */ export type Message_Var_Samp_Fields = { __typename?: 'message_var_samp_fields'; @@ -2918,6 +3106,13 @@ export type Message_Var_Samp_Fields = { partition_id?: Maybe; }; +/** order by var_samp() on columns of table "message" */ +export type Message_Var_Samp_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + /** aggregate variance on columns */ export type Message_Variance_Fields = { __typename?: 'message_variance_fields'; @@ -2926,6 +3121,13 @@ export type Message_Variance_Fields = { partition_id?: Maybe; }; +/** order by variance() on columns of table "message" */ +export type Message_Variance_Order_By = { + height?: InputMaybe; + index?: InputMaybe; + partition_id?: InputMaybe; +}; + export type Messages_By_Address_Args = { addresses?: InputMaybe; limit?: InputMaybe; @@ -3411,18 +3613,17 @@ export type Proposal = { deposit_end_time?: Maybe; description: Scalars['String']; id: Scalars['Int']; + metadata: Scalars['String']; /** An array relationship */ proposal_deposits: Array; /** An aggregate relationship */ proposal_deposits_aggregate: Proposal_Deposit_Aggregate; - proposal_route: Scalars['String']; /** An object relationship */ proposal_tally_result?: Maybe; /** An array relationship */ proposal_tally_results: Array; /** An aggregate relationship */ proposal_tally_results_aggregate: Proposal_Tally_Result_Aggregate; - proposal_type: Scalars['String']; /** An array relationship */ proposal_votes: Array; /** An aggregate relationship */ @@ -3594,11 +3795,10 @@ export type Proposal_Bool_Exp = { deposit_end_time?: InputMaybe; description?: InputMaybe; id?: InputMaybe; + metadata?: InputMaybe; proposal_deposits?: InputMaybe; - proposal_route?: InputMaybe; proposal_tally_result?: InputMaybe; proposal_tally_results?: InputMaybe; - proposal_type?: InputMaybe; proposal_votes?: InputMaybe; proposer?: InputMaybe; proposer_address?: InputMaybe; @@ -3625,6 +3825,7 @@ export type Proposal_Deposit = { proposal: Proposal; proposal_id: Scalars['Int']; timestamp?: Maybe; + transaction_hash: Scalars['String']; }; /** aggregated selection of "proposal_deposit" */ @@ -3698,6 +3899,7 @@ export type Proposal_Deposit_Bool_Exp = { proposal?: InputMaybe; proposal_id?: InputMaybe; timestamp?: InputMaybe; + transaction_hash?: InputMaybe; }; /** aggregate max on columns */ @@ -3707,6 +3909,7 @@ export type Proposal_Deposit_Max_Fields = { height?: Maybe; proposal_id?: Maybe; timestamp?: Maybe; + transaction_hash?: Maybe; }; /** order by max() on columns of table "proposal_deposit" */ @@ -3715,6 +3918,7 @@ export type Proposal_Deposit_Max_Order_By = { height?: InputMaybe; proposal_id?: InputMaybe; timestamp?: InputMaybe; + transaction_hash?: InputMaybe; }; /** aggregate min on columns */ @@ -3724,6 +3928,7 @@ export type Proposal_Deposit_Min_Fields = { height?: Maybe; proposal_id?: Maybe; timestamp?: Maybe; + transaction_hash?: Maybe; }; /** order by min() on columns of table "proposal_deposit" */ @@ -3732,6 +3937,7 @@ export type Proposal_Deposit_Min_Order_By = { height?: InputMaybe; proposal_id?: InputMaybe; timestamp?: InputMaybe; + transaction_hash?: InputMaybe; }; /** Ordering options when selecting data from "proposal_deposit". */ @@ -3744,6 +3950,7 @@ export type Proposal_Deposit_Order_By = { proposal?: InputMaybe; proposal_id?: InputMaybe; timestamp?: InputMaybe; + transaction_hash?: InputMaybe; }; /** select columns of table "proposal_deposit" */ @@ -3757,7 +3964,9 @@ export enum Proposal_Deposit_Select_Column { /** column name */ ProposalId = 'proposal_id', /** column name */ - Timestamp = 'timestamp' + Timestamp = 'timestamp', + /** column name */ + TransactionHash = 'transaction_hash' } /** aggregate stddev on columns */ @@ -3857,8 +4066,7 @@ export type Proposal_Max_Fields = { deposit_end_time?: Maybe; description?: Maybe; id?: Maybe; - proposal_route?: Maybe; - proposal_type?: Maybe; + metadata?: Maybe; proposer_address?: Maybe; status?: Maybe; submit_time?: Maybe; @@ -3872,8 +4080,7 @@ export type Proposal_Max_Order_By = { deposit_end_time?: InputMaybe; description?: InputMaybe; id?: InputMaybe; - proposal_route?: InputMaybe; - proposal_type?: InputMaybe; + metadata?: InputMaybe; proposer_address?: InputMaybe; status?: InputMaybe; submit_time?: InputMaybe; @@ -3888,8 +4095,7 @@ export type Proposal_Min_Fields = { deposit_end_time?: Maybe; description?: Maybe; id?: Maybe; - proposal_route?: Maybe; - proposal_type?: Maybe; + metadata?: Maybe; proposer_address?: Maybe; status?: Maybe; submit_time?: Maybe; @@ -3903,8 +4109,7 @@ export type Proposal_Min_Order_By = { deposit_end_time?: InputMaybe; description?: InputMaybe; id?: InputMaybe; - proposal_route?: InputMaybe; - proposal_type?: InputMaybe; + metadata?: InputMaybe; proposer_address?: InputMaybe; status?: InputMaybe; submit_time?: InputMaybe; @@ -3919,11 +4124,10 @@ export type Proposal_Order_By = { deposit_end_time?: InputMaybe; description?: InputMaybe; id?: InputMaybe; + metadata?: InputMaybe; proposal_deposits_aggregate?: InputMaybe; - proposal_route?: InputMaybe; proposal_tally_result?: InputMaybe; proposal_tally_results_aggregate?: InputMaybe; - proposal_type?: InputMaybe; proposal_votes_aggregate?: InputMaybe; proposer?: InputMaybe; proposer_address?: InputMaybe; @@ -3947,9 +4151,7 @@ export enum Proposal_Select_Column { /** column name */ Id = 'id', /** column name */ - ProposalRoute = 'proposal_route', - /** column name */ - ProposalType = 'proposal_type', + Metadata = 'metadata', /** column name */ ProposerAddress = 'proposer_address', /** column name */ @@ -4750,6 +4952,7 @@ export type Proposal_Vote = { proposal_id: Scalars['Int']; timestamp?: Maybe; voter_address: Scalars['String']; + weight?: Maybe; }; /** aggregated selection of "proposal_vote" */ @@ -4823,6 +5026,7 @@ export type Proposal_Vote_Bool_Exp = { proposal_id?: InputMaybe; timestamp?: InputMaybe; voter_address?: InputMaybe; + weight?: InputMaybe; }; /** aggregate max on columns */ @@ -4833,6 +5037,7 @@ export type Proposal_Vote_Max_Fields = { proposal_id?: Maybe; timestamp?: Maybe; voter_address?: Maybe; + weight?: Maybe; }; /** order by max() on columns of table "proposal_vote" */ @@ -4842,6 +5047,7 @@ export type Proposal_Vote_Max_Order_By = { proposal_id?: InputMaybe; timestamp?: InputMaybe; voter_address?: InputMaybe; + weight?: InputMaybe; }; /** aggregate min on columns */ @@ -4852,6 +5058,7 @@ export type Proposal_Vote_Min_Fields = { proposal_id?: Maybe; timestamp?: Maybe; voter_address?: Maybe; + weight?: Maybe; }; /** order by min() on columns of table "proposal_vote" */ @@ -4861,6 +5068,7 @@ export type Proposal_Vote_Min_Order_By = { proposal_id?: InputMaybe; timestamp?: InputMaybe; voter_address?: InputMaybe; + weight?: InputMaybe; }; /** Ordering options when selecting data from "proposal_vote". */ @@ -4873,6 +5081,7 @@ export type Proposal_Vote_Order_By = { proposal_id?: InputMaybe; timestamp?: InputMaybe; voter_address?: InputMaybe; + weight?: InputMaybe; }; /** select columns of table "proposal_vote" */ @@ -4886,7 +5095,9 @@ export enum Proposal_Vote_Select_Column { /** column name */ Timestamp = 'timestamp', /** column name */ - VoterAddress = 'voter_address' + VoterAddress = 'voter_address', + /** column name */ + Weight = 'weight' } /** aggregate stddev on columns */ @@ -6392,6 +6603,8 @@ export type Software_Upgrade_Plan = { height: Scalars['bigint']; info: Scalars['String']; plan_name: Scalars['String']; + /** An object relationship */ + proposal?: Maybe; proposal_id?: Maybe; upgrade_height: Scalars['bigint']; }; @@ -6442,6 +6655,7 @@ export type Software_Upgrade_Plan_Bool_Exp = { height?: InputMaybe; info?: InputMaybe; plan_name?: InputMaybe; + proposal?: InputMaybe; proposal_id?: InputMaybe; upgrade_height?: InputMaybe; }; @@ -6471,6 +6685,7 @@ export type Software_Upgrade_Plan_Order_By = { height?: InputMaybe; info?: InputMaybe; plan_name?: InputMaybe; + proposal?: InputMaybe; proposal_id?: InputMaybe; upgrade_height?: InputMaybe; }; @@ -8978,6 +9193,10 @@ export type Transaction = { logs?: Maybe; memo?: Maybe; messages: Scalars['jsonb']; + /** An array relationship */ + messagesByPartitionIdTransactionHash: Array; + /** An aggregate relationship */ + messagesByPartitionIdTransactionHash_aggregate: Message_Aggregate; partition_id: Scalars['bigint']; raw_log?: Maybe; signatures: Scalars['_text']; @@ -9004,6 +9223,26 @@ export type TransactionMessagesArgs = { }; +/** columns and relationships of "transaction" */ +export type TransactionMessagesByPartitionIdTransactionHashArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "transaction" */ +export type TransactionMessagesByPartitionIdTransactionHash_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + /** columns and relationships of "transaction" */ export type TransactionSigner_InfosArgs = { path?: InputMaybe; @@ -9085,6 +9324,7 @@ export type Transaction_Bool_Exp = { logs?: InputMaybe; memo?: InputMaybe; messages?: InputMaybe; + messagesByPartitionIdTransactionHash?: InputMaybe; partition_id?: InputMaybe; raw_log?: InputMaybe; signatures?: InputMaybe<_Text_Comparison_Exp>; @@ -9149,6 +9389,7 @@ export type Transaction_Order_By = { logs?: InputMaybe; memo?: InputMaybe; messages?: InputMaybe; + messagesByPartitionIdTransactionHash_aggregate?: InputMaybe; partition_id?: InputMaybe; raw_log?: InputMaybe; signatures?: InputMaybe; @@ -11468,7 +11709,6 @@ export type Wasm_Params = { code_upload_access: Scalars['access_config']; height: Scalars['bigint']; instantiate_default_permission: Scalars['Int']; - max_wasm_code_size: Scalars['Int']; one_row_id: Scalars['Boolean']; }; @@ -11507,7 +11747,6 @@ export type Wasm_Params_Avg_Fields = { __typename?: 'wasm_params_avg_fields'; height?: Maybe; instantiate_default_permission?: Maybe; - max_wasm_code_size?: Maybe; }; /** Boolean expression to filter rows from the table "wasm_params". All fields are combined with a logical 'AND'. */ @@ -11518,7 +11757,6 @@ export type Wasm_Params_Bool_Exp = { code_upload_access?: InputMaybe; height?: InputMaybe; instantiate_default_permission?: InputMaybe; - max_wasm_code_size?: InputMaybe; one_row_id?: InputMaybe; }; @@ -11527,7 +11765,6 @@ export type Wasm_Params_Max_Fields = { __typename?: 'wasm_params_max_fields'; height?: Maybe; instantiate_default_permission?: Maybe; - max_wasm_code_size?: Maybe; }; /** aggregate min on columns */ @@ -11535,7 +11772,6 @@ export type Wasm_Params_Min_Fields = { __typename?: 'wasm_params_min_fields'; height?: Maybe; instantiate_default_permission?: Maybe; - max_wasm_code_size?: Maybe; }; /** Ordering options when selecting data from "wasm_params". */ @@ -11543,7 +11779,6 @@ export type Wasm_Params_Order_By = { code_upload_access?: InputMaybe; height?: InputMaybe; instantiate_default_permission?: InputMaybe; - max_wasm_code_size?: InputMaybe; one_row_id?: InputMaybe; }; @@ -11556,8 +11791,6 @@ export enum Wasm_Params_Select_Column { /** column name */ InstantiateDefaultPermission = 'instantiate_default_permission', /** column name */ - MaxWasmCodeSize = 'max_wasm_code_size', - /** column name */ OneRowId = 'one_row_id' } @@ -11566,7 +11799,6 @@ export type Wasm_Params_Stddev_Fields = { __typename?: 'wasm_params_stddev_fields'; height?: Maybe; instantiate_default_permission?: Maybe; - max_wasm_code_size?: Maybe; }; /** aggregate stddev_pop on columns */ @@ -11574,7 +11806,6 @@ export type Wasm_Params_Stddev_Pop_Fields = { __typename?: 'wasm_params_stddev_pop_fields'; height?: Maybe; instantiate_default_permission?: Maybe; - max_wasm_code_size?: Maybe; }; /** aggregate stddev_samp on columns */ @@ -11582,7 +11813,6 @@ export type Wasm_Params_Stddev_Samp_Fields = { __typename?: 'wasm_params_stddev_samp_fields'; height?: Maybe; instantiate_default_permission?: Maybe; - max_wasm_code_size?: Maybe; }; /** aggregate sum on columns */ @@ -11590,7 +11820,6 @@ export type Wasm_Params_Sum_Fields = { __typename?: 'wasm_params_sum_fields'; height?: Maybe; instantiate_default_permission?: Maybe; - max_wasm_code_size?: Maybe; }; /** aggregate var_pop on columns */ @@ -11598,7 +11827,6 @@ export type Wasm_Params_Var_Pop_Fields = { __typename?: 'wasm_params_var_pop_fields'; height?: Maybe; instantiate_default_permission?: Maybe; - max_wasm_code_size?: Maybe; }; /** aggregate var_samp on columns */ @@ -11606,7 +11834,6 @@ export type Wasm_Params_Var_Samp_Fields = { __typename?: 'wasm_params_var_samp_fields'; height?: Maybe; instantiate_default_permission?: Maybe; - max_wasm_code_size?: Maybe; }; /** aggregate variance on columns */ @@ -11614,7 +11841,6 @@ export type Wasm_Params_Variance_Fields = { __typename?: 'wasm_params_variance_fields'; height?: Maybe; instantiate_default_permission?: Maybe; - max_wasm_code_size?: Maybe; }; export type AccountCommissionQueryVariables = Exact<{ @@ -11767,14 +11993,14 @@ export type OnlineVotingPowerQuery = { activeTotal: { __typename?: 'validator_st export type ParamsQueryVariables = Exact<{ [key: string]: never; }>; -export type ParamsQuery = { stakingParams: Array<{ __typename?: 'staking_params', params: any }>, slashingParams: Array<{ __typename?: 'slashing_params', params: any }>, mintParams: Array<{ __typename?: 'mint_params', params: any }>, distributionParams: Array<{ __typename?: 'distribution_params', params: any }>, govParams: Array<{ __typename?: 'gov_params', depositParams: any, tallyParams: any, votingParams: any }> }; +export type ParamsQuery = { stakingParams: Array<{ __typename?: 'staking_params', params: any }>, slashingParams: Array<{ __typename?: 'slashing_params', params: any }>, mintParams: Array<{ __typename?: 'mint_params', params: any }>, distributionParams: Array<{ __typename?: 'distribution_params', params: any }>, govParams: Array<{ __typename?: 'gov_params', params: any }> }; export type ProposalDetailsQueryVariables = Exact<{ proposalId?: InputMaybe; }>; -export type ProposalDetailsQuery = { proposal: Array<{ __typename?: 'proposal', title: string, description: string, status?: string | null, content: any, proposer: string, proposalId: number, submitTime: any, proposalType: string, depositEndTime?: any | null, votingStartTime?: any | null, votingEndTime?: any | null }> }; +export type ProposalDetailsQuery = { proposal: Array<{ __typename?: 'proposal', title: string, description: string, status?: string | null, content: any, proposer: string, proposalId: number, submitTime: any, depositEndTime?: any | null, votingStartTime?: any | null, votingEndTime?: any | null }> }; export type ProposalDetailsTallyQueryVariables = Exact<{ proposalId?: InputMaybe; @@ -12766,9 +12992,7 @@ export const ParamsDocument = gql` params } govParams: gov_params(limit: 1, order_by: {height: desc}) { - depositParams: deposit_params - tallyParams: tally_params - votingParams: voting_params + params } } `; @@ -12809,7 +13033,6 @@ export const ProposalDetailsDocument = gql` content proposalId: id submitTime: submit_time - proposalType: proposal_type depositEndTime: deposit_end_time votingStartTime: voting_start_time votingEndTime: voting_end_time @@ -12860,7 +13083,7 @@ export const ProposalDetailsTallyDocument = gql` bondedTokens: bonded_tokens } quorum: gov_params(limit: 1, order_by: {height: desc}) { - tallyParams: tally_params + tallyParams: params } } `; diff --git a/apps/web-nym/src/models/gov_params/index.ts b/apps/web-nym/src/models/gov_params/index.ts new file mode 100644 index 0000000000..2a13f6536c --- /dev/null +++ b/apps/web-nym/src/models/gov_params/index.ts @@ -0,0 +1,65 @@ +import * as R from 'ramda'; + +class GovParams { + public params: { + quorum: string; + threshold: string; + minDeposit: Array<{ + denom: string; + amount: string; + }>; + votingPeriod: number; + burnVoteVeto: boolean; + vetoThreshold: string; + maxDepositPeriod: number; + minInitialDepositRatio: string; + burnProposalDepositPrevote: boolean; + }; + + constructor(payload: object) { + this.params = R.pathOr( + { + quorum: '', + threshold: '', + minDeposit: [], + votingPeriod: 0, + burnVoteVeto: false, + vetoThreshold: '', + maxDepositPeriod: 0, + minInitialDepositRatio: '', + burnProposalDepositPrevote: false, + }, + ['params'], + payload + ); + } + + static fromJson(data: object): GovParams { + return { + params: { + quorum: R.pathOr('0', ['params', 'quorum'], data), + threshold: R.pathOr('0', ['params', 'threshold'], data), + minDeposit: R.pathOr( + [], + ['params', 'min_deposit'], + data + ).map((x) => ({ + denom: x.denom, + amount: String(x.amount), + })), + votingPeriod: R.pathOr(0, ['params', 'voting_period'], data), + burnVoteVeto: R.pathOr(false, ['params', 'burn_veto_vote'], data), + vetoThreshold: R.pathOr('0', ['params', 'veto_threshold'], data), + maxDepositPeriod: R.pathOr(0, ['params', 'max_deposit_period'], data), + minInitialDepositRatio: R.pathOr('0', ['params', 'min_initial_deposit_ratio'], data), + burnProposalDepositPrevote: R.pathOr( + false, + ['params', 'burn_proposal_deposit_prevote'], + data + ), + }, + }; + } +} + +export default GovParams; diff --git a/apps/web-nym/src/screens/home/components/data_blocks/hooks.ts b/apps/web-nym/src/screens/home/components/data_blocks/hooks.ts new file mode 100644 index 0000000000..a2697fc0a2 --- /dev/null +++ b/apps/web-nym/src/screens/home/components/data_blocks/hooks.ts @@ -0,0 +1,107 @@ +import numeral from 'numeral'; +import { useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { + ActiveValidatorCountQuery, + AverageBlockTimeQuery, + TokenPriceListenerSubscription, + useActiveValidatorCountQuery, + useAverageBlockTimeQuery, + useLatestBlockHeightListenerSubscription, + useTokenPriceListenerSubscription, +} from '@/graphql/types/general_types'; + +const { priceTokenUnit, tokenUnits } = chainConfig(); + +type DataBlocksState = { + blockHeight: number; + blockTime: number; + price: number | null; + validators: { + active: number; + total: number; + }; +}; + +const formatAverageBlockTime = (data: AverageBlockTimeQuery, state: DataBlocksState) => + data.averageBlockTime[0]?.averageTime ?? state.blockTime; + +const formatTokenPrice = (data: TokenPriceListenerSubscription, state: DataBlocksState) => { + if (data?.tokenPrice[0]?.price) { + return numeral(numeral(data?.tokenPrice[0]?.price).format('0.0000', Math.floor)).value(); + } + return state.price; +}; + +const formatActiveValidatorsCount = (data: ActiveValidatorCountQuery) => ({ + active: data.activeTotal.aggregate?.count ?? 0, + total: data.total?.aggregate?.count ?? 0, +}); + +export const useDataBlocks = () => { + const [state, setState] = useState({ + blockHeight: 0, + blockTime: 0, + price: null, + validators: { + active: 0, + total: 0, + }, + }); + + // ==================================== + // block height + // ==================================== + + useLatestBlockHeightListenerSubscription({ + onData: (data) => { + setState((prevState) => ({ + ...prevState, + blockHeight: data.data.data?.height?.[0]?.height ?? 0, + })); + }, + }); + + // ==================================== + // block time + // ==================================== + useAverageBlockTimeQuery({ + onCompleted: (data) => { + setState((prevState) => ({ + ...prevState, + blockTime: formatAverageBlockTime(data, state), + })); + }, + }); + + // ==================================== + // token price + // ==================================== + useTokenPriceListenerSubscription({ + variables: { + denom: tokenUnits?.[priceTokenUnit]?.display, + }, + onData: (data) => { + setState((prevState) => ({ + ...prevState, + price: data.data.data ? formatTokenPrice(data.data.data, state) : 0, + })); + }, + }); + + // ==================================== + // validators + // ==================================== + useActiveValidatorCountQuery({ + onCompleted: (data) => { + setState((prevState) => ({ + ...prevState, + validators: formatActiveValidatorsCount(data), + })); + }, + }); + + return { + state, + }; +}; diff --git a/apps/web-nym/src/screens/home/components/hero/hooks.ts b/apps/web-nym/src/screens/home/components/hero/hooks.ts new file mode 100644 index 0000000000..fa397753f4 --- /dev/null +++ b/apps/web-nym/src/screens/home/components/hero/hooks.ts @@ -0,0 +1,53 @@ +import * as R from 'ramda'; +import { useCallback, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { useTokenPriceHistoryQuery } from '@/graphql/types/general_types'; +import type { HeroState } from '@/screens/home/components/hero/types'; + +const { priceTokenUnit, tokenUnits } = chainConfig(); +const limit = 48; + +export const useHero = () => { + const [state, setState] = useState({ + loading: true, + exists: true, + tokenPriceHistory: [], + }); + + const handleSetState = useCallback((stateChange: (prevState: HeroState) => HeroState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, []); + + useTokenPriceHistoryQuery({ + variables: { + limit, + denom: tokenUnits?.[priceTokenUnit]?.display, + }, + onCompleted: (data) => { + handleSetState((prevState) => { + const newState = { + ...prevState, + loading: false, + tokenPriceHistory: + data.tokenPrice.length === limit + ? [...data.tokenPrice].reverse().map((x) => ({ + time: x.timestamp, + value: x.price, + })) + : prevState.tokenPriceHistory, + }; + return R.equals(prevState, newState) ? prevState : newState; + }); + }, + onError: () => { + handleSetState((prevState) => ({ ...prevState, loading: false })); + }, + }); + + return { + state, + }; +}; diff --git a/apps/web-nym/src/screens/params/hooks.ts b/apps/web-nym/src/screens/params/hooks.ts new file mode 100644 index 0000000000..f7ccabc92b --- /dev/null +++ b/apps/web-nym/src/screens/params/hooks.ts @@ -0,0 +1,169 @@ +import * as R from 'ramda'; +import { useCallback, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { ParamsQuery, useParamsQuery } from '@/graphql/types/general_types'; +import { DistributionParams, MintParams, SlashingParams, StakingParams } from '@/models'; +import numeral from 'numeral'; + +import { formatToken } from '@/utils/format_token'; +import type { ParamsState } from './types'; +import GovParams from '../../models/gov_params'; + +const { primaryTokenUnit } = chainConfig(); + +const initialState: ParamsState = { + loading: true, + exists: true, + staking: null, + slashing: null, + minting: null, + distribution: null, + gov: null, +}; + +// ================================ +// staking +// ================================ +const formatStaking = (data: ParamsQuery) => { + if (data.stakingParams.length) { + const stakingParamsRaw = StakingParams.fromJson(data?.stakingParams?.[0]?.params ?? {}); + return { + bondDenom: stakingParamsRaw.bondDenom, + unbondingTime: stakingParamsRaw.unbondingTime, + maxEntries: stakingParamsRaw.maxEntries, + historicalEntries: stakingParamsRaw.historicalEntries, + maxValidators: stakingParamsRaw.maxValidators, + }; + } + + return null; +}; + +// ================================ +// slashing +// ================================ +const formatSlashing = (data: ParamsQuery) => { + if (data.slashingParams.length) { + const slashingParamsRaw = SlashingParams.fromJson(data?.slashingParams?.[0]?.params ?? {}); + return { + downtimeJailDuration: slashingParamsRaw.downtimeJailDuration, + minSignedPerWindow: slashingParamsRaw.minSignedPerWindow, + signedBlockWindow: slashingParamsRaw.signedBlockWindow, + slashFractionDoubleSign: slashingParamsRaw.slashFractionDoubleSign, + slashFractionDowntime: slashingParamsRaw.slashFractionDowntime, + }; + } + return null; +}; + +// ================================ +// minting +// ================================ +const formatMint = (data: ParamsQuery) => { + if (data.mintParams.length) { + const mintParamsRaw = MintParams.fromJson(data?.mintParams?.[0]?.params ?? {}); + + return { + blocksPerYear: mintParamsRaw.blocksPerYear, + goalBonded: mintParamsRaw.goalBonded, + inflationMax: mintParamsRaw.inflationMax, + inflationMin: mintParamsRaw.inflationMin, + inflationRateChange: mintParamsRaw.inflationRateChange, + mintDenom: mintParamsRaw.mintDenom, + }; + } + + return null; +}; + +// ================================ +// distribution +// ================================ +const formatDistribution = (data: ParamsQuery) => { + if (data.distributionParams.length) { + const distributionParamsRaw = DistributionParams.fromJson( + data?.distributionParams?.[0]?.params ?? {} + ); + return { + baseProposerReward: distributionParamsRaw.baseProposerReward, + bonusProposerReward: distributionParamsRaw.bonusProposerReward, + communityTax: distributionParamsRaw.communityTax, + withdrawAddressEnabled: distributionParamsRaw.withdrawAddressEnabled, + }; + } + + return null; +}; + +// ================================ +// gov +// ================================ +const formatGov = (data: ParamsQuery) => { + if (data.govParams.length) { + const govParamsRaw = GovParams.fromJson(data?.govParams?.[0] ?? {}); + return { + quorum: numeral(numeral(govParamsRaw?.params?.quorum).format('0.[00]')).value() ?? 0, + threshold: numeral(numeral(govParamsRaw?.params?.threshold).format('0.[00]')).value() ?? 0, + minDeposit: + formatToken( + govParamsRaw?.params?.minDeposit?.[0]?.amount ?? 0, + govParamsRaw?.params?.minDeposit?.[0]?.denom ?? primaryTokenUnit + ) ?? 0, + votingPeriod: govParamsRaw?.params?.votingPeriod ?? 0, + burnVoteVeto: govParamsRaw?.params?.burnVoteVeto ?? false, + vetoThreshold: + numeral(numeral(govParamsRaw?.params?.vetoThreshold).format('0.[00]')).value() ?? 0, + maxDepositPeriod: govParamsRaw?.params?.maxDepositPeriod ?? 0, + minInitialDepositRatio: govParamsRaw?.params?.minInitialDepositRatio ?? '', + burnProposalDepositPrevote: govParamsRaw?.params?.burnProposalDepositPrevote ?? false, + }; + } + return null; +}; + +const formatParam = (data: ParamsQuery) => { + const results: Partial = {}; + + results.staking = formatStaking(data); + + results.slashing = formatSlashing(data); + + results.minting = formatMint(data); + + results.distribution = formatDistribution(data); + + results.gov = formatGov(data); + + return results; +}; + +export const useParams = () => { + const [state, setState] = useState(initialState); + + const handleSetState = useCallback((stateChange: (prevState: ParamsState) => ParamsState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, []); + + // ================================ + // param query + // ================================ + useParamsQuery({ + onCompleted: (data) => { + handleSetState((prevState) => ({ + ...prevState, + loading: false, + ...formatParam(data), + })); + }, + onError: () => { + handleSetState((prevState) => ({ ...prevState, loading: false })); + }, + }); + + return { + state, + }; +}; diff --git a/apps/web-nym/src/screens/params/index.tsx b/apps/web-nym/src/screens/params/index.tsx new file mode 100644 index 0000000000..e7087ba347 --- /dev/null +++ b/apps/web-nym/src/screens/params/index.tsx @@ -0,0 +1,79 @@ +import BoxDetails from '@/components/box_details'; +import Layout from '@/components/layout'; +import LoadAndExist from '@/components/load_and_exist'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import { useParams } from '@/screens/params/hooks'; +import useStyles from '@/screens/params/styles'; +import { + formatDistribution, + formatGov, + formatMinting, + formatSlashing, + formatStaking, +} from '@/screens/params/utils'; +import { NextSeo } from 'next-seo'; + +const Params = () => { + const { t } = useAppTranslation('params'); + const { classes } = useStyles(); + const { state } = useParams(); + + const staking = state.staking + ? { + title: t('staking') ?? undefined, + details: formatStaking(state.staking, t), + } + : null; + + const slashing = state.slashing + ? { + title: t('slashing') ?? undefined, + details: formatSlashing(state.slashing, t), + } + : null; + + const minting = state.minting + ? { + title: t('minting') ?? undefined, + details: formatMinting(state.minting, t), + } + : null; + + const distribution = state.distribution + ? { + title: t('distribution') ?? undefined, + details: formatDistribution(state.distribution, t), + } + : null; + + const gov = state.gov + ? { + title: t('gov') ?? undefined, + details: formatGov(state.gov, t), + } + : null; + + return ( + <> + + + + + {staking && } + {slashing && } + {minting && } + {distribution && } + {gov && } + + + + + ); +}; + +export default Params; diff --git a/apps/web-nym/src/screens/params/types.ts b/apps/web-nym/src/screens/params/types.ts new file mode 100644 index 0000000000..db0e0da854 --- /dev/null +++ b/apps/web-nym/src/screens/params/types.ts @@ -0,0 +1,53 @@ +export interface Staking { + bondDenom: string; + unbondingTime: number; + maxEntries: number; + historicalEntries: number; + maxValidators: number; +} + +export interface Slashing { + downtimeJailDuration: number; + minSignedPerWindow: number; + signedBlockWindow: number; + slashFractionDoubleSign: number; + slashFractionDowntime: number; +} + +export interface Minting { + blocksPerYear: number; + goalBonded: number; + inflationMax: number; + inflationMin: number; + inflationRateChange: number; + mintDenom: string; +} + +export interface Distribution { + baseProposerReward: number; + bonusProposerReward: number; + communityTax: number; + withdrawAddressEnabled: boolean; +} + +export interface Gov { + quorum: number; + threshold: number; + minDeposit: TokenUnit; + votingPeriod: number; + burnVoteVeto: boolean; + vetoThreshold: number; + maxDepositPeriod: number; + minInitialDepositRatio: string; + burnProposalDepositPrevote: boolean; +} + +export interface ParamsState { + loading: boolean; + exists: boolean; + staking: Staking | null; + slashing: Slashing | null; + minting: Minting | null; + distribution: Distribution | null; + gov: Gov | null; +} diff --git a/apps/web-nym/src/screens/params/utils.tsx b/apps/web-nym/src/screens/params/utils.tsx new file mode 100644 index 0000000000..5506c8a9dd --- /dev/null +++ b/apps/web-nym/src/screens/params/utils.tsx @@ -0,0 +1,179 @@ +import { nanoToSeconds, secondsToDays } from '@/utils/time'; +import type { TFunction } from '@/hooks/useAppTranslation'; +import numeral from 'numeral'; +import type { Distribution, Minting, Slashing, Staking, Gov } from './types'; + +const convertBySeconds = (seconds: number, t: TFunction) => { + const SECONDS_IN_DAY = 86400; + return seconds >= SECONDS_IN_DAY + ? t('days', { + day: secondsToDays(seconds), + }) + : t('seconds', { + second: seconds, + }); +}; + +export const formatStaking = (data: Staking, t: TFunction) => [ + { + key: 'bondDenom', + label: t('bondDenom'), + detail: data.bondDenom, + }, + { + key: 'unbondingTime', + label: t('unbondingTime'), + detail: convertBySeconds(nanoToSeconds(data.unbondingTime), t), + }, + { + key: 'maxEntries', + label: t('maxEntries'), + detail: numeral(data.maxEntries).format('0,0'), + }, + { + key: 'historicalEntries', + label: t('historicalEntries'), + detail: numeral(data.historicalEntries).format('0,0'), + }, + { + key: 'maxValidators', + label: t('maxValidators'), + detail: numeral(data.maxValidators).format('0,0'), + }, +]; + +export const formatSlashing = (data: Slashing, t: TFunction) => [ + { + key: 'downtimeJailDuration', + label: t('downtimeJailDuration'), + detail: t('seconds', { + second: numeral(nanoToSeconds(data.downtimeJailDuration)).format('0,0'), + }), + }, + { + key: 'minSignedPerWindow', + label: t('minSignedPerWindow'), + detail: `${numeral(data.minSignedPerWindow * 100).format('0.[00]')}%`, + }, + { + key: 'signedBlockWindow', + label: t('signedBlockWindow'), + detail: numeral(data.signedBlockWindow).format('0,0'), + }, + { + key: 'slashFractionDoubleSign', + label: t('slashFractionDoubleSign'), + detail: `${data.slashFractionDoubleSign * 100} / 100`, + }, + { + key: 'slashFractionDowntime', + label: t('slashFractionDowntime'), + detail: `${data.slashFractionDowntime * 10000} / ${numeral(10000).format('0,0')}`, + }, +]; + +export const formatMinting = (data: Minting, t: TFunction) => [ + { + key: 'blocksPerYear', + label: t('blocksPerYear'), + detail: numeral(data.blocksPerYear).format('0,0'), + }, + { + key: 'goalBonded', + label: t('goalBonded'), + detail: `${numeral(data.goalBonded * 100).format('0.[00]')}%`, + }, + { + key: 'inflationMax', + label: t('inflationMax'), + detail: `${numeral(data.inflationMax * 100).format('0.[00]')}%`, + }, + { + key: 'inflationMin', + label: t('inflationMin'), + detail: `${numeral(data.inflationMin * 100).format('0.[00]')}%`, + }, + { + key: 'inflationRateChange', + label: t('inflationRateChange'), + detail: `${numeral(data.inflationRateChange * 100).format('0.[00]')}%`, + }, + { + key: 'mintDenom', + label: t('mintDenom'), + detail: data.mintDenom, + }, +]; + +export const formatDistribution = (data: Distribution, t: TFunction) => [ + { + key: 'baseProposerReward', + label: t('baseProposerReward'), + detail: `${numeral(data.baseProposerReward * 100).format('0.[00]')}%`, + }, + { + key: 'bonusProposerReward', + label: t('bonusProposerReward'), + detail: `${numeral(data.bonusProposerReward * 100).format('0.[00]')}%`, + }, + { + key: 'communityTax', + label: t('communityTax'), + detail: `${numeral(data.communityTax * 100).format('0.[00]')}%`, + }, + { + key: 'withdrawAddressEnabled', + label: t('withdrawAddressEnabled'), + detail: `${data.withdrawAddressEnabled}`.toUpperCase(), + }, +]; + +export const formatGov = (data: Gov, t: TFunction) => [ + { + key: 'burnVoteVeto', + label: t('burnVoteVeto'), + detail: `${data.burnVoteVeto}`.toUpperCase(), + }, + { + key: 'burnProposalDepositPrevote', + label: t('burnProposalDepositPrevote'), + detail: `${data.burnProposalDepositPrevote}`.toUpperCase(), + }, + { + key: 'minDeposit', + label: t('minDeposit'), + detail: `${numeral(data.minDeposit.value).format( + '0.[00]' + )} ${data.minDeposit.displayDenom.toUpperCase()}`, + }, + { + key: 'maxDepositPeriod', + label: t('maxDepositPeriod'), + detail: convertBySeconds(nanoToSeconds(data.maxDepositPeriod), t), + }, + { + key: 'minInitialDepositRatio', + label: t('minInitialDepositRatio'), + detail: `${numeral(data.minInitialDepositRatio).format('0.[00]')}`, + }, + { + key: 'quorum', + label: t('quorum'), + detail: `${numeral(data.quorum * 100).format('0.[00]')}%`, + }, + { + key: 'threshold', + label: t('threshold'), + detail: `${numeral(data.threshold * 100).format('0.[00]')}%`, + }, + { + key: 'vetoThreshold', + label: t('vetoThreshold'), + detail: `${numeral(data.vetoThreshold * 100).format('0.[00]')}%`, + }, + { + key: 'votingPeriod', + label: t('votingPeriod'), + detail: convertBySeconds(nanoToSeconds(data.votingPeriod), t), + }, +]; diff --git a/apps/web-nym/src/screens/proposal_details/hooks.ts b/apps/web-nym/src/screens/proposal_details/hooks.ts new file mode 100644 index 0000000000..df656789ab --- /dev/null +++ b/apps/web-nym/src/screens/proposal_details/hooks.ts @@ -0,0 +1,95 @@ +import { useRouter } from 'next/router'; +import * as R from 'ramda'; +import { useCallback, useState } from 'react'; +import { ProposalDetailsQuery, useProposalDetailsQuery } from '@/graphql/types/general_types'; +import type { ProposalState } from './types'; + +// ========================= +// overview +// ========================= +const formatOverview = (data: ProposalDetailsQuery) => { + const DEFAULT_TIME = '0001-01-01T00:00:00'; + let votingStartTime = data?.proposal?.[0]?.votingStartTime ?? DEFAULT_TIME; + votingStartTime = votingStartTime === DEFAULT_TIME ? '' : votingStartTime; + let votingEndTime = data?.proposal?.[0]?.votingEndTime ?? DEFAULT_TIME; + votingEndTime = votingEndTime === DEFAULT_TIME ? '' : votingEndTime; + + const overview = { + proposer: data?.proposal?.[0]?.proposer ?? '', + content: data?.proposal?.[0]?.content ?? '', + title: data?.proposal?.[0]?.title ?? '', + id: data?.proposal?.[0]?.proposalId ?? '', + description: data?.proposal?.[0]?.description ?? '', + status: data?.proposal?.[0]?.status ?? '', + submitTime: data?.proposal?.[0]?.submitTime ?? '', + depositEndTime: data?.proposal?.[0]?.depositEndTime ?? '', + votingStartTime, + votingEndTime, + }; + + return overview; +}; + +// ========================== +// parsers +// ========================== +const formatProposalQuery = (data: ProposalDetailsQuery) => { + const stateChange: Partial = { + loading: false, + }; + + if (!data.proposal.length) { + stateChange.exists = false; + return stateChange; + } + + stateChange.overview = formatOverview(data); + + return stateChange; +}; + +export const useProposalDetails = () => { + const router = useRouter(); + const [state, setState] = useState({ + loading: true, + exists: true, + overview: { + proposer: '', + content: { + recipient: '', + amount: [], + }, + title: '', + id: 0, + description: '', + status: '', + submitTime: '', + depositEndTime: '', + votingStartTime: '', + votingEndTime: '', + }, + }); + + const handleSetState = useCallback((stateChange: (prevState: ProposalState) => ProposalState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, []); + + // ========================== + // fetch data + // ========================== + useProposalDetailsQuery({ + variables: { + proposalId: parseFloat((router?.query?.id as string) ?? '0'), + }, + onCompleted: (data) => { + handleSetState((prevState) => ({ ...prevState, ...formatProposalQuery(data) })); + }, + }); + + return { + state, + }; +}; diff --git a/apps/web-nym/src/screens/proposal_details/types.ts b/apps/web-nym/src/screens/proposal_details/types.ts new file mode 100644 index 0000000000..2055522c4b --- /dev/null +++ b/apps/web-nym/src/screens/proposal_details/types.ts @@ -0,0 +1,24 @@ +export interface OverviewType { + title: string; + id: number; + proposer: string; + description: string; + status: string; + submitTime: string; + depositEndTime: string; + votingStartTime: string | null; + votingEndTime: string | null; + content: { + recipient: string; + amount: Array<{ + amount: string; + denom: string; + }>; + }; +} + +export interface ProposalState { + loading: boolean; + exists: boolean; + overview: OverviewType; +} diff --git a/packages/ui/public/locales/en/web_nym.json b/packages/ui/public/locales/en/web_nym.json new file mode 100644 index 0000000000..b9f11ce37f --- /dev/null +++ b/packages/ui/public/locales/en/web_nym.json @@ -0,0 +1,5 @@ +{ + "params.burnVoteVeto": "Burn Vote Veto", + "params.burnProposalDepositPrevote": "Burn Proposal Deposit Prevote", + "params.minInitialDepositRatio": "Min Initial Deposit Ratio" +} \ No newline at end of file diff --git a/packages/ui/public/locales/it/web_nym.json b/packages/ui/public/locales/it/web_nym.json new file mode 100644 index 0000000000..86425218fc --- /dev/null +++ b/packages/ui/public/locales/it/web_nym.json @@ -0,0 +1,5 @@ +{ + "params.burnVoteVeto": "Brucia il veto al voto", + "params.burnProposalDepositPrevote": "Brucia il deposito della proposta prima del voto", + "params.minInitialDepositRatio": "Rapporto minimo di deposito iniziale" +} \ No newline at end of file diff --git a/packages/ui/public/locales/pl/web_nym.json b/packages/ui/public/locales/pl/web_nym.json new file mode 100644 index 0000000000..7037528ae2 --- /dev/null +++ b/packages/ui/public/locales/pl/web_nym.json @@ -0,0 +1,5 @@ +{ + "params.burnVoteVeto": "Spal głos weto", + "params.burnProposalDepositPrevote": "Spal depozyt propozycji przed głosowaniem", + "params.minInitialDepositRatio": "Min początkowy stosunek depozytu" +} \ No newline at end of file diff --git a/packages/ui/public/locales/zhs/web_nym.json b/packages/ui/public/locales/zhs/web_nym.json new file mode 100644 index 0000000000..4feae16063 --- /dev/null +++ b/packages/ui/public/locales/zhs/web_nym.json @@ -0,0 +1,5 @@ +{ + "params.burnVoteVeto": "烧毁投票否决权", + "params.burnProposalDepositPrevote": "销毁提案 存款 预投票", + "params.minInitialDepositRatio": "最低初始存款比例" +} \ No newline at end of file diff --git a/packages/ui/public/locales/zht/web_nym.json b/packages/ui/public/locales/zht/web_nym.json new file mode 100644 index 0000000000..d460f439b1 --- /dev/null +++ b/packages/ui/public/locales/zht/web_nym.json @@ -0,0 +1,5 @@ +{ + "params.burnVoteVeto": "燒毀投票否決權", + "params.burnProposalDepositPrevote": "銷毀提案押金預投票", + "params.minInitialDepositRatio": "最低初始存款比例" +} \ No newline at end of file From 13e3ff8dccecbf63545d942ba938cbc94ae0d15c Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Tue, 28 Nov 2023 13:02:11 +0700 Subject: [PATCH 12/20] fix: disable profile [web-nym] (#1313) ## Description Closes: #XXXX Disable profiles to fix the account page loading issue --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [x] ran linting via `yarn lint` - [x] wrote tests where necessary - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] targeted the correct branch - [x] provided a link to the relevant issue or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed - [x] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) --- .changeset/mean-guests-repair.md | 5 +++++ apps/web-nym/src/chain.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/mean-guests-repair.md diff --git a/.changeset/mean-guests-repair.md b/.changeset/mean-guests-repair.md new file mode 100644 index 0000000000..0d5298baa4 --- /dev/null +++ b/.changeset/mean-guests-repair.md @@ -0,0 +1,5 @@ +--- +'web-nym': patch +--- + +disable profile diff --git a/apps/web-nym/src/chain.json b/apps/web-nym/src/chain.json index e321bafa7a..f6f2ca7b4f 100644 --- a/apps/web-nym/src/chain.json +++ b/apps/web-nym/src/chain.json @@ -3,7 +3,7 @@ "title": "NYM Block Explorer", "extra": { "votingPowerExponent": 6, - "profile": true, + "profile": false, "graphqlWs": false }, "previewImage": "https://s3.bigdipper.live/nym.png", From 31003c37942fcbc59aeacab5d355255702347a09 Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Wed, 6 Dec 2023 13:46:21 +0700 Subject: [PATCH 13/20] fix: validator moniker display [web] (#1314) ## Description Closes: #XXXX [BDU-1147](https://forbole.atlassian.net/browse/BDU-1147) --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [x] ran linting via `yarn lint` - [ ] wrote tests where necessary - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] targeted the correct branch - [x] provided a link to the relevant issue or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed - [x] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) [BDU-1147]: https://forbole.atlassian.net/browse/BDU-1147?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --- .changeset/grumpy-insects-deliver.md | 5 + .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../src/hooks/useCelestiaProfile/index.ts | 64 ------ .../src/hooks/useCustomProfile/index.ts | 47 ---- .../blocks/components/desktop/index.tsx | 127 ----------- .../screens/home/components/blocks/hooks.ts | 52 ----- .../screens/home/components/blocks/types.ts | 15 -- .../src/screens/validator_details/hooks.ts | 177 --------------- .../src/screens/validator_details/types.ts | 34 --- .../validators/components/list/hooks.ts | 213 ------------------ .../validators/components/list/index.tsx | 57 ----- .../validators/components/list/types.ts | 32 --- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../src/screens/validator_details/index.tsx | 4 +- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../src/hooks/useCustomProfile/index.ts | 47 ---- .../src/hooks/useKyveProfile/index.ts | 64 ------ .../blocks/components/desktop/index.tsx | 127 ----------- .../screens/home/components/blocks/hooks.ts | 52 ----- .../screens/home/components/blocks/types.ts | 15 -- .../src/screens/validator_details/hooks.ts | 177 --------------- .../src/screens/validator_details/types.ts | 34 --- .../validators/components/list/hooks.ts | 213 ------------------ .../validators/components/list/index.tsx | 57 ----- .../validators/components/list/types.ts | 32 --- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../src/hooks/useConsensusProfile/index.ts | 64 ------ .../src/hooks/useCustomProfile/index.ts | 47 ---- .../blocks/components/desktop/index.tsx | 127 ----------- .../screens/home/components/blocks/hooks.ts | 52 ----- .../screens/home/components/blocks/types.ts | 15 -- .../src/screens/validator_details/hooks.ts | 177 --------------- .../src/screens/validator_details/types.ts | 34 --- .../validators/components/list/hooks.ts | 213 ------------------ .../validators/components/list/index.tsx | 57 ----- .../validators/components/list/types.ts | 32 --- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../src/hooks/useCustomProfile/index.ts | 47 ---- .../src/screens/validator_details/hooks.ts | 161 ------------- .../validators/components/list/hooks.ts | 212 ----------------- .../validators/components/list/index.tsx | 57 ----- .../validators/components/list/types.ts | 32 --- .../general/validators_address_list.graphql | 15 -- .../src/graphql/types/general_types.ts | 46 ---- .../general/validators_address_list.graphql | 15 -- apps/web/src/graphql/types/general_types.ts | 46 ---- .../graphql/general/proposal_details.graphql | 1 - .../general/validators_address_list.graphql | 15 -- .../ui/src/graphql/types/general_types.ts | 46 ---- .../ui/src/graphql/types/profile_types.ts | 135 +++++++++++ 105 files changed, 142 insertions(+), 4979 deletions(-) create mode 100644 .changeset/grumpy-insects-deliver.md delete mode 100644 apps/web-celestia/src/hooks/useCelestiaProfile/index.ts delete mode 100644 apps/web-celestia/src/hooks/useCustomProfile/index.ts delete mode 100644 apps/web-celestia/src/screens/home/components/blocks/components/desktop/index.tsx delete mode 100644 apps/web-celestia/src/screens/home/components/blocks/hooks.ts delete mode 100644 apps/web-celestia/src/screens/home/components/blocks/types.ts delete mode 100644 apps/web-celestia/src/screens/validator_details/hooks.ts delete mode 100644 apps/web-celestia/src/screens/validator_details/types.ts delete mode 100644 apps/web-celestia/src/screens/validators/components/list/hooks.ts delete mode 100644 apps/web-celestia/src/screens/validators/components/list/index.tsx delete mode 100644 apps/web-celestia/src/screens/validators/components/list/types.ts rename apps/{web-kyve => web-crescent}/src/screens/validator_details/index.tsx (91%) delete mode 100644 apps/web-kyve/src/hooks/useCustomProfile/index.ts delete mode 100644 apps/web-kyve/src/hooks/useKyveProfile/index.ts delete mode 100644 apps/web-kyve/src/screens/home/components/blocks/components/desktop/index.tsx delete mode 100644 apps/web-kyve/src/screens/home/components/blocks/hooks.ts delete mode 100644 apps/web-kyve/src/screens/home/components/blocks/types.ts delete mode 100644 apps/web-kyve/src/screens/validator_details/hooks.ts delete mode 100644 apps/web-kyve/src/screens/validator_details/types.ts delete mode 100644 apps/web-kyve/src/screens/validators/components/list/hooks.ts delete mode 100644 apps/web-kyve/src/screens/validators/components/list/index.tsx delete mode 100644 apps/web-kyve/src/screens/validators/components/list/types.ts delete mode 100644 apps/web-quicksilver/src/hooks/useConsensusProfile/index.ts delete mode 100644 apps/web-quicksilver/src/hooks/useCustomProfile/index.ts delete mode 100644 apps/web-quicksilver/src/screens/home/components/blocks/components/desktop/index.tsx delete mode 100644 apps/web-quicksilver/src/screens/home/components/blocks/hooks.ts delete mode 100644 apps/web-quicksilver/src/screens/home/components/blocks/types.ts delete mode 100644 apps/web-quicksilver/src/screens/validator_details/hooks.ts delete mode 100644 apps/web-quicksilver/src/screens/validator_details/types.ts delete mode 100644 apps/web-quicksilver/src/screens/validators/components/list/hooks.ts delete mode 100644 apps/web-quicksilver/src/screens/validators/components/list/index.tsx delete mode 100644 apps/web-quicksilver/src/screens/validators/components/list/types.ts delete mode 100644 apps/web-stride/src/hooks/useCustomProfile/index.ts delete mode 100644 apps/web-stride/src/screens/validator_details/hooks.ts delete mode 100644 apps/web-stride/src/screens/validators/components/list/hooks.ts delete mode 100644 apps/web-stride/src/screens/validators/components/list/index.tsx delete mode 100644 apps/web-stride/src/screens/validators/components/list/types.ts diff --git a/.changeset/grumpy-insects-deliver.md b/.changeset/grumpy-insects-deliver.md new file mode 100644 index 0000000000..3a6acf1a35 --- /dev/null +++ b/.changeset/grumpy-insects-deliver.md @@ -0,0 +1,5 @@ +--- +'web': minor +--- + +fix: validator moniker display diff --git a/apps/web-agoric/src/graphql/general/validators_address_list.graphql b/apps/web-agoric/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-agoric/src/graphql/general/validators_address_list.graphql +++ b/apps/web-agoric/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-agoric/src/graphql/types/general_types.ts b/apps/web-agoric/src/graphql/types/general_types.ts index 41393540b0..6bbfbeeb0b 100644 --- a/apps/web-agoric/src/graphql/types/general_types.ts +++ b/apps/web-agoric/src/graphql/types/general_types.ts @@ -13663,52 +13663,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-akash/src/graphql/general/validators_address_list.graphql b/apps/web-akash/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-akash/src/graphql/general/validators_address_list.graphql +++ b/apps/web-akash/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-akash/src/graphql/types/general_types.ts b/apps/web-akash/src/graphql/types/general_types.ts index 5966d69d87..8e1cfb279d 100644 --- a/apps/web-akash/src/graphql/types/general_types.ts +++ b/apps/web-akash/src/graphql/types/general_types.ts @@ -14930,52 +14930,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-archway/src/graphql/general/validators_address_list.graphql b/apps/web-archway/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-archway/src/graphql/general/validators_address_list.graphql +++ b/apps/web-archway/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-archway/src/graphql/types/general_types.ts b/apps/web-archway/src/graphql/types/general_types.ts index 9c05052f3a..15a88d79a6 100644 --- a/apps/web-archway/src/graphql/types/general_types.ts +++ b/apps/web-archway/src/graphql/types/general_types.ts @@ -9421,52 +9421,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-assetmantle/src/graphql/general/validators_address_list.graphql b/apps/web-assetmantle/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-assetmantle/src/graphql/general/validators_address_list.graphql +++ b/apps/web-assetmantle/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-assetmantle/src/graphql/types/general_types.ts b/apps/web-assetmantle/src/graphql/types/general_types.ts index 86bc7b87e8..bc3a82c256 100644 --- a/apps/web-assetmantle/src/graphql/types/general_types.ts +++ b/apps/web-assetmantle/src/graphql/types/general_types.ts @@ -13667,52 +13667,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-band/src/graphql/general/validators_address_list.graphql b/apps/web-band/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-band/src/graphql/general/validators_address_list.graphql +++ b/apps/web-band/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-band/src/graphql/types/general_types.ts b/apps/web-band/src/graphql/types/general_types.ts index 987ec72111..f1b847934f 100644 --- a/apps/web-band/src/graphql/types/general_types.ts +++ b/apps/web-band/src/graphql/types/general_types.ts @@ -13854,52 +13854,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-bitsong/src/graphql/general/validators_address_list.graphql b/apps/web-bitsong/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-bitsong/src/graphql/general/validators_address_list.graphql +++ b/apps/web-bitsong/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-bitsong/src/graphql/types/general_types.ts b/apps/web-bitsong/src/graphql/types/general_types.ts index 8be8ca1e29..ae53960006 100644 --- a/apps/web-bitsong/src/graphql/types/general_types.ts +++ b/apps/web-bitsong/src/graphql/types/general_types.ts @@ -13667,52 +13667,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-celestia/src/graphql/general/validators_address_list.graphql b/apps/web-celestia/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-celestia/src/graphql/general/validators_address_list.graphql +++ b/apps/web-celestia/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-celestia/src/graphql/types/general_types.ts b/apps/web-celestia/src/graphql/types/general_types.ts index 9370592b87..dc5c753a84 100644 --- a/apps/web-celestia/src/graphql/types/general_types.ts +++ b/apps/web-celestia/src/graphql/types/general_types.ts @@ -8574,52 +8574,6 @@ export function useCustomValidatorLazyQuery(baseOptions?: Apollo.LazyQueryHookOp export type CustomValidatorQueryHookResult = ReturnType; export type CustomValidatorLazyQueryHookResult = ReturnType; export type CustomValidatorQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-celestia/src/hooks/useCelestiaProfile/index.ts b/apps/web-celestia/src/hooks/useCelestiaProfile/index.ts deleted file mode 100644 index bc5e47f887..0000000000 --- a/apps/web-celestia/src/hooks/useCelestiaProfile/index.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { useEffect, useState } from 'react'; -import { useRecoilCallback } from 'recoil'; -import * as R from 'ramda'; -import { writeProfile } from '@/recoil/profiles/selectors'; -import { useCustomValidatorQuery } from '@/graphql/types/general_types'; - -type Profile = { - name: string; - address: string; - imageUrl: string; - bio: string; - website: string; - consensusAddress: string; -}; - -interface CelestiaProfileResult { - profile: Profile | undefined; - loading: boolean; -} - -/** - * Accepts consensus address and returns the appropriate profile - * @param consensus - the consensus address of the validator - * @param validator - the operator address of the validator - * @returns The return value is an object with the following properties: - * name, address, imageUrl - */ -const useCelestiaProfile = (consensus: string, validator: string): CelestiaProfileResult => { - const { data, loading } = useCustomValidatorQuery({ variables: { consensusAddress: consensus } }); - const [profile, setProfile] = useState(); - const setAvatarName = useRecoilCallback( - ({ set }) => - (address: string, avatarName: AvatarName | null) => - set(writeProfile(address), (prevState) => - R.equals(prevState, avatarName) ? prevState : avatarName - ), - [] - ); - useEffect(() => { - if (data && data.validatorDescriptions.length > 0) { - const validatorDescription = data.validatorDescriptions[0]; - const consensusAddress = validatorDescription.validator_address ?? ''; - const name = validatorDescription.moniker ?? ''; - const imageUrl = validatorDescription.avatar_url ?? ''; - const bio = validatorDescription.details ?? ''; - const website = validatorDescription.website ?? ''; - const address = validator; - const res: Profile = { - name, - address, - imageUrl, - bio, - website, - consensusAddress, - }; - setProfile(res); - setAvatarName(address, res); - } - }, [data, loading, setAvatarName, validator]); - - return { profile, loading }; -}; - -export default useCelestiaProfile; diff --git a/apps/web-celestia/src/hooks/useCustomProfile/index.ts b/apps/web-celestia/src/hooks/useCustomProfile/index.ts deleted file mode 100644 index fc312164f6..0000000000 --- a/apps/web-celestia/src/hooks/useCustomProfile/index.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { useEffect, useState } from 'react'; -import { ValidatorType } from '@/screens/validators/components/list/types'; - -interface AvatarName { - className?: string; - imageUrl: string | ''; - address: string; - name: string; - href?: (address: string) => string; - image?: React.ReactNode; - target?: JSX.IntrinsicElements['a']['target']; -} - -/** - * Accepts a list of state items and returns the appropriate profiles - * @param item - * @return a loading state and a list of profiles - */ -const useCustomProfile = (item: ValidatorType[]) => { - const [loading, setLoading] = useState(true); - const [profiles, setProfiles] = useState([]); - - useEffect(() => { - if (item.length) { - const data = item.map((x) => { - const address = x.validator ?? x.moniker[0].validator_address ?? ''; - const name = x.moniker[0].moniker ?? ''; - const imageUrl = x.moniker[0].avatar_url ?? ''; - const bio = x.moniker[0].details ?? ''; - const website = x.moniker[0].website ?? ''; - return { - address, - name, - imageUrl, - bio, - website, - }; - }); - setProfiles(data); - setLoading(false); - } - }, [item, loading]); - - return { profiles, loading }; -}; - -export default useCustomProfile; diff --git a/apps/web-celestia/src/screens/home/components/blocks/components/desktop/index.tsx b/apps/web-celestia/src/screens/home/components/blocks/components/desktop/index.tsx deleted file mode 100644 index 23f60319d2..0000000000 --- a/apps/web-celestia/src/screens/home/components/blocks/components/desktop/index.tsx +++ /dev/null @@ -1,127 +0,0 @@ -import AvatarName from '@/components/avatar_name'; -import Timestamp from '@/components/Timestamp'; -import useStyles from '@/screens/home/components/blocks/components/desktop/styles'; -import { columns } from '@/screens/home/components/blocks/components/desktop/utils'; -import type { ItemType } from '@/screens/home/components/blocks/types'; -import { getMiddleEllipsis } from '@/utils/get_middle_ellipsis'; -import { BLOCK_DETAILS } from '@/utils/go_to_page'; -import Table from '@mui/material/Table'; -import TableBody from '@mui/material/TableBody'; -import TableCell from '@mui/material/TableCell'; -import TableHead from '@mui/material/TableHead'; -import TableRow from '@mui/material/TableRow'; -import { AnimatePresence, motion, Variants } from 'framer-motion'; -import useAppTranslation from '@/hooks/useAppTranslation'; -import Link from 'next/link'; -import numeral from 'numeral'; -import { FC } from 'react'; -import useCelestiaProfile from '@/hooks/useCelestiaProfile'; - -type BlockRowProps = { - item: ItemType; -}; - -const variants: Variants = { - initial: { - height: 0, - display: 'flex', - alignItems: 'center', - overflow: 'hidden', - clipPath: 'inset(0 50 0 50)', - }, - animate: { - height: 50, - display: 'flex', - alignItems: 'center', - overflow: 'hidden', - clipPath: 'inset(0 0 0 0)', - }, - exit: { - height: 50, - display: 'flex', - alignItems: 'center', - overflow: 'hidden', - position: 'absolute', - marginTop: [50, 60], - opacity: 0, - transition: { duration: 0.5 }, - }, -}; - -const BlockRow: FC = ({ item }) => { - const { profile } = useCelestiaProfile(item.consensusAddress, item.proposer); - const name = profile?.name ?? ''; - const imageUrl = profile?.imageUrl ?? ''; - const address = profile?.address ?? ''; - - const formattedData = { - height: ( - - {numeral(item.height).format('0,0')} - - ), - txs: numeral(item.txs).format('0,0'), - time: , - proposer: , - hash: getMiddleEllipsis(item.hash, { - beginning: 6, - ending: 5, - }), - }; - return ( - - {columns.map((column) => { - const { key, align } = column; - return ( - - - {formattedData[key as keyof typeof formattedData]} - - - ); - })} - - ); -}; - -type DesktopProps = { - className?: string; - items: ItemType[]; -}; - -const Desktop: FC = ({ className, items }) => { - const { t } = useAppTranslation('blocks'); - const { classes, cx } = useStyles(); - - return ( -
- - - - {columns.map((column) => ( - - {t(column.key)} - - ))} - - - - - {items.map((row) => ( - - ))} - - -
-
- ); -}; - -export default Desktop; diff --git a/apps/web-celestia/src/screens/home/components/blocks/hooks.ts b/apps/web-celestia/src/screens/home/components/blocks/hooks.ts deleted file mode 100644 index bf5a258c0d..0000000000 --- a/apps/web-celestia/src/screens/home/components/blocks/hooks.ts +++ /dev/null @@ -1,52 +0,0 @@ -import * as R from 'ramda'; -import { useCallback, useState } from 'react'; -import { - BlocksListenerSubscription, - useBlocksListenerSubscription, -} from '@/graphql/types/general_types'; -import type { BlocksState } from '@/screens/home/components/blocks/types'; - -const formatBlocks = (data: BlocksListenerSubscription) => - data.blocks.map((x) => { - const proposerAddress = x?.validator?.validatorInfo?.operatorAddress ?? ''; - const consensusAddress = x?.validator?.validatorInfo?.consensusAddress ?? ''; - return { - height: x.height, - txs: x.txs ?? 0, - hash: x.hash, - timestamp: x.timestamp, - proposer: proposerAddress, - consensusAddress, - }; - }) ?? []; - -export const useBlocks = () => { - const [state, setState] = useState({ - loading: true, - items: [], - }); - - const handleSetState = useCallback((stateChange: (prevState: BlocksState) => BlocksState) => { - setState((prevState) => { - const newState = stateChange(prevState); - return R.equals(prevState, newState) ? prevState : newState; - }); - }, []); - - // ================================ - // block subscription - // ================================ - useBlocksListenerSubscription({ - onData: (data) => { - handleSetState((prevState) => ({ - ...prevState, - loading: false, - items: data.data.data ? formatBlocks(data.data.data) : [], - })); - }, - }); - - return { - state, - }; -}; diff --git a/apps/web-celestia/src/screens/home/components/blocks/types.ts b/apps/web-celestia/src/screens/home/components/blocks/types.ts deleted file mode 100644 index 522c61a7cd..0000000000 --- a/apps/web-celestia/src/screens/home/components/blocks/types.ts +++ /dev/null @@ -1,15 +0,0 @@ -export interface BlockType { - height: number; - txs: number; - timestamp: string; - proposer: string; - hash: string; - consensusAddress: string; -} - -export interface BlocksState { - loading: boolean; - items: BlockType[]; -} - -export type ItemType = BlockType; diff --git a/apps/web-celestia/src/screens/validator_details/hooks.ts b/apps/web-celestia/src/screens/validator_details/hooks.ts deleted file mode 100644 index cbc67f6920..0000000000 --- a/apps/web-celestia/src/screens/validator_details/hooks.ts +++ /dev/null @@ -1,177 +0,0 @@ -import { useRouter } from 'next/router'; -import * as R from 'ramda'; -import { useCallback, useEffect, useState } from 'react'; -import chainConfig from '@/chainConfig'; -import { useValidatorDetailsQuery, ValidatorDetailsQuery } from '@/graphql/types/general_types'; -import useCelestiaProfile from '@/hooks/useCelestiaProfile'; -import { SlashingParams } from '@/models'; -import { StatusType, ValidatorDetailsState } from '@/screens/validator_details/types'; -import { formatToken } from '@/utils/format_token'; -import { getValidatorCondition } from '@/utils/get_validator_condition'; - -const { extra, votingPowerTokenUnit } = chainConfig(); - -const initialTokenDenom: TokenUnit = { - value: '0', - displayDenom: '', - baseDenom: '', - exponent: 0, -}; - -const initialState: ValidatorDetailsState = { - exists: true, - desmosProfile: null, - overview: { - validator: '', - operatorAddress: '', - selfDelegateAddress: '', - consensusAddress: '', - description: '', - website: '', - }, - status: { - status: 0, - jailed: false, - tombstoned: false, - condition: 0, - commission: 0, - missedBlockCounter: 0, - signedBlockWindow: 0, - maxRate: '0', - }, - votingPower: { - height: 0, - overall: initialTokenDenom, - self: 0, - }, -}; - -// ============================ -// overview -// ============================ -const formatOverview = (data: ValidatorDetailsQuery) => { - const operatorAddress = data?.validator?.[0]?.validatorInfo?.operatorAddress ?? ''; - const selfDelegateAddress = data?.validator?.[0]?.validatorInfo?.selfDelegateAddress ?? ''; - const consensusAddress = data?.validator?.[0]?.validatorInfo?.consensusAddress ?? ''; - const profile = { - validator: operatorAddress, - operatorAddress, - selfDelegateAddress, - consensusAddress, - description: data.validator[0]?.validatorDescriptions?.[0]?.details ?? '', - website: data.validator[0]?.validatorDescriptions?.[0]?.website ?? '', - }; - - return profile; -}; - -// ============================ -// status -// ============================ -const formatStatus = (data: ValidatorDetailsQuery) => { - const slashingParams = SlashingParams.fromJson(data?.slashingParams?.[0]?.params ?? {}); - const missedBlockCounter = - data.validator[0]?.validatorSigningInfos?.[0]?.missedBlocksCounter ?? 0; - const { signedBlockWindow } = slashingParams; - const condition = getValidatorCondition(signedBlockWindow, missedBlockCounter); - - const profile: StatusType = { - status: data.validator[0]?.validatorStatuses?.[0]?.status ?? 3, - jailed: data.validator[0]?.validatorStatuses?.[0]?.jailed ?? false, - tombstoned: data.validator[0]?.validatorSigningInfos?.[0]?.tombstoned ?? false, - commission: data.validator[0]?.validatorCommissions?.[0]?.commission ?? 0, - condition, - missedBlockCounter, - signedBlockWindow, - maxRate: data?.validator?.[0]?.validatorInfo?.maxRate ?? '0', - }; - - return profile; -}; - -// ============================ -// votingPower -// ============================ -const formatVotingPower = (data: ValidatorDetailsQuery) => { - const selfVotingPower = - (data.validator[0]?.validatorVotingPowers?.[0]?.votingPower ?? 0) / - 10 ** (extra.votingPowerExponent ?? 0); - - const votingPower = { - self: selfVotingPower, - overall: formatToken(data?.stakingPool?.[0]?.bonded ?? 0, votingPowerTokenUnit), - height: data.validator[0]?.validatorVotingPowers?.[0]?.height ?? 0, - }; - - return votingPower; -}; - -export const useValidatorDetails = () => { - const router = useRouter(); - const [state, setState] = useState(initialState); - - const handleSetState = useCallback( - (stateChange: (prevState: ValidatorDetailsState) => ValidatorDetailsState) => { - setState((prevState) => { - const newState = stateChange(prevState); - return R.equals(prevState, newState) ? prevState : newState; - }); - }, - [] - ); - - // ========================== - // Fetch Data - // ========================== - const { loading } = useValidatorDetailsQuery({ - variables: { - address: router.query.address as string, - }, - onCompleted: (data) => { - handleSetState((prevState) => ({ ...prevState, ...formatAccountQuery(data) })); - }, - }); - - // ========================== - // Celestia Profile - // ========================== - const { profile: dataDesmosProfile, loading: loadingDesmosProfile } = useCelestiaProfile( - state.overview.consensusAddress, - state.overview.selfDelegateAddress - ); - useEffect(() => { - if (dataDesmosProfile) { - const { name, imageUrl, bio } = dataDesmosProfile; - setState((prevState) => ({ - ...prevState, - desmosProfile: { - name, - imageUrl, - bio, - dtag: name, - nickname: name, - coverUrl: '', - connections: [], - }, - })); - } - }, [dataDesmosProfile]); - - return { state, loading: loading || loadingDesmosProfile }; -}; - -function formatAccountQuery(data: ValidatorDetailsQuery): Partial { - const stateChange: Partial = {}; - - if (!data.validator.length) { - stateChange.exists = false; - return stateChange; - } - - stateChange.overview = formatOverview(data); - - stateChange.status = formatStatus(data); - stateChange.votingPower = formatVotingPower(data); - - return stateChange; -} diff --git a/apps/web-celestia/src/screens/validator_details/types.ts b/apps/web-celestia/src/screens/validator_details/types.ts deleted file mode 100644 index df700ad40f..0000000000 --- a/apps/web-celestia/src/screens/validator_details/types.ts +++ /dev/null @@ -1,34 +0,0 @@ -export interface OverviewType { - validator: string; - operatorAddress: string; - selfDelegateAddress: string; - consensusAddress: string; - description: string; - website: string; -} - -export interface StatusType { - inActiveSet?: string; - jailed: boolean; - tombstoned: boolean; - commission: number; - signedBlockWindow: number; - missedBlockCounter: number; - maxRate: string; - status: number; - condition: number; -} - -export interface VotingPowerType { - height: number; - overall: TokenUnit; - self: number; -} - -export interface ValidatorDetailsState { - exists: boolean; - desmosProfile: DesmosProfile | null; - overview: OverviewType; - status: StatusType; - votingPower: VotingPowerType; -} diff --git a/apps/web-celestia/src/screens/validators/components/list/hooks.ts b/apps/web-celestia/src/screens/validators/components/list/hooks.ts deleted file mode 100644 index b42cb49595..0000000000 --- a/apps/web-celestia/src/screens/validators/components/list/hooks.ts +++ /dev/null @@ -1,213 +0,0 @@ -import Big from 'big.js'; -import numeral from 'numeral'; -import * as R from 'ramda'; -import { SyntheticEvent, useCallback, useState } from 'react'; -import chainConfig from '@/chainConfig'; -import { useValidatorsQuery, ValidatorsQuery } from '@/graphql/types/general_types'; -import { SlashingParams } from '@/models'; -import type { - ItemType, - ValidatorsState, - ValidatorType, -} from '@/screens/validators/components/list/types'; -import { formatToken } from '@/utils/format_token'; -import { getValidatorCondition } from '@/utils/get_validator_condition'; - -const { extra, votingPowerTokenUnit } = chainConfig(); - -// ========================== -// Parse data -// ========================== -const formatValidators = (data: ValidatorsQuery): Partial => { - const slashingParams = SlashingParams.fromJson(data?.slashingParams?.[0]?.params ?? {}); - const votingPowerOverall = - numeral( - formatToken(data?.stakingPool?.[0]?.bondedTokens ?? 0, votingPowerTokenUnit).value - ).value() ?? 0; - - const { signedBlockWindow } = slashingParams; - - let formattedItems: ValidatorType[] = data.validator - .filter((x) => x.validatorInfo && x.validatorDescriptions) - .map((x) => { - const votingPower = - (x?.validatorVotingPowers?.[0]?.votingPower ?? 0) / 10 ** (extra.votingPowerExponent ?? 0); - const votingPowerPercent = votingPowerOverall - ? numeral((votingPower / votingPowerOverall) * 100).value() - : 0; - - const missedBlockCounter = x?.validatorSigningInfos?.[0]?.missedBlocksCounter ?? 0; - const condition = getValidatorCondition(signedBlockWindow, missedBlockCounter); - - return { - moniker: x.validatorDescriptions ?? '', - consensus: x.validatorInfo?.consensusAddress ?? '', - validator: x.validatorInfo?.operatorAddress ?? '', - votingPower: votingPower ?? 0, - votingPowerPercent: votingPowerPercent ?? 0, - commission: (x?.validatorCommissions?.[0]?.commission ?? 0) * 100, - condition, - status: x?.validatorStatuses?.[0]?.status ?? 0, - jailed: x?.validatorStatuses?.[0]?.jailed ?? false, - tombstoned: x?.validatorSigningInfos?.[0]?.tombstoned ?? false, - }; - }); - - // get the top 34% validators - formattedItems = formattedItems.sort((a, b) => (a.votingPower > b.votingPower ? -1 : 1)); - - // add key to indicate they are part of top 34% - let cumulativeVotingPower = Big(0); - let reached = false; - formattedItems.forEach((x) => { - if (x.status === 3) { - const totalVp = cumulativeVotingPower.add(x.votingPowerPercent); - if (totalVp.lte(34) && !reached) { - x.topVotingPower = true; - } - - if (totalVp.gt(34) && !reached) { - x.topVotingPower = true; - reached = true; - } - - cumulativeVotingPower = totalVp; - } - }); - - return { - votingPowerOverall, - items: formattedItems, - }; -}; - -export const useValidators = () => { - const [search, setSearch] = useState(''); - const [state, setState] = useState({ - loading: true, - exists: true, - items: [], - votingPowerOverall: 0, - tab: 0, - sortKey: 'validator.name', - sortDirection: 'asc', - }); - - const handleSetState = useCallback( - (stateChange: (prevState: ValidatorsState) => ValidatorsState) => { - setState((prevState) => { - const newState = stateChange(prevState); - return R.equals(prevState, newState) ? prevState : newState; - }); - }, - [] - ); - - // ========================== - // Fetch Data - // ========================== - useValidatorsQuery({ - onCompleted: (data) => { - handleSetState((prevState) => ({ - ...prevState, - loading: false, - ...formatValidators(data), - })); - }, - onError: () => { - handleSetState((prevState) => ({ - ...prevState, - loading: false, - exists: false, - })); - }, - }); - - const handleTabChange = useCallback( - (_event: SyntheticEvent, newValue: number) => { - setState((prevState) => ({ - ...prevState, - tab: newValue, - })); - }, - [] - ); - - const handleSort = useCallback( - (key: string) => { - if (key === state.sortKey) { - setState((prevState) => ({ - ...prevState, - sortDirection: prevState.sortDirection === 'asc' ? 'desc' : 'asc', - })); - } else { - setState((prevState) => ({ - ...prevState, - sortKey: key, - sortDirection: 'asc', // new key so we start the sort by asc - })); - } - }, - [state.sortKey] - ); - - const handleSearch = useCallback((value: string) => { - setSearch(value); - }, []); - - const sortItems = useCallback( - (items: ItemType[]) => { - let sorted: ItemType[] = R.clone(items); - - if (state.tab === 0) { - sorted = sorted.filter((x) => x.status === 3); - } - - if (state.tab === 1) { - sorted = sorted.filter((x) => x.status !== 3); - } - - if (search) { - sorted = sorted.filter((x) => { - const formattedSearch = search.toLowerCase().replace(/ /g, ''); - return ( - x.validator.name.toLowerCase().replace(/ /g, '').includes(formattedSearch) || - x.validator.address.toLowerCase().includes(formattedSearch) - ); - }); - } - - if (state.sortKey && state.sortDirection) { - sorted.sort((a, b) => { - let compareA = R.pathOr('', [...state.sortKey.split('.')], a); - let compareB = R.pathOr('', [...state.sortKey.split('.')], b); - - if (typeof compareA === 'string' && typeof compareB === 'string') { - compareA = compareA.toLowerCase(); - compareB = compareB.toLowerCase(); - } - - if (compareA < compareB) { - return state.sortDirection === 'asc' ? -1 : 1; - } - if (compareA > compareB) { - return state.sortDirection === 'asc' ? 1 : -1; - } - return 0; - }); - } - - return sorted; - }, - [search, state.sortDirection, state.sortKey, state.tab] - ); - - return { - state, - handleTabChange, - handleSort, - handleSearch, - sortItems, - search, - }; -}; diff --git a/apps/web-celestia/src/screens/validators/components/list/index.tsx b/apps/web-celestia/src/screens/validators/components/list/index.tsx deleted file mode 100644 index 26965f3d07..0000000000 --- a/apps/web-celestia/src/screens/validators/components/list/index.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { FC, ReactNode, useMemo } from 'react'; -import Box from '@/components/box'; -import LoadAndExist from '@/components/load_and_exist'; -import NoData from '@/components/no_data'; -import Desktop from '@/screens/validators/components/list/components/desktop'; -import Mobile from '@/screens/validators/components/list/components/mobile'; -import Tabs from '@/screens/validators/components/list/components/tabs'; -import { useValidators } from '@/screens/validators/components/list/hooks'; -import useStyles from '@/screens/validators/components/list/styles'; -import { useDisplayStyles } from '@/styles/useSharedStyles'; -import useCustomProfile from '@/hooks/useCustomProfile'; - -const List: FC = ({ className }) => { - const { classes, cx } = useStyles(); - const display = useDisplayStyles().classes; - const { state, handleTabChange, handleSearch, handleSort, sortItems, search } = useValidators(); - const { profiles: dataProfiles, loading } = useCustomProfile(state.items); - const items = useMemo( - () => sortItems(state.items.map((x, i) => ({ ...x, validator: dataProfiles?.[i] }))), - [state.items, dataProfiles, sortItems] - ); - - let list: ReactNode; - - if (!items.length) { - list = ; - } else { - list = ( - <> - - - - ); - } - - return ( - - - -
{list}
-
-
- ); -}; - -export default List; diff --git a/apps/web-celestia/src/screens/validators/components/list/types.ts b/apps/web-celestia/src/screens/validators/components/list/types.ts deleted file mode 100644 index 52031b052b..0000000000 --- a/apps/web-celestia/src/screens/validators/components/list/types.ts +++ /dev/null @@ -1,32 +0,0 @@ -interface MonikerType { - moniker?: string | null | undefined; - avatar_url?: string | null; - validator_address: string; - website?: string | null; - details?: string | null; -} - -export interface ValidatorType { - moniker: MonikerType[]; - validator: string; - votingPower: number; - votingPowerPercent: number; - commission: number; - condition: number; - status: number; - jailed: boolean; - tombstoned: boolean; - topVotingPower?: boolean; // top 34% VP -} - -export interface ValidatorsState { - loading: boolean; - exists: boolean; - tab: number; - sortKey: string; - sortDirection: 'asc' | 'desc'; - votingPowerOverall: number; - items: ValidatorType[]; -} - -export type ItemType = Override; diff --git a/apps/web-cheqd/src/graphql/general/validators_address_list.graphql b/apps/web-cheqd/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-cheqd/src/graphql/general/validators_address_list.graphql +++ b/apps/web-cheqd/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-cheqd/src/graphql/types/general_types.ts b/apps/web-cheqd/src/graphql/types/general_types.ts index 169a869b4f..5724931d22 100644 --- a/apps/web-cheqd/src/graphql/types/general_types.ts +++ b/apps/web-cheqd/src/graphql/types/general_types.ts @@ -9574,52 +9574,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-comdex/src/graphql/general/validators_address_list.graphql b/apps/web-comdex/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-comdex/src/graphql/general/validators_address_list.graphql +++ b/apps/web-comdex/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-comdex/src/graphql/types/general_types.ts b/apps/web-comdex/src/graphql/types/general_types.ts index a58458a4de..7af7580e50 100644 --- a/apps/web-comdex/src/graphql/types/general_types.ts +++ b/apps/web-comdex/src/graphql/types/general_types.ts @@ -14799,52 +14799,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-coreum/src/graphql/general/validators_address_list.graphql b/apps/web-coreum/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-coreum/src/graphql/general/validators_address_list.graphql +++ b/apps/web-coreum/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-coreum/src/graphql/types/general_types.ts b/apps/web-coreum/src/graphql/types/general_types.ts index e4d48bc417..1a02e8dccb 100644 --- a/apps/web-coreum/src/graphql/types/general_types.ts +++ b/apps/web-coreum/src/graphql/types/general_types.ts @@ -9404,52 +9404,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-cosmos/src/graphql/general/validators_address_list.graphql b/apps/web-cosmos/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-cosmos/src/graphql/general/validators_address_list.graphql +++ b/apps/web-cosmos/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-cosmos/src/graphql/types/general_types.ts b/apps/web-cosmos/src/graphql/types/general_types.ts index 86bc7b87e8..bc3a82c256 100644 --- a/apps/web-cosmos/src/graphql/types/general_types.ts +++ b/apps/web-cosmos/src/graphql/types/general_types.ts @@ -13667,52 +13667,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-crescent/src/graphql/general/validators_address_list.graphql b/apps/web-crescent/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-crescent/src/graphql/general/validators_address_list.graphql +++ b/apps/web-crescent/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-crescent/src/graphql/types/general_types.ts b/apps/web-crescent/src/graphql/types/general_types.ts index a681d79a4f..c143504c50 100644 --- a/apps/web-crescent/src/graphql/types/general_types.ts +++ b/apps/web-crescent/src/graphql/types/general_types.ts @@ -14059,52 +14059,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-kyve/src/screens/validator_details/index.tsx b/apps/web-crescent/src/screens/validator_details/index.tsx similarity index 91% rename from apps/web-kyve/src/screens/validator_details/index.tsx rename to apps/web-crescent/src/screens/validator_details/index.tsx index ff7f4682d1..a096f375db 100644 --- a/apps/web-kyve/src/screens/validator_details/index.tsx +++ b/apps/web-crescent/src/screens/validator_details/index.tsx @@ -40,8 +40,8 @@ const ValidatorDetails = () => { data={votingPower} status={status.status} /> - - + + diff --git a/apps/web-desmos/src/graphql/general/validators_address_list.graphql b/apps/web-desmos/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-desmos/src/graphql/general/validators_address_list.graphql +++ b/apps/web-desmos/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-desmos/src/graphql/types/general_types.ts b/apps/web-desmos/src/graphql/types/general_types.ts index 67310cf23e..5e016833be 100644 --- a/apps/web-desmos/src/graphql/types/general_types.ts +++ b/apps/web-desmos/src/graphql/types/general_types.ts @@ -13852,52 +13852,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-emoney/src/graphql/general/validators_address_list.graphql b/apps/web-emoney/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-emoney/src/graphql/general/validators_address_list.graphql +++ b/apps/web-emoney/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-emoney/src/graphql/types/general_types.ts b/apps/web-emoney/src/graphql/types/general_types.ts index 70b15a36ae..77a521cbd5 100644 --- a/apps/web-emoney/src/graphql/types/general_types.ts +++ b/apps/web-emoney/src/graphql/types/general_types.ts @@ -13564,52 +13564,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-evmos/src/graphql/general/validators_address_list.graphql b/apps/web-evmos/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-evmos/src/graphql/general/validators_address_list.graphql +++ b/apps/web-evmos/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-evmos/src/graphql/types/general_types.ts b/apps/web-evmos/src/graphql/types/general_types.ts index 2ae1478ff8..90dc327195 100644 --- a/apps/web-evmos/src/graphql/types/general_types.ts +++ b/apps/web-evmos/src/graphql/types/general_types.ts @@ -13588,52 +13588,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-gitopia/src/graphql/general/validators_address_list.graphql b/apps/web-gitopia/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-gitopia/src/graphql/general/validators_address_list.graphql +++ b/apps/web-gitopia/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-gitopia/src/graphql/types/general_types.ts b/apps/web-gitopia/src/graphql/types/general_types.ts index 7432cf4740..b80678c141 100644 --- a/apps/web-gitopia/src/graphql/types/general_types.ts +++ b/apps/web-gitopia/src/graphql/types/general_types.ts @@ -8320,52 +8320,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-humansai/src/graphql/general/validators_address_list.graphql b/apps/web-humansai/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-humansai/src/graphql/general/validators_address_list.graphql +++ b/apps/web-humansai/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-humansai/src/graphql/types/general_types.ts b/apps/web-humansai/src/graphql/types/general_types.ts index 7432cf4740..b80678c141 100644 --- a/apps/web-humansai/src/graphql/types/general_types.ts +++ b/apps/web-humansai/src/graphql/types/general_types.ts @@ -8320,52 +8320,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-jackal/src/graphql/general/validators_address_list.graphql b/apps/web-jackal/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-jackal/src/graphql/general/validators_address_list.graphql +++ b/apps/web-jackal/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-jackal/src/graphql/types/general_types.ts b/apps/web-jackal/src/graphql/types/general_types.ts index fa7edf8c52..b47802f0b5 100644 --- a/apps/web-jackal/src/graphql/types/general_types.ts +++ b/apps/web-jackal/src/graphql/types/general_types.ts @@ -8514,52 +8514,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-kyve/src/graphql/general/validators_address_list.graphql b/apps/web-kyve/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-kyve/src/graphql/general/validators_address_list.graphql +++ b/apps/web-kyve/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-kyve/src/graphql/types/general_types.ts b/apps/web-kyve/src/graphql/types/general_types.ts index 2d6c6f8e59..9c047ab4ee 100644 --- a/apps/web-kyve/src/graphql/types/general_types.ts +++ b/apps/web-kyve/src/graphql/types/general_types.ts @@ -9509,52 +9509,6 @@ export function useCustomValidatorLazyQuery(baseOptions?: Apollo.LazyQueryHookOp export type CustomValidatorQueryHookResult = ReturnType; export type CustomValidatorLazyQueryHookResult = ReturnType; export type CustomValidatorQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-kyve/src/hooks/useCustomProfile/index.ts b/apps/web-kyve/src/hooks/useCustomProfile/index.ts deleted file mode 100644 index fc312164f6..0000000000 --- a/apps/web-kyve/src/hooks/useCustomProfile/index.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { useEffect, useState } from 'react'; -import { ValidatorType } from '@/screens/validators/components/list/types'; - -interface AvatarName { - className?: string; - imageUrl: string | ''; - address: string; - name: string; - href?: (address: string) => string; - image?: React.ReactNode; - target?: JSX.IntrinsicElements['a']['target']; -} - -/** - * Accepts a list of state items and returns the appropriate profiles - * @param item - * @return a loading state and a list of profiles - */ -const useCustomProfile = (item: ValidatorType[]) => { - const [loading, setLoading] = useState(true); - const [profiles, setProfiles] = useState([]); - - useEffect(() => { - if (item.length) { - const data = item.map((x) => { - const address = x.validator ?? x.moniker[0].validator_address ?? ''; - const name = x.moniker[0].moniker ?? ''; - const imageUrl = x.moniker[0].avatar_url ?? ''; - const bio = x.moniker[0].details ?? ''; - const website = x.moniker[0].website ?? ''; - return { - address, - name, - imageUrl, - bio, - website, - }; - }); - setProfiles(data); - setLoading(false); - } - }, [item, loading]); - - return { profiles, loading }; -}; - -export default useCustomProfile; diff --git a/apps/web-kyve/src/hooks/useKyveProfile/index.ts b/apps/web-kyve/src/hooks/useKyveProfile/index.ts deleted file mode 100644 index a953fbe679..0000000000 --- a/apps/web-kyve/src/hooks/useKyveProfile/index.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { useEffect, useState } from 'react'; -import { useRecoilCallback } from 'recoil'; -import * as R from 'ramda'; -import { writeProfile } from '@/recoil/profiles/selectors'; -import { useCustomValidatorQuery } from '@/graphql/types/general_types'; - -type Profile = { - name: string; - address: string; - imageUrl: string; - bio: string; - website: string; - consensusAddress: string; -}; - -interface CelestiaProfileResult { - profile: Profile | undefined; - loading: boolean; -} - -/** - * Accepts consensus address and returns the appropriate profile - * @param consensus - the consensus address of the validator - * @param validator - the operator address of the validator - * @returns The return value is an object with the following properties: - * name, address, imageUrl - */ -const useKyveProfile = (consensus: string, validator: string): CelestiaProfileResult => { - const { data, loading } = useCustomValidatorQuery({ variables: { consensusAddress: consensus } }); - const [profile, setProfile] = useState(); - const setAvatarName = useRecoilCallback( - ({ set }) => - (address: string, avatarName: AvatarName | null) => - set(writeProfile(address), (prevState) => - R.equals(prevState, avatarName) ? prevState : avatarName - ), - [] - ); - useEffect(() => { - if (data && data.validatorDescriptions.length > 0) { - const validatorDescription = data.validatorDescriptions[0]; - const consensusAddress = validatorDescription.validator_address ?? ''; - const name = validatorDescription.moniker ?? ''; - const imageUrl = validatorDescription.avatar_url ?? ''; - const bio = validatorDescription.details ?? ''; - const website = validatorDescription.website ?? ''; - const address = validator; - const res: Profile = { - name, - address, - imageUrl, - bio, - website, - consensusAddress, - }; - setProfile(res); - setAvatarName(address, res); - } - }, [data, loading, setAvatarName, validator]); - - return { profile, loading }; -}; - -export default useKyveProfile; diff --git a/apps/web-kyve/src/screens/home/components/blocks/components/desktop/index.tsx b/apps/web-kyve/src/screens/home/components/blocks/components/desktop/index.tsx deleted file mode 100644 index 2fa8efa27f..0000000000 --- a/apps/web-kyve/src/screens/home/components/blocks/components/desktop/index.tsx +++ /dev/null @@ -1,127 +0,0 @@ -import AvatarName from '@/components/avatar_name'; -import Timestamp from '@/components/Timestamp'; -import useStyles from '@/screens/home/components/blocks/components/desktop/styles'; -import { columns } from '@/screens/home/components/blocks/components/desktop/utils'; -import type { ItemType } from '@/screens/home/components/blocks/types'; -import { getMiddleEllipsis } from '@/utils/get_middle_ellipsis'; -import { BLOCK_DETAILS } from '@/utils/go_to_page'; -import Table from '@mui/material/Table'; -import TableBody from '@mui/material/TableBody'; -import TableCell from '@mui/material/TableCell'; -import TableHead from '@mui/material/TableHead'; -import TableRow from '@mui/material/TableRow'; -import { AnimatePresence, motion, Variants } from 'framer-motion'; -import useAppTranslation from '@/hooks/useAppTranslation'; -import Link from 'next/link'; -import numeral from 'numeral'; -import { FC } from 'react'; -import useKyveProfile from '@/hooks/useKyveProfile'; - -type BlockRowProps = { - item: ItemType; -}; - -const variants: Variants = { - initial: { - height: 0, - display: 'flex', - alignItems: 'center', - overflow: 'hidden', - clipPath: 'inset(0 50 0 50)', - }, - animate: { - height: 50, - display: 'flex', - alignItems: 'center', - overflow: 'hidden', - clipPath: 'inset(0 0 0 0)', - }, - exit: { - height: 50, - display: 'flex', - alignItems: 'center', - overflow: 'hidden', - position: 'absolute', - marginTop: [50, 60], - opacity: 0, - transition: { duration: 0.5 }, - }, -}; - -const BlockRow: FC = ({ item }) => { - const { profile } = useKyveProfile(item.consensusAddress, item.proposer); - const name = profile?.name ?? ''; - const imageUrl = profile?.imageUrl ?? ''; - const address = profile?.address ?? ''; - - const formattedData = { - height: ( - - {numeral(item.height).format('0,0')} - - ), - txs: numeral(item.txs).format('0,0'), - time: , - proposer: , - hash: getMiddleEllipsis(item.hash, { - beginning: 6, - ending: 5, - }), - }; - return ( - - {columns.map((column) => { - const { key, align } = column; - return ( - - - {formattedData[key as keyof typeof formattedData]} - - - ); - })} - - ); -}; - -type DesktopProps = { - className?: string; - items: ItemType[]; -}; - -const Desktop: FC = ({ className, items }) => { - const { t } = useAppTranslation('blocks'); - const { classes, cx } = useStyles(); - - return ( -
- - - - {columns.map((column) => ( - - {t(column.key)} - - ))} - - - - - {items.map((row) => ( - - ))} - - -
-
- ); -}; - -export default Desktop; diff --git a/apps/web-kyve/src/screens/home/components/blocks/hooks.ts b/apps/web-kyve/src/screens/home/components/blocks/hooks.ts deleted file mode 100644 index bf5a258c0d..0000000000 --- a/apps/web-kyve/src/screens/home/components/blocks/hooks.ts +++ /dev/null @@ -1,52 +0,0 @@ -import * as R from 'ramda'; -import { useCallback, useState } from 'react'; -import { - BlocksListenerSubscription, - useBlocksListenerSubscription, -} from '@/graphql/types/general_types'; -import type { BlocksState } from '@/screens/home/components/blocks/types'; - -const formatBlocks = (data: BlocksListenerSubscription) => - data.blocks.map((x) => { - const proposerAddress = x?.validator?.validatorInfo?.operatorAddress ?? ''; - const consensusAddress = x?.validator?.validatorInfo?.consensusAddress ?? ''; - return { - height: x.height, - txs: x.txs ?? 0, - hash: x.hash, - timestamp: x.timestamp, - proposer: proposerAddress, - consensusAddress, - }; - }) ?? []; - -export const useBlocks = () => { - const [state, setState] = useState({ - loading: true, - items: [], - }); - - const handleSetState = useCallback((stateChange: (prevState: BlocksState) => BlocksState) => { - setState((prevState) => { - const newState = stateChange(prevState); - return R.equals(prevState, newState) ? prevState : newState; - }); - }, []); - - // ================================ - // block subscription - // ================================ - useBlocksListenerSubscription({ - onData: (data) => { - handleSetState((prevState) => ({ - ...prevState, - loading: false, - items: data.data.data ? formatBlocks(data.data.data) : [], - })); - }, - }); - - return { - state, - }; -}; diff --git a/apps/web-kyve/src/screens/home/components/blocks/types.ts b/apps/web-kyve/src/screens/home/components/blocks/types.ts deleted file mode 100644 index 522c61a7cd..0000000000 --- a/apps/web-kyve/src/screens/home/components/blocks/types.ts +++ /dev/null @@ -1,15 +0,0 @@ -export interface BlockType { - height: number; - txs: number; - timestamp: string; - proposer: string; - hash: string; - consensusAddress: string; -} - -export interface BlocksState { - loading: boolean; - items: BlockType[]; -} - -export type ItemType = BlockType; diff --git a/apps/web-kyve/src/screens/validator_details/hooks.ts b/apps/web-kyve/src/screens/validator_details/hooks.ts deleted file mode 100644 index e32f908722..0000000000 --- a/apps/web-kyve/src/screens/validator_details/hooks.ts +++ /dev/null @@ -1,177 +0,0 @@ -import { useRouter } from 'next/router'; -import * as R from 'ramda'; -import { useCallback, useEffect, useState } from 'react'; -import chainConfig from '@/chainConfig'; -import { useValidatorDetailsQuery, ValidatorDetailsQuery } from '@/graphql/types/general_types'; -import useKyveProfile from '@/hooks/useKyveProfile'; -import { SlashingParams } from '@/models'; -import { StatusType, ValidatorDetailsState } from '@/screens/validator_details/types'; -import { formatToken } from '@/utils/format_token'; -import { getValidatorCondition } from '@/utils/get_validator_condition'; - -const { extra, votingPowerTokenUnit } = chainConfig(); - -const initialTokenDenom: TokenUnit = { - value: '0', - displayDenom: '', - baseDenom: '', - exponent: 0, -}; - -const initialState: ValidatorDetailsState = { - exists: true, - desmosProfile: null, - overview: { - validator: '', - operatorAddress: '', - selfDelegateAddress: '', - consensusAddress: '', - description: '', - website: '', - }, - status: { - status: 0, - jailed: false, - tombstoned: false, - condition: 0, - commission: 0, - missedBlockCounter: 0, - signedBlockWindow: 0, - maxRate: '0', - }, - votingPower: { - height: 0, - overall: initialTokenDenom, - self: 0, - }, -}; - -// ============================ -// overview -// ============================ -const formatOverview = (data: ValidatorDetailsQuery) => { - const operatorAddress = data?.validator?.[0]?.validatorInfo?.operatorAddress ?? ''; - const selfDelegateAddress = data?.validator?.[0]?.validatorInfo?.selfDelegateAddress ?? ''; - const consensusAddress = data?.validator?.[0]?.validatorInfo?.consensusAddress ?? ''; - const profile = { - validator: operatorAddress, - operatorAddress, - selfDelegateAddress, - consensusAddress, - description: data.validator[0]?.validatorDescriptions?.[0]?.details ?? '', - website: data.validator[0]?.validatorDescriptions?.[0]?.website ?? '', - }; - - return profile; -}; - -// ============================ -// status -// ============================ -const formatStatus = (data: ValidatorDetailsQuery) => { - const slashingParams = SlashingParams.fromJson(data?.slashingParams?.[0]?.params ?? {}); - const missedBlockCounter = - data.validator[0]?.validatorSigningInfos?.[0]?.missedBlocksCounter ?? 0; - const { signedBlockWindow } = slashingParams; - const condition = getValidatorCondition(signedBlockWindow, missedBlockCounter); - - const profile: StatusType = { - status: data.validator[0]?.validatorStatuses?.[0]?.status ?? 3, - jailed: data.validator[0]?.validatorStatuses?.[0]?.jailed ?? false, - tombstoned: data.validator[0]?.validatorSigningInfos?.[0]?.tombstoned ?? false, - commission: data.validator[0]?.validatorCommissions?.[0]?.commission ?? 0, - condition, - missedBlockCounter, - signedBlockWindow, - maxRate: data?.validator?.[0]?.validatorInfo?.maxRate ?? '0', - }; - - return profile; -}; - -// ============================ -// votingPower -// ============================ -const formatVotingPower = (data: ValidatorDetailsQuery) => { - const selfVotingPower = - (data.validator[0]?.validatorVotingPowers?.[0]?.votingPower ?? 0) / - 10 ** (extra.votingPowerExponent ?? 0); - - const votingPower = { - self: selfVotingPower, - overall: formatToken(data?.stakingPool?.[0]?.bonded ?? 0, votingPowerTokenUnit), - height: data.validator[0]?.validatorVotingPowers?.[0]?.height ?? 0, - }; - - return votingPower; -}; - -export const useValidatorDetails = () => { - const router = useRouter(); - const [state, setState] = useState(initialState); - - const handleSetState = useCallback( - (stateChange: (prevState: ValidatorDetailsState) => ValidatorDetailsState) => { - setState((prevState) => { - const newState = stateChange(prevState); - return R.equals(prevState, newState) ? prevState : newState; - }); - }, - [] - ); - - // ========================== - // Fetch Data - // ========================== - const { loading } = useValidatorDetailsQuery({ - variables: { - address: router.query.address as string, - }, - onCompleted: (data) => { - handleSetState((prevState) => ({ ...prevState, ...formatAccountQuery(data) })); - }, - }); - - // ========================== - // Celestia Profile - // ========================== - const { profile: dataDesmosProfile, loading: loadingDesmosProfile } = useKyveProfile( - state.overview.consensusAddress, - state.overview.selfDelegateAddress - ); - useEffect(() => { - if (dataDesmosProfile) { - const { name, imageUrl, bio } = dataDesmosProfile; - setState((prevState) => ({ - ...prevState, - desmosProfile: { - name, - imageUrl, - bio, - dtag: name, - nickname: name, - coverUrl: '', - connections: [], - }, - })); - } - }, [dataDesmosProfile]); - - return { state, loading: loading || loadingDesmosProfile }; -}; - -function formatAccountQuery(data: ValidatorDetailsQuery): Partial { - const stateChange: Partial = {}; - - if (!data.validator.length) { - stateChange.exists = false; - return stateChange; - } - - stateChange.overview = formatOverview(data); - - stateChange.status = formatStatus(data); - stateChange.votingPower = formatVotingPower(data); - - return stateChange; -} diff --git a/apps/web-kyve/src/screens/validator_details/types.ts b/apps/web-kyve/src/screens/validator_details/types.ts deleted file mode 100644 index df700ad40f..0000000000 --- a/apps/web-kyve/src/screens/validator_details/types.ts +++ /dev/null @@ -1,34 +0,0 @@ -export interface OverviewType { - validator: string; - operatorAddress: string; - selfDelegateAddress: string; - consensusAddress: string; - description: string; - website: string; -} - -export interface StatusType { - inActiveSet?: string; - jailed: boolean; - tombstoned: boolean; - commission: number; - signedBlockWindow: number; - missedBlockCounter: number; - maxRate: string; - status: number; - condition: number; -} - -export interface VotingPowerType { - height: number; - overall: TokenUnit; - self: number; -} - -export interface ValidatorDetailsState { - exists: boolean; - desmosProfile: DesmosProfile | null; - overview: OverviewType; - status: StatusType; - votingPower: VotingPowerType; -} diff --git a/apps/web-kyve/src/screens/validators/components/list/hooks.ts b/apps/web-kyve/src/screens/validators/components/list/hooks.ts deleted file mode 100644 index b42cb49595..0000000000 --- a/apps/web-kyve/src/screens/validators/components/list/hooks.ts +++ /dev/null @@ -1,213 +0,0 @@ -import Big from 'big.js'; -import numeral from 'numeral'; -import * as R from 'ramda'; -import { SyntheticEvent, useCallback, useState } from 'react'; -import chainConfig from '@/chainConfig'; -import { useValidatorsQuery, ValidatorsQuery } from '@/graphql/types/general_types'; -import { SlashingParams } from '@/models'; -import type { - ItemType, - ValidatorsState, - ValidatorType, -} from '@/screens/validators/components/list/types'; -import { formatToken } from '@/utils/format_token'; -import { getValidatorCondition } from '@/utils/get_validator_condition'; - -const { extra, votingPowerTokenUnit } = chainConfig(); - -// ========================== -// Parse data -// ========================== -const formatValidators = (data: ValidatorsQuery): Partial => { - const slashingParams = SlashingParams.fromJson(data?.slashingParams?.[0]?.params ?? {}); - const votingPowerOverall = - numeral( - formatToken(data?.stakingPool?.[0]?.bondedTokens ?? 0, votingPowerTokenUnit).value - ).value() ?? 0; - - const { signedBlockWindow } = slashingParams; - - let formattedItems: ValidatorType[] = data.validator - .filter((x) => x.validatorInfo && x.validatorDescriptions) - .map((x) => { - const votingPower = - (x?.validatorVotingPowers?.[0]?.votingPower ?? 0) / 10 ** (extra.votingPowerExponent ?? 0); - const votingPowerPercent = votingPowerOverall - ? numeral((votingPower / votingPowerOverall) * 100).value() - : 0; - - const missedBlockCounter = x?.validatorSigningInfos?.[0]?.missedBlocksCounter ?? 0; - const condition = getValidatorCondition(signedBlockWindow, missedBlockCounter); - - return { - moniker: x.validatorDescriptions ?? '', - consensus: x.validatorInfo?.consensusAddress ?? '', - validator: x.validatorInfo?.operatorAddress ?? '', - votingPower: votingPower ?? 0, - votingPowerPercent: votingPowerPercent ?? 0, - commission: (x?.validatorCommissions?.[0]?.commission ?? 0) * 100, - condition, - status: x?.validatorStatuses?.[0]?.status ?? 0, - jailed: x?.validatorStatuses?.[0]?.jailed ?? false, - tombstoned: x?.validatorSigningInfos?.[0]?.tombstoned ?? false, - }; - }); - - // get the top 34% validators - formattedItems = formattedItems.sort((a, b) => (a.votingPower > b.votingPower ? -1 : 1)); - - // add key to indicate they are part of top 34% - let cumulativeVotingPower = Big(0); - let reached = false; - formattedItems.forEach((x) => { - if (x.status === 3) { - const totalVp = cumulativeVotingPower.add(x.votingPowerPercent); - if (totalVp.lte(34) && !reached) { - x.topVotingPower = true; - } - - if (totalVp.gt(34) && !reached) { - x.topVotingPower = true; - reached = true; - } - - cumulativeVotingPower = totalVp; - } - }); - - return { - votingPowerOverall, - items: formattedItems, - }; -}; - -export const useValidators = () => { - const [search, setSearch] = useState(''); - const [state, setState] = useState({ - loading: true, - exists: true, - items: [], - votingPowerOverall: 0, - tab: 0, - sortKey: 'validator.name', - sortDirection: 'asc', - }); - - const handleSetState = useCallback( - (stateChange: (prevState: ValidatorsState) => ValidatorsState) => { - setState((prevState) => { - const newState = stateChange(prevState); - return R.equals(prevState, newState) ? prevState : newState; - }); - }, - [] - ); - - // ========================== - // Fetch Data - // ========================== - useValidatorsQuery({ - onCompleted: (data) => { - handleSetState((prevState) => ({ - ...prevState, - loading: false, - ...formatValidators(data), - })); - }, - onError: () => { - handleSetState((prevState) => ({ - ...prevState, - loading: false, - exists: false, - })); - }, - }); - - const handleTabChange = useCallback( - (_event: SyntheticEvent, newValue: number) => { - setState((prevState) => ({ - ...prevState, - tab: newValue, - })); - }, - [] - ); - - const handleSort = useCallback( - (key: string) => { - if (key === state.sortKey) { - setState((prevState) => ({ - ...prevState, - sortDirection: prevState.sortDirection === 'asc' ? 'desc' : 'asc', - })); - } else { - setState((prevState) => ({ - ...prevState, - sortKey: key, - sortDirection: 'asc', // new key so we start the sort by asc - })); - } - }, - [state.sortKey] - ); - - const handleSearch = useCallback((value: string) => { - setSearch(value); - }, []); - - const sortItems = useCallback( - (items: ItemType[]) => { - let sorted: ItemType[] = R.clone(items); - - if (state.tab === 0) { - sorted = sorted.filter((x) => x.status === 3); - } - - if (state.tab === 1) { - sorted = sorted.filter((x) => x.status !== 3); - } - - if (search) { - sorted = sorted.filter((x) => { - const formattedSearch = search.toLowerCase().replace(/ /g, ''); - return ( - x.validator.name.toLowerCase().replace(/ /g, '').includes(formattedSearch) || - x.validator.address.toLowerCase().includes(formattedSearch) - ); - }); - } - - if (state.sortKey && state.sortDirection) { - sorted.sort((a, b) => { - let compareA = R.pathOr('', [...state.sortKey.split('.')], a); - let compareB = R.pathOr('', [...state.sortKey.split('.')], b); - - if (typeof compareA === 'string' && typeof compareB === 'string') { - compareA = compareA.toLowerCase(); - compareB = compareB.toLowerCase(); - } - - if (compareA < compareB) { - return state.sortDirection === 'asc' ? -1 : 1; - } - if (compareA > compareB) { - return state.sortDirection === 'asc' ? 1 : -1; - } - return 0; - }); - } - - return sorted; - }, - [search, state.sortDirection, state.sortKey, state.tab] - ); - - return { - state, - handleTabChange, - handleSort, - handleSearch, - sortItems, - search, - }; -}; diff --git a/apps/web-kyve/src/screens/validators/components/list/index.tsx b/apps/web-kyve/src/screens/validators/components/list/index.tsx deleted file mode 100644 index 26965f3d07..0000000000 --- a/apps/web-kyve/src/screens/validators/components/list/index.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { FC, ReactNode, useMemo } from 'react'; -import Box from '@/components/box'; -import LoadAndExist from '@/components/load_and_exist'; -import NoData from '@/components/no_data'; -import Desktop from '@/screens/validators/components/list/components/desktop'; -import Mobile from '@/screens/validators/components/list/components/mobile'; -import Tabs from '@/screens/validators/components/list/components/tabs'; -import { useValidators } from '@/screens/validators/components/list/hooks'; -import useStyles from '@/screens/validators/components/list/styles'; -import { useDisplayStyles } from '@/styles/useSharedStyles'; -import useCustomProfile from '@/hooks/useCustomProfile'; - -const List: FC = ({ className }) => { - const { classes, cx } = useStyles(); - const display = useDisplayStyles().classes; - const { state, handleTabChange, handleSearch, handleSort, sortItems, search } = useValidators(); - const { profiles: dataProfiles, loading } = useCustomProfile(state.items); - const items = useMemo( - () => sortItems(state.items.map((x, i) => ({ ...x, validator: dataProfiles?.[i] }))), - [state.items, dataProfiles, sortItems] - ); - - let list: ReactNode; - - if (!items.length) { - list = ; - } else { - list = ( - <> - - - - ); - } - - return ( - - - -
{list}
-
-
- ); -}; - -export default List; diff --git a/apps/web-kyve/src/screens/validators/components/list/types.ts b/apps/web-kyve/src/screens/validators/components/list/types.ts deleted file mode 100644 index 52031b052b..0000000000 --- a/apps/web-kyve/src/screens/validators/components/list/types.ts +++ /dev/null @@ -1,32 +0,0 @@ -interface MonikerType { - moniker?: string | null | undefined; - avatar_url?: string | null; - validator_address: string; - website?: string | null; - details?: string | null; -} - -export interface ValidatorType { - moniker: MonikerType[]; - validator: string; - votingPower: number; - votingPowerPercent: number; - commission: number; - condition: number; - status: number; - jailed: boolean; - tombstoned: boolean; - topVotingPower?: boolean; // top 34% VP -} - -export interface ValidatorsState { - loading: boolean; - exists: boolean; - tab: number; - sortKey: string; - sortDirection: 'asc' | 'desc'; - votingPowerOverall: number; - items: ValidatorType[]; -} - -export type ItemType = Override; diff --git a/apps/web-likecoin/src/graphql/general/validators_address_list.graphql b/apps/web-likecoin/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-likecoin/src/graphql/general/validators_address_list.graphql +++ b/apps/web-likecoin/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-likecoin/src/graphql/types/general_types.ts b/apps/web-likecoin/src/graphql/types/general_types.ts index 6208037103..c977dd880a 100644 --- a/apps/web-likecoin/src/graphql/types/general_types.ts +++ b/apps/web-likecoin/src/graphql/types/general_types.ts @@ -13355,52 +13355,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-nym/src/graphql/general/validators_address_list.graphql b/apps/web-nym/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-nym/src/graphql/general/validators_address_list.graphql +++ b/apps/web-nym/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-nym/src/graphql/types/general_types.ts b/apps/web-nym/src/graphql/types/general_types.ts index c98df8c3c9..a13260a0a4 100644 --- a/apps/web-nym/src/graphql/types/general_types.ts +++ b/apps/web-nym/src/graphql/types/general_types.ts @@ -13858,52 +13858,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-osmosis/src/graphql/general/validators_address_list.graphql b/apps/web-osmosis/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-osmosis/src/graphql/general/validators_address_list.graphql +++ b/apps/web-osmosis/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-osmosis/src/graphql/types/general_types.ts b/apps/web-osmosis/src/graphql/types/general_types.ts index b15f0753f5..9c44459080 100644 --- a/apps/web-osmosis/src/graphql/types/general_types.ts +++ b/apps/web-osmosis/src/graphql/types/general_types.ts @@ -13658,52 +13658,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-persistence/src/graphql/general/validators_address_list.graphql b/apps/web-persistence/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-persistence/src/graphql/general/validators_address_list.graphql +++ b/apps/web-persistence/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-persistence/src/graphql/types/general_types.ts b/apps/web-persistence/src/graphql/types/general_types.ts index e440908fad..3217092227 100644 --- a/apps/web-persistence/src/graphql/types/general_types.ts +++ b/apps/web-persistence/src/graphql/types/general_types.ts @@ -9663,52 +9663,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-provenance/src/graphql/general/validators_address_list.graphql b/apps/web-provenance/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-provenance/src/graphql/general/validators_address_list.graphql +++ b/apps/web-provenance/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-provenance/src/graphql/types/general_types.ts b/apps/web-provenance/src/graphql/types/general_types.ts index 3bd077ba5f..3adc17a032 100644 --- a/apps/web-provenance/src/graphql/types/general_types.ts +++ b/apps/web-provenance/src/graphql/types/general_types.ts @@ -13924,52 +13924,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-quasar/src/graphql/general/validators_address_list.graphql b/apps/web-quasar/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-quasar/src/graphql/general/validators_address_list.graphql +++ b/apps/web-quasar/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-quasar/src/graphql/types/general_types.ts b/apps/web-quasar/src/graphql/types/general_types.ts index 9c05052f3a..15a88d79a6 100644 --- a/apps/web-quasar/src/graphql/types/general_types.ts +++ b/apps/web-quasar/src/graphql/types/general_types.ts @@ -9421,52 +9421,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-quicksilver/src/graphql/general/validators_address_list.graphql b/apps/web-quicksilver/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-quicksilver/src/graphql/general/validators_address_list.graphql +++ b/apps/web-quicksilver/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-quicksilver/src/graphql/types/general_types.ts b/apps/web-quicksilver/src/graphql/types/general_types.ts index 4b75264b59..9c1a60b9ce 100644 --- a/apps/web-quicksilver/src/graphql/types/general_types.ts +++ b/apps/web-quicksilver/src/graphql/types/general_types.ts @@ -9461,52 +9461,6 @@ export function useCustomValidatorLazyQuery(baseOptions?: Apollo.LazyQueryHookOp export type CustomValidatorQueryHookResult = ReturnType; export type CustomValidatorLazyQueryHookResult = ReturnType; export type CustomValidatorQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-quicksilver/src/hooks/useConsensusProfile/index.ts b/apps/web-quicksilver/src/hooks/useConsensusProfile/index.ts deleted file mode 100644 index 97520c1bae..0000000000 --- a/apps/web-quicksilver/src/hooks/useConsensusProfile/index.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { useEffect, useState } from 'react'; -import { useRecoilCallback } from 'recoil'; -import * as R from 'ramda'; -import { writeProfile } from '@/recoil/profiles/selectors'; -import { useCustomValidatorQuery } from '@/graphql/types/general_types'; - -type Profile = { - name: string; - address: string; - imageUrl: string; - bio: string; - website: string; - consensusAddress: string; -}; - -interface ConsensusProfileResult { - profile: Profile | undefined; - loading: boolean; -} - -/** - * Accepts consensus address and returns the appropriate profile - * @param consensus - the consensus address of the validator - * @param validator - the operator address of the validator - * @returns The return value is an object with the following properties: - * name, address, imageUrl - */ -const useConsensusProfile = (consensus: string, validator: string): ConsensusProfileResult => { - const { data, loading } = useCustomValidatorQuery({ variables: { consensusAddress: consensus } }); - const [profile, setProfile] = useState(); - const setAvatarName = useRecoilCallback( - ({ set }) => - (address: string, avatarName: AvatarName | null) => - set(writeProfile(address), (prevState) => - R.equals(prevState, avatarName) ? prevState : avatarName - ), - [] - ); - useEffect(() => { - if (data && data.validatorDescriptions.length > 0) { - const validatorDescription = data.validatorDescriptions[0]; - const consensusAddress = validatorDescription.validator_address ?? ''; - const name = validatorDescription.moniker ?? ''; - const imageUrl = validatorDescription.avatar_url ?? ''; - const bio = validatorDescription.details ?? ''; - const website = validatorDescription.website ?? ''; - const address = validator; - const res: Profile = { - name, - address, - imageUrl, - bio, - website, - consensusAddress, - }; - setProfile(res); - setAvatarName(address, res); - } - }, [data, loading, setAvatarName, validator]); - - return { profile, loading }; -}; - -export default useConsensusProfile; diff --git a/apps/web-quicksilver/src/hooks/useCustomProfile/index.ts b/apps/web-quicksilver/src/hooks/useCustomProfile/index.ts deleted file mode 100644 index fc312164f6..0000000000 --- a/apps/web-quicksilver/src/hooks/useCustomProfile/index.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { useEffect, useState } from 'react'; -import { ValidatorType } from '@/screens/validators/components/list/types'; - -interface AvatarName { - className?: string; - imageUrl: string | ''; - address: string; - name: string; - href?: (address: string) => string; - image?: React.ReactNode; - target?: JSX.IntrinsicElements['a']['target']; -} - -/** - * Accepts a list of state items and returns the appropriate profiles - * @param item - * @return a loading state and a list of profiles - */ -const useCustomProfile = (item: ValidatorType[]) => { - const [loading, setLoading] = useState(true); - const [profiles, setProfiles] = useState([]); - - useEffect(() => { - if (item.length) { - const data = item.map((x) => { - const address = x.validator ?? x.moniker[0].validator_address ?? ''; - const name = x.moniker[0].moniker ?? ''; - const imageUrl = x.moniker[0].avatar_url ?? ''; - const bio = x.moniker[0].details ?? ''; - const website = x.moniker[0].website ?? ''; - return { - address, - name, - imageUrl, - bio, - website, - }; - }); - setProfiles(data); - setLoading(false); - } - }, [item, loading]); - - return { profiles, loading }; -}; - -export default useCustomProfile; diff --git a/apps/web-quicksilver/src/screens/home/components/blocks/components/desktop/index.tsx b/apps/web-quicksilver/src/screens/home/components/blocks/components/desktop/index.tsx deleted file mode 100644 index fedc64d4bd..0000000000 --- a/apps/web-quicksilver/src/screens/home/components/blocks/components/desktop/index.tsx +++ /dev/null @@ -1,127 +0,0 @@ -import AvatarName from '@/components/avatar_name'; -import Timestamp from '@/components/Timestamp'; -import useAppTranslation from '@/hooks/useAppTranslation'; -import useConsensusProfile from '@/hooks/useConsensusProfile'; -import useStyles from '@/screens/home/components/blocks/components/desktop/styles'; -import { columns } from '@/screens/home/components/blocks/components/desktop/utils'; -import type { ItemType } from '@/screens/home/components/blocks/types'; -import { getMiddleEllipsis } from '@/utils/get_middle_ellipsis'; -import { BLOCK_DETAILS } from '@/utils/go_to_page'; -import Table from '@mui/material/Table'; -import TableBody from '@mui/material/TableBody'; -import TableCell from '@mui/material/TableCell'; -import TableHead from '@mui/material/TableHead'; -import TableRow from '@mui/material/TableRow'; -import { AnimatePresence, motion, Variants } from 'framer-motion'; -import Link from 'next/link'; -import numeral from 'numeral'; -import { FC } from 'react'; - -type BlockRowProps = { - item: ItemType; -}; - -const variants: Variants = { - initial: { - height: 0, - display: 'flex', - alignItems: 'center', - overflow: 'hidden', - clipPath: 'inset(0 50 0 50)', - }, - animate: { - height: 50, - display: 'flex', - alignItems: 'center', - overflow: 'hidden', - clipPath: 'inset(0 0 0 0)', - }, - exit: { - height: 50, - display: 'flex', - alignItems: 'center', - overflow: 'hidden', - position: 'absolute', - marginTop: [50, 60], - opacity: 0, - transition: { duration: 0.5 }, - }, -}; - -const BlockRow: FC = ({ item }) => { - const { profile } = useConsensusProfile(item.consensusAddress, item.proposer); - const name = profile?.name ?? ''; - const imageUrl = profile?.imageUrl ?? ''; - const address = profile?.address ?? ''; - - const formattedData = { - height: ( - - {numeral(item.height).format('0,0')} - - ), - txs: numeral(item.txs).format('0,0'), - time: , - proposer: , - hash: getMiddleEllipsis(item.hash, { - beginning: 6, - ending: 5, - }), - }; - return ( - - {columns.map((column) => { - const { key, align } = column; - return ( - - - {formattedData[key as keyof typeof formattedData]} - - - ); - })} - - ); -}; - -type DesktopProps = { - className?: string; - items: ItemType[]; -}; - -const Desktop: FC = ({ className, items }) => { - const { t } = useAppTranslation('blocks'); - const { classes, cx } = useStyles(); - - return ( -
- - - - {columns.map((column) => ( - - {t(column.key)} - - ))} - - - - - {items.map((row) => ( - - ))} - - -
-
- ); -}; - -export default Desktop; diff --git a/apps/web-quicksilver/src/screens/home/components/blocks/hooks.ts b/apps/web-quicksilver/src/screens/home/components/blocks/hooks.ts deleted file mode 100644 index bf5a258c0d..0000000000 --- a/apps/web-quicksilver/src/screens/home/components/blocks/hooks.ts +++ /dev/null @@ -1,52 +0,0 @@ -import * as R from 'ramda'; -import { useCallback, useState } from 'react'; -import { - BlocksListenerSubscription, - useBlocksListenerSubscription, -} from '@/graphql/types/general_types'; -import type { BlocksState } from '@/screens/home/components/blocks/types'; - -const formatBlocks = (data: BlocksListenerSubscription) => - data.blocks.map((x) => { - const proposerAddress = x?.validator?.validatorInfo?.operatorAddress ?? ''; - const consensusAddress = x?.validator?.validatorInfo?.consensusAddress ?? ''; - return { - height: x.height, - txs: x.txs ?? 0, - hash: x.hash, - timestamp: x.timestamp, - proposer: proposerAddress, - consensusAddress, - }; - }) ?? []; - -export const useBlocks = () => { - const [state, setState] = useState({ - loading: true, - items: [], - }); - - const handleSetState = useCallback((stateChange: (prevState: BlocksState) => BlocksState) => { - setState((prevState) => { - const newState = stateChange(prevState); - return R.equals(prevState, newState) ? prevState : newState; - }); - }, []); - - // ================================ - // block subscription - // ================================ - useBlocksListenerSubscription({ - onData: (data) => { - handleSetState((prevState) => ({ - ...prevState, - loading: false, - items: data.data.data ? formatBlocks(data.data.data) : [], - })); - }, - }); - - return { - state, - }; -}; diff --git a/apps/web-quicksilver/src/screens/home/components/blocks/types.ts b/apps/web-quicksilver/src/screens/home/components/blocks/types.ts deleted file mode 100644 index 522c61a7cd..0000000000 --- a/apps/web-quicksilver/src/screens/home/components/blocks/types.ts +++ /dev/null @@ -1,15 +0,0 @@ -export interface BlockType { - height: number; - txs: number; - timestamp: string; - proposer: string; - hash: string; - consensusAddress: string; -} - -export interface BlocksState { - loading: boolean; - items: BlockType[]; -} - -export type ItemType = BlockType; diff --git a/apps/web-quicksilver/src/screens/validator_details/hooks.ts b/apps/web-quicksilver/src/screens/validator_details/hooks.ts deleted file mode 100644 index 2324d27865..0000000000 --- a/apps/web-quicksilver/src/screens/validator_details/hooks.ts +++ /dev/null @@ -1,177 +0,0 @@ -import { useRouter } from 'next/router'; -import * as R from 'ramda'; -import { useCallback, useEffect, useState } from 'react'; -import chainConfig from '@/chainConfig'; -import { useValidatorDetailsQuery, ValidatorDetailsQuery } from '@/graphql/types/general_types'; -import useConsensusProfile from '@/hooks/useConsensusProfile'; -import { SlashingParams } from '@/models'; -import { StatusType, ValidatorDetailsState } from '@/screens/validator_details/types'; -import { formatToken } from '@/utils/format_token'; -import { getValidatorCondition } from '@/utils/get_validator_condition'; - -const { extra, votingPowerTokenUnit } = chainConfig(); - -const initialTokenDenom: TokenUnit = { - value: '0', - displayDenom: '', - baseDenom: '', - exponent: 0, -}; - -const initialState: ValidatorDetailsState = { - exists: true, - desmosProfile: null, - overview: { - validator: '', - operatorAddress: '', - selfDelegateAddress: '', - consensusAddress: '', - description: '', - website: '', - }, - status: { - status: 0, - jailed: false, - tombstoned: false, - condition: 0, - commission: 0, - missedBlockCounter: 0, - signedBlockWindow: 0, - maxRate: '0', - }, - votingPower: { - height: 0, - overall: initialTokenDenom, - self: 0, - }, -}; - -// ============================ -// overview -// ============================ -const formatOverview = (data: ValidatorDetailsQuery) => { - const operatorAddress = data?.validator?.[0]?.validatorInfo?.operatorAddress ?? ''; - const selfDelegateAddress = data?.validator?.[0]?.validatorInfo?.selfDelegateAddress ?? ''; - const consensusAddress = data?.validator?.[0]?.validatorInfo?.consensusAddress ?? ''; - const profile = { - validator: operatorAddress, - operatorAddress, - selfDelegateAddress, - consensusAddress, - description: data.validator[0]?.validatorDescriptions?.[0]?.details ?? '', - website: data.validator[0]?.validatorDescriptions?.[0]?.website ?? '', - }; - - return profile; -}; - -// ============================ -// status -// ============================ -const formatStatus = (data: ValidatorDetailsQuery) => { - const slashingParams = SlashingParams.fromJson(data?.slashingParams?.[0]?.params ?? {}); - const missedBlockCounter = - data.validator[0]?.validatorSigningInfos?.[0]?.missedBlocksCounter ?? 0; - const { signedBlockWindow } = slashingParams; - const condition = getValidatorCondition(signedBlockWindow, missedBlockCounter); - - const profile: StatusType = { - status: data.validator[0]?.validatorStatuses?.[0]?.status ?? 3, - jailed: data.validator[0]?.validatorStatuses?.[0]?.jailed ?? false, - tombstoned: data.validator[0]?.validatorSigningInfos?.[0]?.tombstoned ?? false, - commission: data.validator[0]?.validatorCommissions?.[0]?.commission ?? 0, - condition, - missedBlockCounter, - signedBlockWindow, - maxRate: data?.validator?.[0]?.validatorInfo?.maxRate ?? '0', - }; - - return profile; -}; - -// ============================ -// votingPower -// ============================ -const formatVotingPower = (data: ValidatorDetailsQuery) => { - const selfVotingPower = - (data.validator[0]?.validatorVotingPowers?.[0]?.votingPower ?? 0) / - 10 ** (extra.votingPowerExponent ?? 0); - - const votingPower = { - self: selfVotingPower, - overall: formatToken(data?.stakingPool?.[0]?.bonded ?? 0, votingPowerTokenUnit), - height: data.validator[0]?.validatorVotingPowers?.[0]?.height ?? 0, - }; - - return votingPower; -}; - -export const useValidatorDetails = () => { - const router = useRouter(); - const [state, setState] = useState(initialState); - - const handleSetState = useCallback( - (stateChange: (prevState: ValidatorDetailsState) => ValidatorDetailsState) => { - setState((prevState) => { - const newState = stateChange(prevState); - return R.equals(prevState, newState) ? prevState : newState; - }); - }, - [] - ); - - // ========================== - // Fetch Data - // ========================== - const { loading } = useValidatorDetailsQuery({ - variables: { - address: router.query.address as string, - }, - onCompleted: (data) => { - handleSetState((prevState) => ({ ...prevState, ...formatAccountQuery(data) })); - }, - }); - - // ========================== - // Celestia Profile - // ========================== - const { profile: dataDesmosProfile, loading: loadingDesmosProfile } = useConsensusProfile( - state.overview.consensusAddress, - state.overview.selfDelegateAddress - ); - useEffect(() => { - if (dataDesmosProfile) { - const { name, imageUrl, bio } = dataDesmosProfile; - setState((prevState) => ({ - ...prevState, - desmosProfile: { - name, - imageUrl, - bio, - dtag: name, - nickname: name, - coverUrl: '', - connections: [], - }, - })); - } - }, [dataDesmosProfile]); - - return { state, loading: loading || loadingDesmosProfile }; -}; - -function formatAccountQuery(data: ValidatorDetailsQuery): Partial { - const stateChange: Partial = {}; - - if (!data.validator.length) { - stateChange.exists = false; - return stateChange; - } - - stateChange.overview = formatOverview(data); - - stateChange.status = formatStatus(data); - stateChange.votingPower = formatVotingPower(data); - - return stateChange; -} diff --git a/apps/web-quicksilver/src/screens/validator_details/types.ts b/apps/web-quicksilver/src/screens/validator_details/types.ts deleted file mode 100644 index df700ad40f..0000000000 --- a/apps/web-quicksilver/src/screens/validator_details/types.ts +++ /dev/null @@ -1,34 +0,0 @@ -export interface OverviewType { - validator: string; - operatorAddress: string; - selfDelegateAddress: string; - consensusAddress: string; - description: string; - website: string; -} - -export interface StatusType { - inActiveSet?: string; - jailed: boolean; - tombstoned: boolean; - commission: number; - signedBlockWindow: number; - missedBlockCounter: number; - maxRate: string; - status: number; - condition: number; -} - -export interface VotingPowerType { - height: number; - overall: TokenUnit; - self: number; -} - -export interface ValidatorDetailsState { - exists: boolean; - desmosProfile: DesmosProfile | null; - overview: OverviewType; - status: StatusType; - votingPower: VotingPowerType; -} diff --git a/apps/web-quicksilver/src/screens/validators/components/list/hooks.ts b/apps/web-quicksilver/src/screens/validators/components/list/hooks.ts deleted file mode 100644 index b42cb49595..0000000000 --- a/apps/web-quicksilver/src/screens/validators/components/list/hooks.ts +++ /dev/null @@ -1,213 +0,0 @@ -import Big from 'big.js'; -import numeral from 'numeral'; -import * as R from 'ramda'; -import { SyntheticEvent, useCallback, useState } from 'react'; -import chainConfig from '@/chainConfig'; -import { useValidatorsQuery, ValidatorsQuery } from '@/graphql/types/general_types'; -import { SlashingParams } from '@/models'; -import type { - ItemType, - ValidatorsState, - ValidatorType, -} from '@/screens/validators/components/list/types'; -import { formatToken } from '@/utils/format_token'; -import { getValidatorCondition } from '@/utils/get_validator_condition'; - -const { extra, votingPowerTokenUnit } = chainConfig(); - -// ========================== -// Parse data -// ========================== -const formatValidators = (data: ValidatorsQuery): Partial => { - const slashingParams = SlashingParams.fromJson(data?.slashingParams?.[0]?.params ?? {}); - const votingPowerOverall = - numeral( - formatToken(data?.stakingPool?.[0]?.bondedTokens ?? 0, votingPowerTokenUnit).value - ).value() ?? 0; - - const { signedBlockWindow } = slashingParams; - - let formattedItems: ValidatorType[] = data.validator - .filter((x) => x.validatorInfo && x.validatorDescriptions) - .map((x) => { - const votingPower = - (x?.validatorVotingPowers?.[0]?.votingPower ?? 0) / 10 ** (extra.votingPowerExponent ?? 0); - const votingPowerPercent = votingPowerOverall - ? numeral((votingPower / votingPowerOverall) * 100).value() - : 0; - - const missedBlockCounter = x?.validatorSigningInfos?.[0]?.missedBlocksCounter ?? 0; - const condition = getValidatorCondition(signedBlockWindow, missedBlockCounter); - - return { - moniker: x.validatorDescriptions ?? '', - consensus: x.validatorInfo?.consensusAddress ?? '', - validator: x.validatorInfo?.operatorAddress ?? '', - votingPower: votingPower ?? 0, - votingPowerPercent: votingPowerPercent ?? 0, - commission: (x?.validatorCommissions?.[0]?.commission ?? 0) * 100, - condition, - status: x?.validatorStatuses?.[0]?.status ?? 0, - jailed: x?.validatorStatuses?.[0]?.jailed ?? false, - tombstoned: x?.validatorSigningInfos?.[0]?.tombstoned ?? false, - }; - }); - - // get the top 34% validators - formattedItems = formattedItems.sort((a, b) => (a.votingPower > b.votingPower ? -1 : 1)); - - // add key to indicate they are part of top 34% - let cumulativeVotingPower = Big(0); - let reached = false; - formattedItems.forEach((x) => { - if (x.status === 3) { - const totalVp = cumulativeVotingPower.add(x.votingPowerPercent); - if (totalVp.lte(34) && !reached) { - x.topVotingPower = true; - } - - if (totalVp.gt(34) && !reached) { - x.topVotingPower = true; - reached = true; - } - - cumulativeVotingPower = totalVp; - } - }); - - return { - votingPowerOverall, - items: formattedItems, - }; -}; - -export const useValidators = () => { - const [search, setSearch] = useState(''); - const [state, setState] = useState({ - loading: true, - exists: true, - items: [], - votingPowerOverall: 0, - tab: 0, - sortKey: 'validator.name', - sortDirection: 'asc', - }); - - const handleSetState = useCallback( - (stateChange: (prevState: ValidatorsState) => ValidatorsState) => { - setState((prevState) => { - const newState = stateChange(prevState); - return R.equals(prevState, newState) ? prevState : newState; - }); - }, - [] - ); - - // ========================== - // Fetch Data - // ========================== - useValidatorsQuery({ - onCompleted: (data) => { - handleSetState((prevState) => ({ - ...prevState, - loading: false, - ...formatValidators(data), - })); - }, - onError: () => { - handleSetState((prevState) => ({ - ...prevState, - loading: false, - exists: false, - })); - }, - }); - - const handleTabChange = useCallback( - (_event: SyntheticEvent, newValue: number) => { - setState((prevState) => ({ - ...prevState, - tab: newValue, - })); - }, - [] - ); - - const handleSort = useCallback( - (key: string) => { - if (key === state.sortKey) { - setState((prevState) => ({ - ...prevState, - sortDirection: prevState.sortDirection === 'asc' ? 'desc' : 'asc', - })); - } else { - setState((prevState) => ({ - ...prevState, - sortKey: key, - sortDirection: 'asc', // new key so we start the sort by asc - })); - } - }, - [state.sortKey] - ); - - const handleSearch = useCallback((value: string) => { - setSearch(value); - }, []); - - const sortItems = useCallback( - (items: ItemType[]) => { - let sorted: ItemType[] = R.clone(items); - - if (state.tab === 0) { - sorted = sorted.filter((x) => x.status === 3); - } - - if (state.tab === 1) { - sorted = sorted.filter((x) => x.status !== 3); - } - - if (search) { - sorted = sorted.filter((x) => { - const formattedSearch = search.toLowerCase().replace(/ /g, ''); - return ( - x.validator.name.toLowerCase().replace(/ /g, '').includes(formattedSearch) || - x.validator.address.toLowerCase().includes(formattedSearch) - ); - }); - } - - if (state.sortKey && state.sortDirection) { - sorted.sort((a, b) => { - let compareA = R.pathOr('', [...state.sortKey.split('.')], a); - let compareB = R.pathOr('', [...state.sortKey.split('.')], b); - - if (typeof compareA === 'string' && typeof compareB === 'string') { - compareA = compareA.toLowerCase(); - compareB = compareB.toLowerCase(); - } - - if (compareA < compareB) { - return state.sortDirection === 'asc' ? -1 : 1; - } - if (compareA > compareB) { - return state.sortDirection === 'asc' ? 1 : -1; - } - return 0; - }); - } - - return sorted; - }, - [search, state.sortDirection, state.sortKey, state.tab] - ); - - return { - state, - handleTabChange, - handleSort, - handleSearch, - sortItems, - search, - }; -}; diff --git a/apps/web-quicksilver/src/screens/validators/components/list/index.tsx b/apps/web-quicksilver/src/screens/validators/components/list/index.tsx deleted file mode 100644 index 26965f3d07..0000000000 --- a/apps/web-quicksilver/src/screens/validators/components/list/index.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { FC, ReactNode, useMemo } from 'react'; -import Box from '@/components/box'; -import LoadAndExist from '@/components/load_and_exist'; -import NoData from '@/components/no_data'; -import Desktop from '@/screens/validators/components/list/components/desktop'; -import Mobile from '@/screens/validators/components/list/components/mobile'; -import Tabs from '@/screens/validators/components/list/components/tabs'; -import { useValidators } from '@/screens/validators/components/list/hooks'; -import useStyles from '@/screens/validators/components/list/styles'; -import { useDisplayStyles } from '@/styles/useSharedStyles'; -import useCustomProfile from '@/hooks/useCustomProfile'; - -const List: FC = ({ className }) => { - const { classes, cx } = useStyles(); - const display = useDisplayStyles().classes; - const { state, handleTabChange, handleSearch, handleSort, sortItems, search } = useValidators(); - const { profiles: dataProfiles, loading } = useCustomProfile(state.items); - const items = useMemo( - () => sortItems(state.items.map((x, i) => ({ ...x, validator: dataProfiles?.[i] }))), - [state.items, dataProfiles, sortItems] - ); - - let list: ReactNode; - - if (!items.length) { - list = ; - } else { - list = ( - <> - - - - ); - } - - return ( - - - -
{list}
-
-
- ); -}; - -export default List; diff --git a/apps/web-quicksilver/src/screens/validators/components/list/types.ts b/apps/web-quicksilver/src/screens/validators/components/list/types.ts deleted file mode 100644 index 52031b052b..0000000000 --- a/apps/web-quicksilver/src/screens/validators/components/list/types.ts +++ /dev/null @@ -1,32 +0,0 @@ -interface MonikerType { - moniker?: string | null | undefined; - avatar_url?: string | null; - validator_address: string; - website?: string | null; - details?: string | null; -} - -export interface ValidatorType { - moniker: MonikerType[]; - validator: string; - votingPower: number; - votingPowerPercent: number; - commission: number; - condition: number; - status: number; - jailed: boolean; - tombstoned: boolean; - topVotingPower?: boolean; // top 34% VP -} - -export interface ValidatorsState { - loading: boolean; - exists: boolean; - tab: number; - sortKey: string; - sortDirection: 'asc' | 'desc'; - votingPowerOverall: number; - items: ValidatorType[]; -} - -export type ItemType = Override; diff --git a/apps/web-regen/src/graphql/general/validators_address_list.graphql b/apps/web-regen/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-regen/src/graphql/general/validators_address_list.graphql +++ b/apps/web-regen/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-regen/src/graphql/types/general_types.ts b/apps/web-regen/src/graphql/types/general_types.ts index 7d6b897e07..725e55c53c 100644 --- a/apps/web-regen/src/graphql/types/general_types.ts +++ b/apps/web-regen/src/graphql/types/general_types.ts @@ -13649,52 +13649,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-rizon/src/graphql/general/validators_address_list.graphql b/apps/web-rizon/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-rizon/src/graphql/general/validators_address_list.graphql +++ b/apps/web-rizon/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-rizon/src/graphql/types/general_types.ts b/apps/web-rizon/src/graphql/types/general_types.ts index cc3e2cfd13..1cb0027360 100644 --- a/apps/web-rizon/src/graphql/types/general_types.ts +++ b/apps/web-rizon/src/graphql/types/general_types.ts @@ -13164,52 +13164,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-shentu/src/graphql/general/validators_address_list.graphql b/apps/web-shentu/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-shentu/src/graphql/general/validators_address_list.graphql +++ b/apps/web-shentu/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-shentu/src/graphql/types/general_types.ts b/apps/web-shentu/src/graphql/types/general_types.ts index d1bf9ca9e8..4e66946038 100644 --- a/apps/web-shentu/src/graphql/types/general_types.ts +++ b/apps/web-shentu/src/graphql/types/general_types.ts @@ -15058,52 +15058,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-stride/src/graphql/general/validators_address_list.graphql b/apps/web-stride/src/graphql/general/validators_address_list.graphql index 7a105bb9f1..12756f1cb9 100644 --- a/apps/web-stride/src/graphql/general/validators_address_list.graphql +++ b/apps/web-stride/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-stride/src/graphql/types/general_types.ts b/apps/web-stride/src/graphql/types/general_types.ts index 5a87a922f9..9297126614 100644 --- a/apps/web-stride/src/graphql/types/general_types.ts +++ b/apps/web-stride/src/graphql/types/general_types.ts @@ -24013,52 +24013,6 @@ export function useProviderCustomValidatorLazyQuery(baseOptions?: Apollo.LazyQue export type ProviderCustomValidatorQueryHookResult = ReturnType; export type ProviderCustomValidatorLazyQueryHookResult = ReturnType; export type ProviderCustomValidatorQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web-stride/src/hooks/useCustomProfile/index.ts b/apps/web-stride/src/hooks/useCustomProfile/index.ts deleted file mode 100644 index fc312164f6..0000000000 --- a/apps/web-stride/src/hooks/useCustomProfile/index.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { useEffect, useState } from 'react'; -import { ValidatorType } from '@/screens/validators/components/list/types'; - -interface AvatarName { - className?: string; - imageUrl: string | ''; - address: string; - name: string; - href?: (address: string) => string; - image?: React.ReactNode; - target?: JSX.IntrinsicElements['a']['target']; -} - -/** - * Accepts a list of state items and returns the appropriate profiles - * @param item - * @return a loading state and a list of profiles - */ -const useCustomProfile = (item: ValidatorType[]) => { - const [loading, setLoading] = useState(true); - const [profiles, setProfiles] = useState([]); - - useEffect(() => { - if (item.length) { - const data = item.map((x) => { - const address = x.validator ?? x.moniker[0].validator_address ?? ''; - const name = x.moniker[0].moniker ?? ''; - const imageUrl = x.moniker[0].avatar_url ?? ''; - const bio = x.moniker[0].details ?? ''; - const website = x.moniker[0].website ?? ''; - return { - address, - name, - imageUrl, - bio, - website, - }; - }); - setProfiles(data); - setLoading(false); - } - }, [item, loading]); - - return { profiles, loading }; -}; - -export default useCustomProfile; diff --git a/apps/web-stride/src/screens/validator_details/hooks.ts b/apps/web-stride/src/screens/validator_details/hooks.ts deleted file mode 100644 index 1676c2ece8..0000000000 --- a/apps/web-stride/src/screens/validator_details/hooks.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { useRouter } from 'next/router'; -import * as R from 'ramda'; -import { useCallback, useEffect, useState } from 'react'; -import chainConfig from '@/chainConfig'; -import { useValidatorDetailsQuery, ValidatorDetailsQuery } from '@/graphql/types/general_types'; -import { useDesmosProfile } from '@/hooks/use_desmos_profile'; -import { SlashingParams } from '@/models'; -import { StatusType, ValidatorDetailsState } from '@/screens/validator_details/types'; -import { formatToken } from '@/utils/format_token'; -import { getValidatorCondition } from '@/utils/get_validator_condition'; - -const { extra, votingPowerTokenUnit } = chainConfig(); - -const initialTokenDenom: TokenUnit = { - value: '0', - displayDenom: '', - baseDenom: '', - exponent: 0, -}; - -const initialState: ValidatorDetailsState = { - exists: true, - desmosProfile: null, - overview: { - validator: '', - operatorAddress: '', - selfDelegateAddress: '', - description: '', - website: '', - }, - status: { - status: 0, - jailed: false, - tombstoned: false, - condition: 0, - commission: 0, - missedBlockCounter: 0, - signedBlockWindow: 0, - maxRate: '0', - }, - votingPower: { - height: 0, - overall: initialTokenDenom, - self: 0, - }, -}; - -// ============================ -// overview -// ============================ -const formatOverview = (data: ValidatorDetailsQuery) => { - const operatorAddress = data?.validator?.[0]?.validatorInfo?.operatorAddress ?? ''; - const selfDelegateAddress = data?.validator?.[0]?.validatorInfo?.selfDelegateAddress ?? ''; - const profile = { - validator: operatorAddress, - operatorAddress, - selfDelegateAddress, - description: data.validator[0]?.validatorDescriptions?.[0]?.details ?? '', - website: data.validator[0]?.validatorDescriptions?.[0]?.website ?? '', - }; - - return profile; -}; - -// ============================ -// status -// ============================ -const formatStatus = (data: ValidatorDetailsQuery) => { - const slashingParams = SlashingParams.fromJson(data?.slashingParams?.[0]?.params ?? {}); - const missedBlockCounter = - data.validator[0]?.validatorSigningInfos?.[0]?.missedBlocksCounter ?? 0; - const { signedBlockWindow } = slashingParams; - const condition = getValidatorCondition(signedBlockWindow, missedBlockCounter); - - const profile: StatusType = { - status: data.validator[0]?.validatorStatuses?.[0]?.status ?? 3, - jailed: data.validator[0]?.validatorStatuses?.[0]?.jailed ?? false, - tombstoned: data.validator[0]?.validatorSigningInfos?.[0]?.tombstoned ?? false, - commission: data.validator[0]?.validatorCommissions?.[0]?.commission ?? 0, - condition, - missedBlockCounter, - signedBlockWindow, - maxRate: data?.validator?.[0]?.validatorInfo?.maxRate ?? '0', - }; - - return profile; -}; - -// ============================ -// votingPower -// ============================ -const formatVotingPower = (data: ValidatorDetailsQuery) => { - const selfVotingPower = - (data.validator[0]?.validatorVotingPowers?.[0]?.votingPower ?? 0) / - 10 ** (extra.votingPowerExponent ?? 0); - - const votingPower = { - self: selfVotingPower, - overall: formatToken(data?.stakingPool?.[0]?.bonded ?? 0, votingPowerTokenUnit), - height: data.validator[0]?.validatorVotingPowers?.[0]?.height ?? 0, - }; - - return votingPower; -}; - -export const useValidatorDetails = () => { - const router = useRouter(); - const [state, setState] = useState(initialState); - - const handleSetState = useCallback( - (stateChange: (prevState: ValidatorDetailsState) => ValidatorDetailsState) => { - setState((prevState) => { - const newState = stateChange(prevState); - return R.equals(prevState, newState) ? prevState : newState; - }); - }, - [] - ); - - // ========================== - // Fetch Data - // ========================== - const { loading } = useValidatorDetailsQuery({ - variables: { - address: router.query.address as string, - }, - onCompleted: (data) => { - handleSetState((prevState) => ({ ...prevState, ...formatAccountQuery(data) })); - }, - }); - - // ========================== - // Desmos Profile - // ========================== - const { data: dataDesmosProfile, loading: loadingDesmosProfile } = useDesmosProfile({ - addresses: [state.overview.selfDelegateAddress], - skip: !extra.profile || !state.overview.selfDelegateAddress, - }); - useEffect( - () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), - [dataDesmosProfile] - ); - - return { state, loading: loading || loadingDesmosProfile }; -}; - -function formatAccountQuery(data: ValidatorDetailsQuery): Partial { - const stateChange: Partial = {}; - - if (!data.validator.length) { - stateChange.exists = false; - return stateChange; - } - - stateChange.overview = formatOverview(data); - - stateChange.status = formatStatus(data); - stateChange.votingPower = formatVotingPower(data); - - return stateChange; -} diff --git a/apps/web-stride/src/screens/validators/components/list/hooks.ts b/apps/web-stride/src/screens/validators/components/list/hooks.ts deleted file mode 100644 index 5793afad60..0000000000 --- a/apps/web-stride/src/screens/validators/components/list/hooks.ts +++ /dev/null @@ -1,212 +0,0 @@ -import Big from 'big.js'; -import numeral from 'numeral'; -import * as R from 'ramda'; -import { SyntheticEvent, useCallback, useState } from 'react'; -import chainConfig from '@/chainConfig'; -import { useValidatorsQuery, ValidatorsQuery } from '@/graphql/types/general_types'; -import { SlashingParams } from '@/models'; -import type { - ItemType, - ValidatorsState, - ValidatorType, -} from '@/screens/validators/components/list/types'; -import { formatToken } from '@/utils/format_token'; -import { getValidatorCondition } from '@/utils/get_validator_condition'; - -const { extra, votingPowerTokenUnit } = chainConfig(); - -// ========================== -// Parse data -// ========================== -const formatValidators = (data: ValidatorsQuery): Partial => { - const slashingParams = SlashingParams.fromJson(data?.slashingParams?.[0]?.params ?? {}); - const votingPowerOverall = - numeral( - formatToken(data?.stakingPool?.[0]?.bondedTokens ?? 0, votingPowerTokenUnit).value - ).value() ?? 0; - - const { signedBlockWindow } = slashingParams; - - let formattedItems: ValidatorType[] = data.validator - .filter((x) => x.validatorInfo && x.validatorDescriptions) - .map((x) => { - const votingPower = - (x?.validatorVotingPowers?.[0]?.votingPower ?? 0) / 10 ** (extra.votingPowerExponent ?? 0); - const votingPowerPercent = votingPowerOverall - ? numeral((votingPower / votingPowerOverall) * 100).value() - : 0; - - const missedBlockCounter = x?.validatorSigningInfos?.[0]?.missedBlocksCounter ?? 0; - const condition = getValidatorCondition(signedBlockWindow, missedBlockCounter); - - return { - moniker: x.validatorDescriptions ?? '', - validator: x.validatorInfo?.operatorAddress ?? '', - votingPower: votingPower ?? 0, - votingPowerPercent: votingPowerPercent ?? 0, - commission: (x?.validatorCommissions?.[0]?.commission ?? 0) * 100, - condition, - status: x?.validatorStatuses?.[0]?.status ?? 0, - jailed: x?.validatorStatuses?.[0]?.jailed ?? false, - tombstoned: x?.validatorSigningInfos?.[0]?.tombstoned ?? false, - }; - }); - - // get the top 34% validators - formattedItems = formattedItems.sort((a, b) => (a.votingPower > b.votingPower ? -1 : 1)); - - // add key to indicate they are part of top 34% - let cumulativeVotingPower = Big(0); - let reached = false; - formattedItems.forEach((x) => { - if (x.status === 3) { - const totalVp = cumulativeVotingPower.add(x.votingPowerPercent); - if (totalVp.lte(34) && !reached) { - x.topVotingPower = true; - } - - if (totalVp.gt(34) && !reached) { - x.topVotingPower = true; - reached = true; - } - - cumulativeVotingPower = totalVp; - } - }); - - return { - votingPowerOverall, - items: formattedItems, - }; -}; - -export const useValidators = () => { - const [search, setSearch] = useState(''); - const [state, setState] = useState({ - loading: true, - exists: true, - items: [], - votingPowerOverall: 0, - tab: 0, - sortKey: 'validator.name', - sortDirection: 'asc', - }); - - const handleSetState = useCallback( - (stateChange: (prevState: ValidatorsState) => ValidatorsState) => { - setState((prevState) => { - const newState = stateChange(prevState); - return R.equals(prevState, newState) ? prevState : newState; - }); - }, - [] - ); - - // ========================== - // Fetch Data - // ========================== - useValidatorsQuery({ - onCompleted: (data) => { - handleSetState((prevState) => ({ - ...prevState, - loading: false, - ...formatValidators(data), - })); - }, - onError: () => { - handleSetState((prevState) => ({ - ...prevState, - loading: false, - exists: false, - })); - }, - }); - - const handleTabChange = useCallback( - (_event: SyntheticEvent, newValue: number) => { - setState((prevState) => ({ - ...prevState, - tab: newValue, - })); - }, - [] - ); - - const handleSort = useCallback( - (key: string) => { - if (key === state.sortKey) { - setState((prevState) => ({ - ...prevState, - sortDirection: prevState.sortDirection === 'asc' ? 'desc' : 'asc', - })); - } else { - setState((prevState) => ({ - ...prevState, - sortKey: key, - sortDirection: 'asc', // new key so we start the sort by asc - })); - } - }, - [state.sortKey] - ); - - const handleSearch = useCallback((value: string) => { - setSearch(value); - }, []); - - const sortItems = useCallback( - (items: ItemType[]) => { - let sorted: ItemType[] = R.clone(items); - - if (state.tab === 0) { - sorted = sorted.filter((x) => x.status === 3); - } - - if (state.tab === 1) { - sorted = sorted.filter((x) => x.status !== 3); - } - - if (search) { - sorted = sorted.filter((x) => { - const formattedSearch = search.toLowerCase().replace(/ /g, ''); - return ( - x.validator.name.toLowerCase().replace(/ /g, '').includes(formattedSearch) || - x.validator.address.toLowerCase().includes(formattedSearch) - ); - }); - } - - if (state.sortKey && state.sortDirection) { - sorted.sort((a, b) => { - let compareA = R.pathOr('', [...state.sortKey.split('.')], a); - let compareB = R.pathOr('', [...state.sortKey.split('.')], b); - - if (typeof compareA === 'string' && typeof compareB === 'string') { - compareA = compareA.toLowerCase(); - compareB = compareB.toLowerCase(); - } - - if (compareA < compareB) { - return state.sortDirection === 'asc' ? -1 : 1; - } - if (compareA > compareB) { - return state.sortDirection === 'asc' ? 1 : -1; - } - return 0; - }); - } - - return sorted; - }, - [search, state.sortDirection, state.sortKey, state.tab] - ); - - return { - state, - handleTabChange, - handleSort, - handleSearch, - sortItems, - search, - }; -}; diff --git a/apps/web-stride/src/screens/validators/components/list/index.tsx b/apps/web-stride/src/screens/validators/components/list/index.tsx deleted file mode 100644 index 26965f3d07..0000000000 --- a/apps/web-stride/src/screens/validators/components/list/index.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { FC, ReactNode, useMemo } from 'react'; -import Box from '@/components/box'; -import LoadAndExist from '@/components/load_and_exist'; -import NoData from '@/components/no_data'; -import Desktop from '@/screens/validators/components/list/components/desktop'; -import Mobile from '@/screens/validators/components/list/components/mobile'; -import Tabs from '@/screens/validators/components/list/components/tabs'; -import { useValidators } from '@/screens/validators/components/list/hooks'; -import useStyles from '@/screens/validators/components/list/styles'; -import { useDisplayStyles } from '@/styles/useSharedStyles'; -import useCustomProfile from '@/hooks/useCustomProfile'; - -const List: FC = ({ className }) => { - const { classes, cx } = useStyles(); - const display = useDisplayStyles().classes; - const { state, handleTabChange, handleSearch, handleSort, sortItems, search } = useValidators(); - const { profiles: dataProfiles, loading } = useCustomProfile(state.items); - const items = useMemo( - () => sortItems(state.items.map((x, i) => ({ ...x, validator: dataProfiles?.[i] }))), - [state.items, dataProfiles, sortItems] - ); - - let list: ReactNode; - - if (!items.length) { - list = ; - } else { - list = ( - <> - - - - ); - } - - return ( - - - -
{list}
-
-
- ); -}; - -export default List; diff --git a/apps/web-stride/src/screens/validators/components/list/types.ts b/apps/web-stride/src/screens/validators/components/list/types.ts deleted file mode 100644 index 52031b052b..0000000000 --- a/apps/web-stride/src/screens/validators/components/list/types.ts +++ /dev/null @@ -1,32 +0,0 @@ -interface MonikerType { - moniker?: string | null | undefined; - avatar_url?: string | null; - validator_address: string; - website?: string | null; - details?: string | null; -} - -export interface ValidatorType { - moniker: MonikerType[]; - validator: string; - votingPower: number; - votingPowerPercent: number; - commission: number; - condition: number; - status: number; - jailed: boolean; - tombstoned: boolean; - topVotingPower?: boolean; // top 34% VP -} - -export interface ValidatorsState { - loading: boolean; - exists: boolean; - tab: number; - sortKey: string; - sortDirection: 'asc' | 'desc'; - votingPowerOverall: number; - items: ValidatorType[]; -} - -export type ItemType = Override; diff --git a/apps/web-wormhole/src/graphql/general/validators_address_list.graphql b/apps/web-wormhole/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web-wormhole/src/graphql/general/validators_address_list.graphql +++ b/apps/web-wormhole/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web-wormhole/src/graphql/types/general_types.ts b/apps/web-wormhole/src/graphql/types/general_types.ts index a2011b571c..e5192df66c 100644 --- a/apps/web-wormhole/src/graphql/types/general_types.ts +++ b/apps/web-wormhole/src/graphql/types/general_types.ts @@ -10382,52 +10382,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/apps/web/src/graphql/general/validators_address_list.graphql b/apps/web/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/apps/web/src/graphql/general/validators_address_list.graphql +++ b/apps/web/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/apps/web/src/graphql/types/general_types.ts b/apps/web/src/graphql/types/general_types.ts index 24624c5a4b..f300b55cac 100644 --- a/apps/web/src/graphql/types/general_types.ts +++ b/apps/web/src/graphql/types/general_types.ts @@ -13884,52 +13884,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/packages/ui/src/graphql/general/proposal_details.graphql b/packages/ui/src/graphql/general/proposal_details.graphql index 82ddef911b..e298e93cc8 100644 --- a/packages/ui/src/graphql/general/proposal_details.graphql +++ b/packages/ui/src/graphql/general/proposal_details.graphql @@ -7,7 +7,6 @@ query ProposalDetails($proposalId: Int) { content proposalId: id submitTime: submit_time - proposalType: proposal_type depositEndTime: deposit_end_time votingStartTime: voting_start_time votingEndTime: voting_end_time diff --git a/packages/ui/src/graphql/general/validators_address_list.graphql b/packages/ui/src/graphql/general/validators_address_list.graphql index d018f104bc..62523d5466 100644 --- a/packages/ui/src/graphql/general/validators_address_list.graphql +++ b/packages/ui/src/graphql/general/validators_address_list.graphql @@ -1,18 +1,3 @@ -query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions(limit: 1, order_by: {height: desc}) { - moniker - identity - avatarUrl: avatar_url - } - } -} - query ValidatorAddresses { validator(where: {validator_info: {operator_address: {_is_null: false}, consensus_address: {_is_null: false}, self_delegate_address: {_is_null: false}}}) { validatorInfo: validator_info { diff --git a/packages/ui/src/graphql/types/general_types.ts b/packages/ui/src/graphql/types/general_types.ts index 24624c5a4b..f300b55cac 100644 --- a/packages/ui/src/graphql/types/general_types.ts +++ b/packages/ui/src/graphql/types/general_types.ts @@ -13884,52 +13884,6 @@ export function useValidatorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions export type ValidatorsQueryHookResult = ReturnType; export type ValidatorsLazyQueryHookResult = ReturnType; export type ValidatorsQueryResult = Apollo.QueryResult; -export const ValidatorsAddressListDocument = gql` - query ValidatorsAddressList { - validator { - validatorInfo: validator_info { - operatorAddress: operator_address - selfDelegateAddress: self_delegate_address - consensusAddress: consensus_address - } - validatorDescriptions: validator_descriptions( - limit: 1 - order_by: {height: desc} - ) { - moniker - identity - avatarUrl: avatar_url - } - } -} - `; - -/** - * __useValidatorsAddressListQuery__ - * - * To run a query within a React component, call `useValidatorsAddressListQuery` and pass it any options that fit your needs. - * When your component renders, `useValidatorsAddressListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useValidatorsAddressListQuery({ - * variables: { - * }, - * }); - */ -export function useValidatorsAddressListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ValidatorsAddressListDocument, options); - } -export function useValidatorsAddressListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ValidatorsAddressListDocument, options); - } -export type ValidatorsAddressListQueryHookResult = ReturnType; -export type ValidatorsAddressListLazyQueryHookResult = ReturnType; -export type ValidatorsAddressListQueryResult = Apollo.QueryResult; export const ValidatorAddressesDocument = gql` query ValidatorAddresses { validator( diff --git a/packages/ui/src/graphql/types/profile_types.ts b/packages/ui/src/graphql/types/profile_types.ts index 3de2066bc5..d56e03631c 100644 --- a/packages/ui/src/graphql/types/profile_types.ts +++ b/packages/ui/src/graphql/types/profile_types.ts @@ -760,6 +760,10 @@ export type Query_Root = { profile_by_pk?: Maybe; /** fetch data from the table: "profiles_params" */ profiles_params: Array; + /** fetch data from the table: "user_block" */ + user_block: Array; + /** fetch data from the table: "user_relationship" */ + user_relationship: Array; }; @@ -848,6 +852,24 @@ export type Query_RootProfiles_ParamsArgs = { where?: InputMaybe; }; + +export type Query_RootUser_BlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootUser_RelationshipArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + export type Subscription_Root = { __typename?: 'subscription_root'; /** fetch data from the table: "application_link" */ @@ -870,6 +892,10 @@ export type Subscription_Root = { profile_by_pk?: Maybe; /** fetch data from the table: "profiles_params" */ profiles_params: Array; + /** fetch data from the table: "user_block" */ + user_block: Array; + /** fetch data from the table: "user_relationship" */ + user_relationship: Array; }; @@ -958,6 +984,24 @@ export type Subscription_RootProfiles_ParamsArgs = { where?: InputMaybe; }; + +export type Subscription_RootUser_BlockArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootUser_RelationshipArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + /** Boolean expression to compare columns of type "timestamp". All fields are combined with logical 'AND'. */ export type Timestamp_Comparison_Exp = { _eq?: InputMaybe; @@ -971,6 +1015,97 @@ export type Timestamp_Comparison_Exp = { _nin?: InputMaybe>; }; +/** columns and relationships of "user_block" */ +export type User_Block = { + __typename?: 'user_block'; + /** An object relationship */ + blocked?: Maybe; + blocked_address?: Maybe; + /** An object relationship */ + blocker?: Maybe; + blocker_address?: Maybe; + reason?: Maybe; + subspace_id: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "user_block". All fields are combined with a logical 'AND'. */ +export type User_Block_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + blocked?: InputMaybe; + blocked_address?: InputMaybe; + blocker?: InputMaybe; + blocker_address?: InputMaybe; + reason?: InputMaybe; + subspace_id?: InputMaybe; +}; + +/** Ordering options when selecting data from "user_block". */ +export type User_Block_Order_By = { + blocked?: InputMaybe; + blocked_address?: InputMaybe; + blocker?: InputMaybe; + blocker_address?: InputMaybe; + reason?: InputMaybe; + subspace_id?: InputMaybe; +}; + +/** select columns of table "user_block" */ +export enum User_Block_Select_Column { + /** column name */ + BlockedAddress = 'blocked_address', + /** column name */ + BlockerAddress = 'blocker_address', + /** column name */ + Reason = 'reason', + /** column name */ + SubspaceId = 'subspace_id' +} + +/** columns and relationships of "user_relationship" */ +export type User_Relationship = { + __typename?: 'user_relationship'; + /** An object relationship */ + counterparty?: Maybe; + counterparty_address: Scalars['String']; + /** An object relationship */ + creator?: Maybe; + creator_address: Scalars['String']; + subspace_id: Scalars['bigint']; +}; + +/** Boolean expression to filter rows from the table "user_relationship". All fields are combined with a logical 'AND'. */ +export type User_Relationship_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + counterparty?: InputMaybe; + counterparty_address?: InputMaybe; + creator?: InputMaybe; + creator_address?: InputMaybe; + subspace_id?: InputMaybe; +}; + +/** Ordering options when selecting data from "user_relationship". */ +export type User_Relationship_Order_By = { + counterparty?: InputMaybe; + counterparty_address?: InputMaybe; + creator?: InputMaybe; + creator_address?: InputMaybe; + subspace_id?: InputMaybe; +}; + +/** select columns of table "user_relationship" */ +export enum User_Relationship_Select_Column { + /** column name */ + CounterpartyAddress = 'counterparty_address', + /** column name */ + CreatorAddress = 'creator_address', + /** column name */ + SubspaceId = 'subspace_id' +} + export type DesmosProfileQueryVariables = Exact<{ addresses?: InputMaybe | Scalars['String']>; }>; From cb67b4175dac3958f936472e8fa8d0ff378adb89 Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Thu, 7 Dec 2023 14:42:41 +0700 Subject: [PATCH 14/20] fix: account page stuck on loading (#1315) ## Description Closes: #XXXX [BDU-1148](https://forbole.atlassian.net/browse/BDU-1148) --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [x] ran linting via `yarn lint` - [ ] wrote tests where necessary - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] targeted the correct branch - [x] provided a link to the relevant issue or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed - [x] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) [BDU-1148]: https://forbole.atlassian.net/browse/BDU-1148?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --- .changeset/stale-rabbits-smash.md | 5 +++++ packages/ui/src/screens/account_details/hooks.ts | 14 +++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 .changeset/stale-rabbits-smash.md diff --git a/.changeset/stale-rabbits-smash.md b/.changeset/stale-rabbits-smash.md new file mode 100644 index 0000000000..c581ae06e3 --- /dev/null +++ b/.changeset/stale-rabbits-smash.md @@ -0,0 +1,5 @@ +--- +'ui': patch +--- + +fix account page stuck on loading diff --git a/packages/ui/src/screens/account_details/hooks.ts b/packages/ui/src/screens/account_details/hooks.ts index b33185e077..75bd2da116 100644 --- a/packages/ui/src/screens/account_details/hooks.ts +++ b/packages/ui/src/screens/account_details/hooks.ts @@ -236,8 +236,13 @@ export const useAccountDetails = () => { skip: !extra.profile || !address, }); useEffect( - () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), - [dataDesmosProfile] + () => + setState((prevState) => ({ + ...prevState, + desmosProfile: dataDesmosProfile?.[0], + loading: loadingDesmosProfile, + })), + [dataDesmosProfile, loadingDesmosProfile] ); const commission = useCommission(address); @@ -278,10 +283,5 @@ export const useAccountDetails = () => { })); }, [handleSetState, address, withdrawalAddress.withdrawalAddress?.address]); - if (loadingDesmosProfile) state.loading = true; - return { state }; }; -// function useBoundingBalance(_address?: string) { -// throw new Error('Function not implemented.'); -// } From 8789ccbd72b8a6267bc2e9704e44632fa89a2870 Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Thu, 7 Dec 2023 20:10:15 +0700 Subject: [PATCH 15/20] fix: validator details page loading (#1316) ## Description Closes: #XXXX [BDU-1132](https://forbole.atlassian.net/jira/software/c/projects/BDU/issues/BDU-1132) --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [x] ran linting via `yarn lint` - [ ] wrote tests where necessary - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] targeted the correct branch - [x] provided a link to the relevant issue or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed - [x] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) [BDU-1132]: https://forbole.atlassian.net/browse/BDU-1132?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --- .changeset/proud-onions-burn.md | 5 + .../src/screens/validator_details/hooks.ts | 11 +- .../src/screens/validator_details/hooks.ts | 11 +- .../src/screens/account_details/hooks.ts | 11 +- .../src/screens/validator_details/hooks.ts | 11 +- .../src/screens/account_details/hooks.ts | 25 +- .../components/blocks/index.tsx | 87 ++++++ .../src/screens/validator_details/hooks.ts | 11 +- .../__snapshots__/index.test.tsx.snap | 203 ------------- .../account_details/components/index.ts | 5 - .../src/screens/account_details/hooks.ts | 281 ------------------ .../screens/account_details/index.test.tsx | 203 ------------- .../src/screens/account_details/index.tsx | 64 ---- .../src/screens/validator_details/hooks.ts | 11 +- .../src/screens/account_details/hooks.ts | 14 +- .../ui/src/screens/validator_details/hooks.ts | 11 +- 16 files changed, 161 insertions(+), 803 deletions(-) create mode 100644 .changeset/proud-onions-burn.md create mode 100644 apps/web-nomic/src/screens/validator_details/components/blocks/index.tsx delete mode 100644 apps/web-osmosis/src/screens/account_details/__snapshots__/index.test.tsx.snap delete mode 100644 apps/web-osmosis/src/screens/account_details/components/index.ts delete mode 100644 apps/web-osmosis/src/screens/account_details/hooks.ts delete mode 100644 apps/web-osmosis/src/screens/account_details/index.test.tsx delete mode 100644 apps/web-osmosis/src/screens/account_details/index.tsx diff --git a/.changeset/proud-onions-burn.md b/.changeset/proud-onions-burn.md new file mode 100644 index 0000000000..a224378209 --- /dev/null +++ b/.changeset/proud-onions-burn.md @@ -0,0 +1,5 @@ +--- +'ui': patch +--- + +fix validator details page loading diff --git a/apps/web-crescent/src/screens/validator_details/hooks.ts b/apps/web-crescent/src/screens/validator_details/hooks.ts index 0443e7d935..eeaad3d3cf 100644 --- a/apps/web-crescent/src/screens/validator_details/hooks.ts +++ b/apps/web-crescent/src/screens/validator_details/hooks.ts @@ -80,11 +80,16 @@ export const useValidatorDetails = () => { skip: !extra.profile || !state.overview.selfDelegateAddress, }); useEffect( - () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), - [dataDesmosProfile] + () => + setState((prevState) => ({ + ...prevState, + desmosProfile: dataDesmosProfile?.[0], + loading: loadingDesmosProfile, + })), + [dataDesmosProfile, loadingDesmosProfile] ); - return { state, loading: loading || loadingDesmosProfile }; + return { state, loading }; }; // ============================ diff --git a/apps/web-emoney/src/screens/validator_details/hooks.ts b/apps/web-emoney/src/screens/validator_details/hooks.ts index 351dabdfb6..a32bb84e1d 100644 --- a/apps/web-emoney/src/screens/validator_details/hooks.ts +++ b/apps/web-emoney/src/screens/validator_details/hooks.ts @@ -80,11 +80,16 @@ export const useValidatorDetails = () => { skip: !extra.profile || !state.overview.selfDelegateAddress, }); useEffect( - () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), - [dataDesmosProfile] + () => + setState((prevState) => ({ + ...prevState, + desmosProfile: dataDesmosProfile?.[0], + loading: loadingDesmosProfile, + })), + [dataDesmosProfile, loadingDesmosProfile] ); - return { state, loading: loading || loadingDesmosProfile }; + return { state, loading }; }; // ============================ diff --git a/apps/web-neutron/src/screens/account_details/hooks.ts b/apps/web-neutron/src/screens/account_details/hooks.ts index 9f07c03b9b..2d5e5a1436 100644 --- a/apps/web-neutron/src/screens/account_details/hooks.ts +++ b/apps/web-neutron/src/screens/account_details/hooks.ts @@ -289,8 +289,13 @@ export const useAccountDetails = () => { skip: !extra.profile || !address, }); useEffect( - () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), - [dataDesmosProfile] + () => + setState((prevState) => ({ + ...prevState, + desmosProfile: dataDesmosProfile?.[0], + loading: loadingDesmosProfile, + })), + [dataDesmosProfile, loadingDesmosProfile] ); const commission = useCommission(providerAddress); @@ -351,7 +356,5 @@ export const useAccountDetails = () => { providerAddress, ]); - if (loadingDesmosProfile) state.loading = true; - return { state }; }; diff --git a/apps/web-neutron/src/screens/validator_details/hooks.ts b/apps/web-neutron/src/screens/validator_details/hooks.ts index dc43151814..23fa3a2b15 100644 --- a/apps/web-neutron/src/screens/validator_details/hooks.ts +++ b/apps/web-neutron/src/screens/validator_details/hooks.ts @@ -148,11 +148,16 @@ export const useValidatorDetails = () => { skip: !extra.profile || !state.overview.selfDelegateAddress, }); useEffect( - () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), - [dataDesmosProfile] + () => + setState((prevState) => ({ + ...prevState, + desmosProfile: dataDesmosProfile?.[0], + loading: loadingDesmosProfile, + })), + [dataDesmosProfile, loadingDesmosProfile] ); - return { state, loading: loading || loadingDesmosProfile }; + return { state, loading }; }; function formatAccountQuery(data: ValidatorDetailsQuery): Partial { diff --git a/apps/web-nomic/src/screens/account_details/hooks.ts b/apps/web-nomic/src/screens/account_details/hooks.ts index 0bd365071a..dc71baff81 100644 --- a/apps/web-nomic/src/screens/account_details/hooks.ts +++ b/apps/web-nomic/src/screens/account_details/hooks.ts @@ -160,8 +160,13 @@ export const useAccountDetails = () => { skip: !extra.profile || !address, }); useEffect( - () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), - [dataDesmosProfile] + () => + setState((prevState) => ({ + ...prevState, + desmosProfile: dataDesmosProfile?.[0], + loading: loadingDesmosProfile, + })), + [dataDesmosProfile, loadingDesmosProfile] ); const available = useAvailableBalances(address); @@ -175,21 +180,5 @@ export const useAccountDetails = () => { handleSetState((prevState) => ({ ...prevState, ...formatAllBalance(formattedRawData) })); }, [available, delegation, handleSetState]); - // // ========================== - // // Fetch Data - // // ========================== - // const withdrawalAddress = useWithdrawalAddress(address); - // useEffect(() => { - // handleSetState((prevState) => ({ - // ...prevState, - // overview: { - // address: address ?? '', - // withdrawalAddress: withdrawalAddress?.withdrawalAddress?.address ?? '', - // }, - // })); - // }, [address, handleSetState, withdrawalAddress]); - - if (loadingDesmosProfile) state.loading = true; - return { state }; }; diff --git a/apps/web-nomic/src/screens/validator_details/components/blocks/index.tsx b/apps/web-nomic/src/screens/validator_details/components/blocks/index.tsx new file mode 100644 index 0000000000..df9079ae81 --- /dev/null +++ b/apps/web-nomic/src/screens/validator_details/components/blocks/index.tsx @@ -0,0 +1,87 @@ +import Tooltip from '@mui/material/Tooltip'; +import Typography from '@mui/material/Typography'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import numeral from 'numeral'; +import { FC } from 'react'; +import Loading from '@/components/loading'; +import AvatarName from '@/components/avatar_name'; +import Box from '@/components/box'; +import Result from '@/components/result'; +import { useProfileRecoil } from '@/recoil/profiles/hooks'; +import { useBlocks } from '@/screens/validator_details/components/blocks/hooks'; +import useStyles from '@/screens/validator_details/components/blocks/styles'; + +type BlockBoxProps = { + i: number; + item: ReturnType['state'][number]; + state: ReturnType['state']; +}; + +const BlockBox: FC = ({ i, item, state }) => { + const { address, imageUrl, name } = useProfileRecoil(item.proposer); + const { t } = useAppTranslation('validators'); + const { classes, cx } = useStyles(); + return ( + +
+ + {t('proposer')} + + +
+
+ + {t('block')} + + + {numeral(item.height).format('0,0')} + +
+
+ + {t('txs')} + + + {numeral(item.txs).format('0,0')} + +
+
+ + {t('signed')} + + +
+
+ } + placement="top" + > +
+ + ); +}; + +const Blocks: FC = ({ className }) => { + const { t } = useAppTranslation('validators'); + const { state, loading } = useBlocks(); + const { classes, cx } = useStyles(); + return ( + + {t('lastBlocks')} + {loading && } +
+ {state.map((x, i) => ( + + ))} +
+
+ ); +}; + +export default Blocks; diff --git a/apps/web-nomic/src/screens/validator_details/hooks.ts b/apps/web-nomic/src/screens/validator_details/hooks.ts index 9eaebb50a8..b85e300d20 100644 --- a/apps/web-nomic/src/screens/validator_details/hooks.ts +++ b/apps/web-nomic/src/screens/validator_details/hooks.ts @@ -76,11 +76,16 @@ export const useValidatorDetails = () => { skip: !extra.profile || !state.overview.selfDelegateAddress, }); useEffect( - () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), - [dataDesmosProfile] + () => + setState((prevState) => ({ + ...prevState, + desmosProfile: dataDesmosProfile?.[0], + loading: loadingDesmosProfile, + })), + [dataDesmosProfile, loadingDesmosProfile] ); - return { state, loading: loading || loadingDesmosProfile }; + return { state, loading }; }; // ============================ diff --git a/apps/web-osmosis/src/screens/account_details/__snapshots__/index.test.tsx.snap b/apps/web-osmosis/src/screens/account_details/__snapshots__/index.test.tsx.snap deleted file mode 100644 index e8750651e7..0000000000 --- a/apps/web-osmosis/src/screens/account_details/__snapshots__/index.test.tsx.snap +++ /dev/null @@ -1,203 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`screen: BlockDetails matches snapshot 1`] = ` -
-
- -
-
-
-
-
-
- -
-
-`; diff --git a/apps/web-osmosis/src/screens/account_details/components/index.ts b/apps/web-osmosis/src/screens/account_details/components/index.ts deleted file mode 100644 index 6947bf7a0a..0000000000 --- a/apps/web-osmosis/src/screens/account_details/components/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { default as Balance } from '@/screens/account_details/components/balance'; -export { default as OtherTokens } from '@/screens/account_details/components/other_tokens'; -export { default as Overview } from '@/screens/account_details/components/overview'; -export { default as Staking } from '@/screens/account_details/components/staking'; -export { default as Transactions } from '@/screens/account_details/components/transactions'; diff --git a/apps/web-osmosis/src/screens/account_details/hooks.ts b/apps/web-osmosis/src/screens/account_details/hooks.ts deleted file mode 100644 index 06d68a6c20..0000000000 --- a/apps/web-osmosis/src/screens/account_details/hooks.ts +++ /dev/null @@ -1,281 +0,0 @@ -import Big from 'big.js'; -import { useRouter } from 'next/router'; -import * as R from 'ramda'; -import { useCallback, useEffect, useState } from 'react'; -import chainConfig from '@/chainConfig'; -import { useDesmosProfile } from '@/hooks/use_desmos_profile'; -import type { AccountDetailState, OtherTokenType } from '@/screens/account_details/types'; -import { - useAccountWithdrawalAddress, - useAvailableBalances, - useCommission, - useDelegationBalance, - useRewards, - useUnbondingBalance, -} from '@/screens/account_details/utils'; -import { formatToken } from '@/utils/format_token'; -import { getDenom } from '@/utils/get_denom'; - -const { extra, primaryTokenUnit, tokenUnits } = chainConfig(); - -const defaultTokenUnit: TokenUnit = { - value: '0', - baseDenom: '', - displayDenom: '', - exponent: 0, -}; - -const initialState: AccountDetailState = { - loading: true, - balanceLoading: true, - exists: true, - desmosProfile: null, - overview: { - address: '', - withdrawalAddress: '', - }, - otherTokens: { - count: 0, - data: [], - }, - balance: { - available: defaultTokenUnit, - delegate: defaultTokenUnit, - unbonding: defaultTokenUnit, - reward: defaultTokenUnit, - commission: defaultTokenUnit, - total: defaultTokenUnit, - }, - rewards: {}, -}; - -type Data = { - delegationRewards?: ReturnType['delegationRewards']; - accountBalances?: ReturnType['accountBalances']; - delegationBalance?: ReturnType['delegationBalance']; - unbondingBalance?: ReturnType['unbondingBalance']; - commission?: ReturnType['commission']; -}; - -// ============================ -// rewards -// ============================ -const formatRewards = (data?: Data) => { - const rewardsDict: AccountDetailState['rewards'] = {}; - // log all the rewards - data?.delegationRewards?.forEach((x) => { - if (!x) return; - const coins = x.coins ?? []; - const denomAmount = getDenom(coins, primaryTokenUnit); - const denomFormat = formatToken(denomAmount.amount, primaryTokenUnit); - rewardsDict[x.validatorAddress] = denomFormat; - }); - return rewardsDict; -}; - -// ============================ -// balance -// ============================ -const formatBalance = (data?: Data) => { - const available = getDenom(R.pathOr([], ['accountBalances', 'coins'], data), primaryTokenUnit); - const availableAmount = formatToken(available.amount, primaryTokenUnit); - const delegate = getDenom(R.pathOr([], ['delegationBalance', 'coins'], data), primaryTokenUnit); - const delegateAmount = formatToken(delegate.amount, primaryTokenUnit); - - const unbonding = getDenom(R.pathOr([], ['unbondingBalance', 'coins'], data), primaryTokenUnit); - const unbondingAmount = formatToken(unbonding.amount, primaryTokenUnit); - - const rewards = (data?.delegationRewards ?? []).reduce((a, b) => { - if (!b) return a; - const coins = b.coins ?? []; - const dsmCoins = getDenom(coins, primaryTokenUnit); - - return Big(a).plus(dsmCoins.amount).toPrecision() ?? ''; - }, '0'); - const rewardsAmount = formatToken(rewards, primaryTokenUnit); - - const commission = getDenom(R.pathOr([], ['commission', 'coins'], data), primaryTokenUnit); - const commissionAmount = formatToken(commission.amount, primaryTokenUnit); - - const total = Big(availableAmount.value) - .plus(delegateAmount.value) - .plus(unbondingAmount.value) - .plus(rewardsAmount.value) - .plus(commissionAmount.value) - .toFixed(tokenUnits?.[primaryTokenUnit].exponent); - - const balance = { - available: availableAmount, - delegate: delegateAmount, - unbonding: unbondingAmount, - reward: rewardsAmount, - commission: commissionAmount, - total: { - value: total, - displayDenom: availableAmount.displayDenom, - baseDenom: availableAmount.baseDenom, - exponent: availableAmount.exponent, - }, - }; - - return balance; -}; - -// ========================== -// Format TX -// ========================== -const formatAllBalance = (data?: Data) => { - const stateChange: Partial = { - balanceLoading: false, - }; - - stateChange.rewards = formatRewards(data); - - stateChange.balance = formatBalance(data); - - formatOtherTokens(data); - - stateChange.otherTokens = formatOtherTokens(data); - - return stateChange; -}; - -// ============================ -// other tokens -// ============================ -const formatOtherTokens = (data?: Data) => { - // Loop through balance and delegation to figure out what the other tokens are - const otherTokenUnits = new Set(); - const otherTokens: OtherTokenType[] = []; - // available tokens - const available = data?.accountBalances?.coins ?? []; - - available.forEach((x) => { - otherTokenUnits.add(x.denom); - }); - - // rewards tokens - const rewards = data?.delegationRewards ?? []; - - rewards.forEach((x) => { - x?.coins?.forEach((y) => { - otherTokenUnits.add(y.denom); - }); - }); - - // commission tokens - const commission = data?.commission?.coins ?? []; - - commission.forEach((x) => { - otherTokenUnits.add(x.denom); - }); - - // remove the primary token unit thats being shown in balance - otherTokenUnits.delete(primaryTokenUnit); - - otherTokenUnits.forEach((x: string) => { - const availableRawAmount = getDenom(available, x); - const availableAmount = formatToken(availableRawAmount.amount, x); - const rewardsRawAmount = rewards.reduce((a, b) => { - if (!b) return a; - const coins = R.pathOr>([], ['coins'], b); - const denom = getDenom(coins, x); - return Big(a).plus(denom.amount).toPrecision(); - }, '0'); - const rewardAmount = formatToken(rewardsRawAmount, x); - const commissionRawAmount = getDenom(commission, x); - const commissionAmount = formatToken(commissionRawAmount.amount, x); - - otherTokens.push({ - denom: tokenUnits?.[x]?.display ?? x, - available: availableAmount, - reward: rewardAmount, - commission: commissionAmount, - }); - }); - - return { - data: otherTokens, - count: otherTokens.length, - }; -}; - -export const useAccountDetails = () => { - const router = useRouter(); - const [state, setState] = useState(initialState); - - const handleSetState = useCallback( - (stateChange: (prevState: AccountDetailState) => AccountDetailState) => { - setState((prevState) => { - const newState = stateChange(prevState); - return R.equals(prevState, newState) ? prevState : newState; - }); - }, - [] - ); - const address = Array.isArray(router.query.address) - ? router.query.address[0] - : router.query.address ?? ''; - - // ========================== - // Desmos Profile - // ========================== - const { data: dataDesmosProfile, loading: loadingDesmosProfile } = useDesmosProfile({ - addresses: [address], - skip: !extra.profile || !address, - }); - useEffect( - () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), - [dataDesmosProfile] - ); - - const commission = useCommission(address); - const available = useAvailableBalances(address); - const delegation = useDelegationBalance(address); - const unbonding = useUnbondingBalance(address); - const rewards = useRewards(address); - - useEffect(() => { - const fetchBalance = async () => { - const formattedRawData = { - commission: commission?.commission, - accountBalances: available?.accountBalances, - delegationBalance: delegation?.delegationBalance, - unbondingBalance: unbonding?.unbondingBalance, - delegationRewards: rewards?.delegationRewards, - }; - - handleSetState((prevState) => ({ ...prevState, ...formatAllBalance(formattedRawData) })); - }; - fetchBalance(); - }, [ - available?.accountBalances, - commission?.commission, - delegation?.delegationBalance, - handleSetState, - rewards?.delegationRewards, - unbonding?.unbondingBalance, - ]); - - // ========================== - // Fetch Data - // ========================== - const withdrawalAddress = useAccountWithdrawalAddress(address); - useEffect(() => { - handleSetState((prevState) => ({ - ...prevState, - loading: false, - overview: { - address: address ?? '', - withdrawalAddress: withdrawalAddress.withdrawalAddress?.address ?? '', - }, - })); - }, [handleSetState, address, withdrawalAddress]); - - if (loadingDesmosProfile) state.loading = true; - - return { state }; -}; -// function useBoundingBalance(_address?: string) { -// throw new Error('Function not implemented.'); -// } diff --git a/apps/web-osmosis/src/screens/account_details/index.test.tsx b/apps/web-osmosis/src/screens/account_details/index.test.tsx deleted file mode 100644 index 99f7a0343c..0000000000 --- a/apps/web-osmosis/src/screens/account_details/index.test.tsx +++ /dev/null @@ -1,203 +0,0 @@ -import chainConfig from '@/chainConfig'; -import { GetMessagesByAddressDocument } from '@/graphql/types/general_types'; -import AccountDetails from '@/screens/account_details'; -import MockTheme from '@/tests/mocks/MockTheme'; -import wait from '@/tests/utils/wait'; -import { MockedProvider } from '@apollo/client/testing'; -import { useMemo } from 'react'; -import renderer from 'react-test-renderer'; - -const { prefix } = chainConfig(); - -// ================================== -// mocks -// ================================== -jest.mock('next/router', () => ({ - ...jest.requireActual('next/router'), - useRouter: () => ({ - query: { - address: 'desmos1ltpgdupjgtpqzsznltcptmfh6gfu5d8uehxggj', - }, - }), -})); -jest.mock('@/components/layout', () => (props: JSX.IntrinsicElements['div']) => ( -
-)); -jest.mock('@/components/load_and_exist', () => (props: JSX.IntrinsicElements['div']) => ( -
-)); -jest.mock('@/components/desmos_profile', () => (props: JSX.IntrinsicElements['div']) => ( -
-)); - -jest.mock( - '@/screens/account_details/components/overview', - () => (props: JSX.IntrinsicElements['div']) =>
-); -jest.mock( - '@/screens/account_details/components/balance', - () => (props: JSX.IntrinsicElements['div']) =>
-); -jest.mock( - '@/screens/account_details/components/staking', - () => (props: JSX.IntrinsicElements['div']) =>
-); -jest.mock( - '@/screens/account_details/components/transactions', - () => (props: JSX.IntrinsicElements['div']) =>
-); -jest.mock( - '@/screens/account_details/components/other_tokens', - () => (props: JSX.IntrinsicElements['div']) =>
-); - -// const mockAccount = jest.fn().mockReturnValue({ -// data: { -// commission: { -// coins: [ -// { -// amount: '935371507.295045102561007305', -// denom: 'udsm', -// }, -// ], -// }, -// withdrawalAddress: { -// address: 'desmos1ltpgdupjgtpqzsznltcptmfh6gfu5d8uehxggj', -// }, -// accountBalances: { -// coins: [ -// { -// amount: '116306', -// denom: 'udsm', -// }, -// ], -// }, -// delegationBalance: { -// coins: [ -// { -// amount: '1530000000', -// denom: 'udsm', -// }, -// ], -// }, -// unbondingBalance: { -// coins: [ -// { -// amount: '0', -// denom: 'udsm', -// }, -// ], -// }, -// delegationRewards: [ -// { -// validatorAddress: 'desmosvaloper1gwr9l765vfxv4l4zz8glsxwkkphj2084xjwc68', -// coins: [ -// { -// amount: '1983411.761512021000000000', -// denom: 'udsm', -// }, -// ], -// }, -// { -// validatorAddress: 'desmosvaloper1mqfr567kvp659z0zjvpqudw3wx7hh3s7u9a8g9', -// coins: [ -// { -// amount: '1029160.218282986240000000', -// denom: 'udsm', -// }, -// ], -// }, -// ], -// }, -// }); - -const mockAccountMessages = jest.fn().mockReturnValue({ - data: { - messagesByAddress: [ - { - transaction: { - height: 793314, - hash: '6BC372069E41B5493B785002FD795746384A07C3F373FF6E2CAD6ABDE29860BA', - success: true, - logs: [], - messages: [ - { - '@type': '/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward', - delegator_address: 'desmos18kvwy5hzcu3ss08lcfcnx0eajuecg69ujmkwjr', - validator_address: 'desmosvaloper18kvwy5hzcu3ss08lcfcnx0eajuecg69uvk76c3', - }, - { - '@type': '/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission', - validator_address: 'desmosvaloper18kvwy5hzcu3ss08lcfcnx0eajuecg69uvk76c3', - }, - ], - block: { - height: 793314, - timestamp: '2021-06-22T03:40:33.804715', - }, - }, - }, - ], - }, -}); - -jest.mock('@/hooks/use_desmos_profile', () => ({ - ...jest.requireActual('@/hooks/use_desmos_profile'), - useDesmosProfile: () => - useMemo( - () => ({ - loading: false, - data: [ - { - dtag: 'HappieSa', - nickname: 'theHappySamoyed', - imageUrl: - 'https://ipfs.desmos.network/ipfs/QmTvkdGrtBHHihjVajqqA2HAoHangeKR1oYbQWzasnPi7B', - coverUrl: - 'https://ipfs.desmos.network/ipfs/Qmf48cpgi2zNiH24Vo1xtVsePUJx9665gtiRduVCvV5fFg', - bio: 'hungry all the time', - connections: [ - { - identifier: `${prefix.account}test`, - network: 'desmos', - creationTime: '2021-10-06T00:10:45.761731', - }, - ], - }, - ], - }), - [] - ), -})); - -// ================================== -// unit tests -// ================================== -describe('screen: BlockDetails', () => { - xit('matches snapshot', async () => { - let component: renderer.ReactTestRenderer | undefined; - - renderer.act(() => { - component = renderer.create( - - - - - - ); - }); - await wait(renderer.act); - - const tree = component?.toJSON(); - expect(tree).toMatchSnapshot(); - }); - - afterEach(() => { - jest.clearAllMocks(); - }); -}); diff --git a/apps/web-osmosis/src/screens/account_details/index.tsx b/apps/web-osmosis/src/screens/account_details/index.tsx deleted file mode 100644 index 6d28e31fd3..0000000000 --- a/apps/web-osmosis/src/screens/account_details/index.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { NextSeo } from 'next-seo'; -import useAppTranslation from '@/hooks/useAppTranslation'; -import DesmosProfile from '@/components/desmos_profile'; -import Layout from '@/components/layout'; -import LoadAndExist from '@/components/load_and_exist'; -import Balance from '@/screens/account_details/components/balance'; -import OtherTokens from '@/screens/account_details/components/other_tokens'; -import Overview from '@/screens/account_details/components/overview'; -import Staking from '@/screens/account_details/components/staking'; -import Transactions from '@/screens/account_details/components/transactions'; -import { useAccountDetails } from '@/screens/account_details/hooks'; -import useStyles from '@/screens/account_details/styles'; - -const AccountDetails = () => { - const { t } = useAppTranslation('accounts'); - const { classes } = useStyles(); - const { state } = useAccountDetails(); - - return ( - <> - - - - - {!!state.desmosProfile && ( - - )} - - - - - - - - - - ); -}; - -export default AccountDetails; diff --git a/apps/web-regen/src/screens/validator_details/hooks.ts b/apps/web-regen/src/screens/validator_details/hooks.ts index 50378e506b..5455230e9f 100644 --- a/apps/web-regen/src/screens/validator_details/hooks.ts +++ b/apps/web-regen/src/screens/validator_details/hooks.ts @@ -79,11 +79,16 @@ export const useValidatorDetails = () => { skip: !extra.profile || !state.overview.selfDelegateAddress, }); useEffect( - () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), - [dataDesmosProfile] + () => + setState((prevState) => ({ + ...prevState, + desmosProfile: dataDesmosProfile?.[0], + loading: loadingDesmosProfile, + })), + [dataDesmosProfile, loadingDesmosProfile] ); - return { state, loading: loading || loadingDesmosProfile }; + return { state, loading }; }; // ============================ diff --git a/apps/web-stride/src/screens/account_details/hooks.ts b/apps/web-stride/src/screens/account_details/hooks.ts index 7796920da4..3aea2dca38 100644 --- a/apps/web-stride/src/screens/account_details/hooks.ts +++ b/apps/web-stride/src/screens/account_details/hooks.ts @@ -259,8 +259,13 @@ export const useAccountDetails = () => { skip: !extra.profile || !address, }); useEffect( - () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), - [dataDesmosProfile] + () => + setState((prevState) => ({ + ...prevState, + desmosProfile: dataDesmosProfile?.[0], + loading: loadingDesmosProfile, + })), + [dataDesmosProfile, loadingDesmosProfile] ); const commission = useCommission(providerAddress); @@ -316,10 +321,5 @@ export const useAccountDetails = () => { })); }, [handleSetState, address, withdrawalAddress?.withdrawalAddress?.address, providerAddress]); - if (loadingDesmosProfile) state.loading = true; - return { state }; }; -// function useBoundingBalance(_address?: string) { -// throw new Error('Function not implemented.'); -// } diff --git a/packages/ui/src/screens/validator_details/hooks.ts b/packages/ui/src/screens/validator_details/hooks.ts index 1676c2ece8..877abbdf2d 100644 --- a/packages/ui/src/screens/validator_details/hooks.ts +++ b/packages/ui/src/screens/validator_details/hooks.ts @@ -137,11 +137,16 @@ export const useValidatorDetails = () => { skip: !extra.profile || !state.overview.selfDelegateAddress, }); useEffect( - () => setState((prevState) => ({ ...prevState, desmosProfile: dataDesmosProfile?.[0] })), - [dataDesmosProfile] + () => + setState((prevState) => ({ + ...prevState, + desmosProfile: dataDesmosProfile?.[0], + loading: loadingDesmosProfile, + })), + [dataDesmosProfile, loadingDesmosProfile] ); - return { state, loading: loading || loadingDesmosProfile }; + return { state, loading }; }; function formatAccountQuery(data: ValidatorDetailsQuery): Partial { From 6f53ac8a81dc54fb6da171efd163a8b49f777ca7 Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Wed, 10 Jan 2024 17:10:35 +0700 Subject: [PATCH 16/20] feat: update osmosis proposal and params page to display v1 [web-osmosis] (#1317) ## Description Closes: #XXXX --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [x] ran linting via `yarn lint` - [ ] wrote tests where necessary - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] targeted the correct branch - [ ] provided a link to the relevant issue or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed - [x] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) --- .changeset/swift-monkeys-share.md | 5 + apps/web-osmosis/src/chain.json | 3 +- .../src/graphql/general/params.graphql | 7 +- .../graphql/general/proposal_details.graphql | 5 +- .../src/graphql/general/token_price.graphql | 1 - .../src/graphql/types/general_types.ts | 2349 +++++++++++------ .../src/models/gov_params/index.ts | 74 + .../src/models/mint_params/index.ts | 45 + apps/web-osmosis/src/screens/params/hooks.ts | 166 ++ apps/web-osmosis/src/screens/params/index.tsx | 79 + apps/web-osmosis/src/screens/params/types.ts | 50 + apps/web-osmosis/src/screens/params/utils.tsx | 162 ++ .../components/overview/index.tsx | 199 ++ .../components/overview/styles.ts | 77 + .../components/votes_graph/hooks.ts | 71 + .../src/screens/proposal_details/hooks.ts | 95 + .../src/screens/proposal_details/types.ts | 24 + packages/ui/public/locales/en/params.json | 7 +- packages/ui/public/locales/it/params.json | 7 +- packages/ui/public/locales/pl/params.json | 7 +- packages/ui/public/locales/zhs/params.json | 7 +- packages/ui/public/locales/zht/params.json | 7 +- 22 files changed, 2675 insertions(+), 772 deletions(-) create mode 100644 .changeset/swift-monkeys-share.md create mode 100644 apps/web-osmosis/src/models/gov_params/index.ts create mode 100644 apps/web-osmosis/src/models/mint_params/index.ts create mode 100644 apps/web-osmosis/src/screens/params/hooks.ts create mode 100644 apps/web-osmosis/src/screens/params/index.tsx create mode 100644 apps/web-osmosis/src/screens/params/types.ts create mode 100644 apps/web-osmosis/src/screens/params/utils.tsx create mode 100644 apps/web-osmosis/src/screens/proposal_details/components/overview/index.tsx create mode 100644 apps/web-osmosis/src/screens/proposal_details/components/overview/styles.ts create mode 100644 apps/web-osmosis/src/screens/proposal_details/components/votes_graph/hooks.ts create mode 100644 apps/web-osmosis/src/screens/proposal_details/hooks.ts create mode 100644 apps/web-osmosis/src/screens/proposal_details/types.ts diff --git a/.changeset/swift-monkeys-share.md b/.changeset/swift-monkeys-share.md new file mode 100644 index 0000000000..1127cb2953 --- /dev/null +++ b/.changeset/swift-monkeys-share.md @@ -0,0 +1,5 @@ +--- +'web-osmosis': major +--- + +update osmosis proposal and params page to display v1 diff --git a/apps/web-osmosis/src/chain.json b/apps/web-osmosis/src/chain.json index b2c198c7a1..ee5d0ba94a 100644 --- a/apps/web-osmosis/src/chain.json +++ b/apps/web-osmosis/src/chain.json @@ -3,7 +3,8 @@ "title": "Osmosis Block Explorer", "extra": { "profile": true, - "graphqlWs": false + "graphqlWs": false, + "votingPowerExponent": 6 }, "previewImage": "https://s3.bigdipper.live/osmosis.png", "themes": { diff --git a/apps/web-osmosis/src/graphql/general/params.graphql b/apps/web-osmosis/src/graphql/general/params.graphql index b5415d40e3..322ead5a1f 100644 --- a/apps/web-osmosis/src/graphql/general/params.graphql +++ b/apps/web-osmosis/src/graphql/general/params.graphql @@ -11,9 +11,8 @@ query Params { distributionParams: distribution_params(limit: 1, order_by: {height: desc}) { params } - govParams: gov_params (limit: 1, order_by: {height: desc}) { - depositParams: deposit_params - tallyParams: tally_params - votingParams: voting_params + govParams: gov_params(limit: 1, order_by: {height: desc}) { + params + height } } diff --git a/apps/web-osmosis/src/graphql/general/proposal_details.graphql b/apps/web-osmosis/src/graphql/general/proposal_details.graphql index 82ddef911b..231f3fdfee 100644 --- a/apps/web-osmosis/src/graphql/general/proposal_details.graphql +++ b/apps/web-osmosis/src/graphql/general/proposal_details.graphql @@ -7,7 +7,8 @@ query ProposalDetails($proposalId: Int) { content proposalId: id submitTime: submit_time - proposalType: proposal_type + metadata + summary depositEndTime: deposit_end_time votingStartTime: voting_start_time votingEndTime: voting_end_time @@ -25,7 +26,7 @@ query ProposalDetailsTally($proposalId: Int) { bondedTokens: bonded_tokens } quorum: gov_params (limit: 1, order_by: {height: desc}) { - tallyParams: tally_params + tallyParams: params } } diff --git a/apps/web-osmosis/src/graphql/general/token_price.graphql b/apps/web-osmosis/src/graphql/general/token_price.graphql index 8c11321b98..3ed50b2348 100644 --- a/apps/web-osmosis/src/graphql/general/token_price.graphql +++ b/apps/web-osmosis/src/graphql/general/token_price.graphql @@ -1,6 +1,5 @@ subscription TokenPriceListener($denom: String) { tokenPrice: token_price(where: {unit_name: {_eq: $denom}}) { - id price timestamp marketCap: market_cap diff --git a/apps/web-osmosis/src/graphql/types/general_types.ts b/apps/web-osmosis/src/graphql/types/general_types.ts index 9c44459080..aca260939f 100644 --- a/apps/web-osmosis/src/graphql/types/general_types.ts +++ b/apps/web-osmosis/src/graphql/types/general_types.ts @@ -21,7 +21,9 @@ export type Scalars = { _coin: any; _dec_coin: any; _text: any; + access_config: any; bigint: any; + bytea: any; jsonb: any; numeric: any; smallint: any; @@ -57,6 +59,14 @@ export type ActionRedelegationResponse = { redelegations?: Maybe>>; }; +export type ActionSuperfluidDelegationResponse = { + __typename?: 'ActionSuperfluidDelegationResponse'; + delegation_amount?: Maybe; + delegator_address: Scalars['String']; + equivalent_staked_amount?: Maybe; + validator_address: Scalars['String']; +}; + export type ActionUnbondingDelegationResponse = { __typename?: 'ActionUnbondingDelegationResponse'; pagination?: Maybe; @@ -166,6 +176,19 @@ export type _Text_Comparison_Exp = { _nin?: InputMaybe>; }; +/** Boolean expression to compare columns of type "access_config". All fields are combined with logical 'AND'. */ +export type Access_Config_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + /** columns and relationships of "account" */ export type Account = { __typename?: 'account'; @@ -200,6 +223,10 @@ export type Account = { vesting_accounts: Array; /** An aggregate relationship */ vesting_accounts_aggregate: Vesting_Account_Aggregate; + /** An array relationship */ + wasm_contracts: Array; + /** An aggregate relationship */ + wasm_contracts_aggregate: Wasm_Contract_Aggregate; }; @@ -342,6 +369,26 @@ export type AccountVesting_Accounts_AggregateArgs = { where?: InputMaybe; }; + +/** columns and relationships of "account" */ +export type AccountWasm_ContractsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "account" */ +export type AccountWasm_Contracts_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + /** aggregated selection of "account" */ export type Account_Aggregate = { __typename?: 'account_aggregate'; @@ -378,6 +425,7 @@ export type Account_Bool_Exp = { validator_infos?: InputMaybe; vesting_account?: InputMaybe; vesting_accounts?: InputMaybe; + wasm_contracts?: InputMaybe; }; /** aggregate max on columns */ @@ -403,6 +451,7 @@ export type Account_Order_By = { validator_infos_aggregate?: InputMaybe; vesting_account?: InputMaybe; vesting_accounts_aggregate?: InputMaybe; + wasm_contracts_aggregate?: InputMaybe; }; /** select columns of table "account" */ @@ -1335,6 +1384,19 @@ export type Block_Variance_Order_By = { total_gas?: InputMaybe; }; +/** Boolean expression to compare columns of type "bytea". All fields are combined with logical 'AND'. */ +export type Bytea_Comparison_Exp = { + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>; + _is_null?: InputMaybe; + _lt?: InputMaybe; + _lte?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>; +}; + /** columns and relationships of "community_pool" */ export type Community_Pool = { __typename?: 'community_pool'; @@ -1459,7 +1521,6 @@ export type Community_Pool_Variance_Fields = { export type Distribution_Params = { __typename?: 'distribution_params'; height: Scalars['bigint']; - one_row_id: Scalars['Boolean']; params: Scalars['jsonb']; }; @@ -1511,7 +1572,6 @@ export type Distribution_Params_Bool_Exp = { _not?: InputMaybe; _or?: InputMaybe>; height?: InputMaybe; - one_row_id?: InputMaybe; params?: InputMaybe; }; @@ -1530,7 +1590,6 @@ export type Distribution_Params_Min_Fields = { /** Ordering options when selecting data from "distribution_params". */ export type Distribution_Params_Order_By = { height?: InputMaybe; - one_row_id?: InputMaybe; params?: InputMaybe; }; @@ -1539,8 +1598,6 @@ export enum Distribution_Params_Select_Column { /** column name */ Height = 'height', /** column name */ - OneRowId = 'one_row_id', - /** column name */ Params = 'params' } @@ -1837,7 +1894,6 @@ export type Double_Sign_Vote = { /** An aggregate relationship */ double_sign_evidences_aggregate: Double_Sign_Evidence_Aggregate; height: Scalars['bigint']; - id: Scalars['Int']; round: Scalars['Int']; signature: Scalars['String']; type: Scalars['smallint']; @@ -1936,7 +1992,6 @@ export type Double_Sign_Vote_Aggregate_Order_By = { export type Double_Sign_Vote_Avg_Fields = { __typename?: 'double_sign_vote_avg_fields'; height?: Maybe; - id?: Maybe; round?: Maybe; type?: Maybe; validator_index?: Maybe; @@ -1945,7 +2000,6 @@ export type Double_Sign_Vote_Avg_Fields = { /** order by avg() on columns of table "double_sign_vote" */ export type Double_Sign_Vote_Avg_Order_By = { height?: InputMaybe; - id?: InputMaybe; round?: InputMaybe; type?: InputMaybe; validator_index?: InputMaybe; @@ -1960,7 +2014,6 @@ export type Double_Sign_Vote_Bool_Exp = { doubleSignEvidencesByVoteBId?: InputMaybe; double_sign_evidences?: InputMaybe; height?: InputMaybe; - id?: InputMaybe; round?: InputMaybe; signature?: InputMaybe; type?: InputMaybe; @@ -1974,7 +2027,6 @@ export type Double_Sign_Vote_Max_Fields = { __typename?: 'double_sign_vote_max_fields'; block_id?: Maybe; height?: Maybe; - id?: Maybe; round?: Maybe; signature?: Maybe; type?: Maybe; @@ -1986,7 +2038,6 @@ export type Double_Sign_Vote_Max_Fields = { export type Double_Sign_Vote_Max_Order_By = { block_id?: InputMaybe; height?: InputMaybe; - id?: InputMaybe; round?: InputMaybe; signature?: InputMaybe; type?: InputMaybe; @@ -1999,7 +2050,6 @@ export type Double_Sign_Vote_Min_Fields = { __typename?: 'double_sign_vote_min_fields'; block_id?: Maybe; height?: Maybe; - id?: Maybe; round?: Maybe; signature?: Maybe; type?: Maybe; @@ -2011,7 +2061,6 @@ export type Double_Sign_Vote_Min_Fields = { export type Double_Sign_Vote_Min_Order_By = { block_id?: InputMaybe; height?: InputMaybe; - id?: InputMaybe; round?: InputMaybe; signature?: InputMaybe; type?: InputMaybe; @@ -2025,7 +2074,6 @@ export type Double_Sign_Vote_Order_By = { doubleSignEvidencesByVoteBId_aggregate?: InputMaybe; double_sign_evidences_aggregate?: InputMaybe; height?: InputMaybe; - id?: InputMaybe; round?: InputMaybe; signature?: InputMaybe; type?: InputMaybe; @@ -2041,8 +2089,6 @@ export enum Double_Sign_Vote_Select_Column { /** column name */ Height = 'height', /** column name */ - Id = 'id', - /** column name */ Round = 'round', /** column name */ Signature = 'signature', @@ -2058,7 +2104,6 @@ export enum Double_Sign_Vote_Select_Column { export type Double_Sign_Vote_Stddev_Fields = { __typename?: 'double_sign_vote_stddev_fields'; height?: Maybe; - id?: Maybe; round?: Maybe; type?: Maybe; validator_index?: Maybe; @@ -2067,7 +2112,6 @@ export type Double_Sign_Vote_Stddev_Fields = { /** order by stddev() on columns of table "double_sign_vote" */ export type Double_Sign_Vote_Stddev_Order_By = { height?: InputMaybe; - id?: InputMaybe; round?: InputMaybe; type?: InputMaybe; validator_index?: InputMaybe; @@ -2077,7 +2121,6 @@ export type Double_Sign_Vote_Stddev_Order_By = { export type Double_Sign_Vote_Stddev_Pop_Fields = { __typename?: 'double_sign_vote_stddev_pop_fields'; height?: Maybe; - id?: Maybe; round?: Maybe; type?: Maybe; validator_index?: Maybe; @@ -2086,7 +2129,6 @@ export type Double_Sign_Vote_Stddev_Pop_Fields = { /** order by stddev_pop() on columns of table "double_sign_vote" */ export type Double_Sign_Vote_Stddev_Pop_Order_By = { height?: InputMaybe; - id?: InputMaybe; round?: InputMaybe; type?: InputMaybe; validator_index?: InputMaybe; @@ -2096,7 +2138,6 @@ export type Double_Sign_Vote_Stddev_Pop_Order_By = { export type Double_Sign_Vote_Stddev_Samp_Fields = { __typename?: 'double_sign_vote_stddev_samp_fields'; height?: Maybe; - id?: Maybe; round?: Maybe; type?: Maybe; validator_index?: Maybe; @@ -2105,7 +2146,6 @@ export type Double_Sign_Vote_Stddev_Samp_Fields = { /** order by stddev_samp() on columns of table "double_sign_vote" */ export type Double_Sign_Vote_Stddev_Samp_Order_By = { height?: InputMaybe; - id?: InputMaybe; round?: InputMaybe; type?: InputMaybe; validator_index?: InputMaybe; @@ -2115,7 +2155,6 @@ export type Double_Sign_Vote_Stddev_Samp_Order_By = { export type Double_Sign_Vote_Sum_Fields = { __typename?: 'double_sign_vote_sum_fields'; height?: Maybe; - id?: Maybe; round?: Maybe; type?: Maybe; validator_index?: Maybe; @@ -2124,7 +2163,6 @@ export type Double_Sign_Vote_Sum_Fields = { /** order by sum() on columns of table "double_sign_vote" */ export type Double_Sign_Vote_Sum_Order_By = { height?: InputMaybe; - id?: InputMaybe; round?: InputMaybe; type?: InputMaybe; validator_index?: InputMaybe; @@ -2134,7 +2172,6 @@ export type Double_Sign_Vote_Sum_Order_By = { export type Double_Sign_Vote_Var_Pop_Fields = { __typename?: 'double_sign_vote_var_pop_fields'; height?: Maybe; - id?: Maybe; round?: Maybe; type?: Maybe; validator_index?: Maybe; @@ -2143,7 +2180,6 @@ export type Double_Sign_Vote_Var_Pop_Fields = { /** order by var_pop() on columns of table "double_sign_vote" */ export type Double_Sign_Vote_Var_Pop_Order_By = { height?: InputMaybe; - id?: InputMaybe; round?: InputMaybe; type?: InputMaybe; validator_index?: InputMaybe; @@ -2153,7 +2189,6 @@ export type Double_Sign_Vote_Var_Pop_Order_By = { export type Double_Sign_Vote_Var_Samp_Fields = { __typename?: 'double_sign_vote_var_samp_fields'; height?: Maybe; - id?: Maybe; round?: Maybe; type?: Maybe; validator_index?: Maybe; @@ -2162,7 +2197,6 @@ export type Double_Sign_Vote_Var_Samp_Fields = { /** order by var_samp() on columns of table "double_sign_vote" */ export type Double_Sign_Vote_Var_Samp_Order_By = { height?: InputMaybe; - id?: InputMaybe; round?: InputMaybe; type?: InputMaybe; validator_index?: InputMaybe; @@ -2172,7 +2206,6 @@ export type Double_Sign_Vote_Var_Samp_Order_By = { export type Double_Sign_Vote_Variance_Fields = { __typename?: 'double_sign_vote_variance_fields'; height?: Maybe; - id?: Maybe; round?: Maybe; type?: Maybe; validator_index?: Maybe; @@ -2181,7 +2214,6 @@ export type Double_Sign_Vote_Variance_Fields = { /** order by variance() on columns of table "double_sign_vote" */ export type Double_Sign_Vote_Variance_Order_By = { height?: InputMaybe; - id?: InputMaybe; round?: InputMaybe; type?: InputMaybe; validator_index?: InputMaybe; @@ -2198,7 +2230,6 @@ export type Fee_Grant_Allowance = { granter: Account; granter_address: Scalars['String']; height: Scalars['bigint']; - id: Scalars['Int']; }; @@ -2256,13 +2287,11 @@ export type Fee_Grant_Allowance_Aggregate_Order_By = { export type Fee_Grant_Allowance_Avg_Fields = { __typename?: 'fee_grant_allowance_avg_fields'; height?: Maybe; - id?: Maybe; }; /** order by avg() on columns of table "fee_grant_allowance" */ export type Fee_Grant_Allowance_Avg_Order_By = { height?: InputMaybe; - id?: InputMaybe; }; /** Boolean expression to filter rows from the table "fee_grant_allowance". All fields are combined with a logical 'AND'. */ @@ -2276,7 +2305,6 @@ export type Fee_Grant_Allowance_Bool_Exp = { granter?: InputMaybe; granter_address?: InputMaybe; height?: InputMaybe; - id?: InputMaybe; }; /** aggregate max on columns */ @@ -2285,7 +2313,6 @@ export type Fee_Grant_Allowance_Max_Fields = { grantee_address?: Maybe; granter_address?: Maybe; height?: Maybe; - id?: Maybe; }; /** order by max() on columns of table "fee_grant_allowance" */ @@ -2293,7 +2320,6 @@ export type Fee_Grant_Allowance_Max_Order_By = { grantee_address?: InputMaybe; granter_address?: InputMaybe; height?: InputMaybe; - id?: InputMaybe; }; /** aggregate min on columns */ @@ -2302,7 +2328,6 @@ export type Fee_Grant_Allowance_Min_Fields = { grantee_address?: Maybe; granter_address?: Maybe; height?: Maybe; - id?: Maybe; }; /** order by min() on columns of table "fee_grant_allowance" */ @@ -2310,7 +2335,6 @@ export type Fee_Grant_Allowance_Min_Order_By = { grantee_address?: InputMaybe; granter_address?: InputMaybe; height?: InputMaybe; - id?: InputMaybe; }; /** Ordering options when selecting data from "fee_grant_allowance". */ @@ -2321,7 +2345,6 @@ export type Fee_Grant_Allowance_Order_By = { granter?: InputMaybe; granter_address?: InputMaybe; height?: InputMaybe; - id?: InputMaybe; }; /** select columns of table "fee_grant_allowance" */ @@ -2333,100 +2356,84 @@ export enum Fee_Grant_Allowance_Select_Column { /** column name */ GranterAddress = 'granter_address', /** column name */ - Height = 'height', - /** column name */ - Id = 'id' + Height = 'height' } /** aggregate stddev on columns */ export type Fee_Grant_Allowance_Stddev_Fields = { __typename?: 'fee_grant_allowance_stddev_fields'; height?: Maybe; - id?: Maybe; }; /** order by stddev() on columns of table "fee_grant_allowance" */ export type Fee_Grant_Allowance_Stddev_Order_By = { height?: InputMaybe; - id?: InputMaybe; }; /** aggregate stddev_pop on columns */ export type Fee_Grant_Allowance_Stddev_Pop_Fields = { __typename?: 'fee_grant_allowance_stddev_pop_fields'; height?: Maybe; - id?: Maybe; }; /** order by stddev_pop() on columns of table "fee_grant_allowance" */ export type Fee_Grant_Allowance_Stddev_Pop_Order_By = { height?: InputMaybe; - id?: InputMaybe; }; /** aggregate stddev_samp on columns */ export type Fee_Grant_Allowance_Stddev_Samp_Fields = { __typename?: 'fee_grant_allowance_stddev_samp_fields'; height?: Maybe; - id?: Maybe; }; /** order by stddev_samp() on columns of table "fee_grant_allowance" */ export type Fee_Grant_Allowance_Stddev_Samp_Order_By = { height?: InputMaybe; - id?: InputMaybe; }; /** aggregate sum on columns */ export type Fee_Grant_Allowance_Sum_Fields = { __typename?: 'fee_grant_allowance_sum_fields'; height?: Maybe; - id?: Maybe; }; /** order by sum() on columns of table "fee_grant_allowance" */ export type Fee_Grant_Allowance_Sum_Order_By = { height?: InputMaybe; - id?: InputMaybe; }; /** aggregate var_pop on columns */ export type Fee_Grant_Allowance_Var_Pop_Fields = { __typename?: 'fee_grant_allowance_var_pop_fields'; height?: Maybe; - id?: Maybe; }; /** order by var_pop() on columns of table "fee_grant_allowance" */ export type Fee_Grant_Allowance_Var_Pop_Order_By = { height?: InputMaybe; - id?: InputMaybe; }; /** aggregate var_samp on columns */ export type Fee_Grant_Allowance_Var_Samp_Fields = { __typename?: 'fee_grant_allowance_var_samp_fields'; height?: Maybe; - id?: Maybe; }; /** order by var_samp() on columns of table "fee_grant_allowance" */ export type Fee_Grant_Allowance_Var_Samp_Order_By = { height?: InputMaybe; - id?: InputMaybe; }; /** aggregate variance on columns */ export type Fee_Grant_Allowance_Variance_Fields = { __typename?: 'fee_grant_allowance_variance_fields'; height?: Maybe; - id?: Maybe; }; /** order by variance() on columns of table "fee_grant_allowance" */ export type Fee_Grant_Allowance_Variance_Order_By = { height?: InputMaybe; - id?: InputMaybe; }; /** columns and relationships of "genesis" */ @@ -2561,28 +2568,13 @@ export type Genesis_Variance_Fields = { /** columns and relationships of "gov_params" */ export type Gov_Params = { __typename?: 'gov_params'; - deposit_params: Scalars['jsonb']; height: Scalars['bigint']; - one_row_id: Scalars['Boolean']; - tally_params: Scalars['jsonb']; - voting_params: Scalars['jsonb']; -}; - - -/** columns and relationships of "gov_params" */ -export type Gov_ParamsDeposit_ParamsArgs = { - path?: InputMaybe; -}; - - -/** columns and relationships of "gov_params" */ -export type Gov_ParamsTally_ParamsArgs = { - path?: InputMaybe; + params: Scalars['jsonb']; }; /** columns and relationships of "gov_params" */ -export type Gov_ParamsVoting_ParamsArgs = { +export type Gov_ParamsParamsArgs = { path?: InputMaybe; }; @@ -2627,11 +2619,8 @@ export type Gov_Params_Bool_Exp = { _and?: InputMaybe>; _not?: InputMaybe; _or?: InputMaybe>; - deposit_params?: InputMaybe; height?: InputMaybe; - one_row_id?: InputMaybe; - tally_params?: InputMaybe; - voting_params?: InputMaybe; + params?: InputMaybe; }; /** aggregate max on columns */ @@ -2648,25 +2637,16 @@ export type Gov_Params_Min_Fields = { /** Ordering options when selecting data from "gov_params". */ export type Gov_Params_Order_By = { - deposit_params?: InputMaybe; height?: InputMaybe; - one_row_id?: InputMaybe; - tally_params?: InputMaybe; - voting_params?: InputMaybe; + params?: InputMaybe; }; /** select columns of table "gov_params" */ export enum Gov_Params_Select_Column { - /** column name */ - DepositParams = 'deposit_params', /** column name */ Height = 'height', /** column name */ - OneRowId = 'one_row_id', - /** column name */ - TallyParams = 'tally_params', - /** column name */ - VotingParams = 'voting_params' + Params = 'params' } /** aggregate stddev on columns */ @@ -2862,7 +2842,6 @@ export type Message = { height: Scalars['bigint']; index: Scalars['bigint']; involved_accounts_addresses: Scalars['_text']; - partition_id: Scalars['bigint']; /** An object relationship */ transaction?: Maybe; /** An object relationship */ @@ -2928,14 +2907,12 @@ export type Message_Avg_Fields = { __typename?: 'message_avg_fields'; height?: Maybe; index?: Maybe; - partition_id?: Maybe; }; /** order by avg() on columns of table "message" */ export type Message_Avg_Order_By = { height?: InputMaybe; index?: InputMaybe; - partition_id?: InputMaybe; }; /** Boolean expression to filter rows from the table "message". All fields are combined with a logical 'AND'. */ @@ -2946,7 +2923,6 @@ export type Message_Bool_Exp = { height?: InputMaybe; index?: InputMaybe; involved_accounts_addresses?: InputMaybe<_Text_Comparison_Exp>; - partition_id?: InputMaybe; transaction?: InputMaybe; transactionByPartitionIdTransactionHash?: InputMaybe; transaction_hash?: InputMaybe; @@ -2959,7 +2935,6 @@ export type Message_Max_Fields = { __typename?: 'message_max_fields'; height?: Maybe; index?: Maybe; - partition_id?: Maybe; transaction_hash?: Maybe; type?: Maybe; }; @@ -2968,7 +2943,6 @@ export type Message_Max_Fields = { export type Message_Max_Order_By = { height?: InputMaybe; index?: InputMaybe; - partition_id?: InputMaybe; transaction_hash?: InputMaybe; type?: InputMaybe; }; @@ -2978,7 +2952,6 @@ export type Message_Min_Fields = { __typename?: 'message_min_fields'; height?: Maybe; index?: Maybe; - partition_id?: Maybe; transaction_hash?: Maybe; type?: Maybe; }; @@ -2987,7 +2960,6 @@ export type Message_Min_Fields = { export type Message_Min_Order_By = { height?: InputMaybe; index?: InputMaybe; - partition_id?: InputMaybe; transaction_hash?: InputMaybe; type?: InputMaybe; }; @@ -2997,7 +2969,6 @@ export type Message_Order_By = { height?: InputMaybe; index?: InputMaybe; involved_accounts_addresses?: InputMaybe; - partition_id?: InputMaybe; transaction?: InputMaybe; transactionByPartitionIdTransactionHash?: InputMaybe; transaction_hash?: InputMaybe; @@ -3014,8 +2985,6 @@ export enum Message_Select_Column { /** column name */ InvolvedAccountsAddresses = 'involved_accounts_addresses', /** column name */ - PartitionId = 'partition_id', - /** column name */ TransactionHash = 'transaction_hash', /** column name */ Type = 'type', @@ -3028,14 +2997,12 @@ export type Message_Stddev_Fields = { __typename?: 'message_stddev_fields'; height?: Maybe; index?: Maybe; - partition_id?: Maybe; }; /** order by stddev() on columns of table "message" */ export type Message_Stddev_Order_By = { height?: InputMaybe; index?: InputMaybe; - partition_id?: InputMaybe; }; /** aggregate stddev_pop on columns */ @@ -3043,14 +3010,12 @@ export type Message_Stddev_Pop_Fields = { __typename?: 'message_stddev_pop_fields'; height?: Maybe; index?: Maybe; - partition_id?: Maybe; }; /** order by stddev_pop() on columns of table "message" */ export type Message_Stddev_Pop_Order_By = { height?: InputMaybe; index?: InputMaybe; - partition_id?: InputMaybe; }; /** aggregate stddev_samp on columns */ @@ -3058,14 +3023,12 @@ export type Message_Stddev_Samp_Fields = { __typename?: 'message_stddev_samp_fields'; height?: Maybe; index?: Maybe; - partition_id?: Maybe; }; /** order by stddev_samp() on columns of table "message" */ export type Message_Stddev_Samp_Order_By = { height?: InputMaybe; index?: InputMaybe; - partition_id?: InputMaybe; }; /** aggregate sum on columns */ @@ -3073,14 +3036,12 @@ export type Message_Sum_Fields = { __typename?: 'message_sum_fields'; height?: Maybe; index?: Maybe; - partition_id?: Maybe; }; /** order by sum() on columns of table "message" */ export type Message_Sum_Order_By = { height?: InputMaybe; index?: InputMaybe; - partition_id?: InputMaybe; }; /** aggregate var_pop on columns */ @@ -3088,14 +3049,12 @@ export type Message_Var_Pop_Fields = { __typename?: 'message_var_pop_fields'; height?: Maybe; index?: Maybe; - partition_id?: Maybe; }; /** order by var_pop() on columns of table "message" */ export type Message_Var_Pop_Order_By = { height?: InputMaybe; index?: InputMaybe; - partition_id?: InputMaybe; }; /** aggregate var_samp on columns */ @@ -3103,14 +3062,12 @@ export type Message_Var_Samp_Fields = { __typename?: 'message_var_samp_fields'; height?: Maybe; index?: Maybe; - partition_id?: Maybe; }; /** order by var_samp() on columns of table "message" */ export type Message_Var_Samp_Order_By = { height?: InputMaybe; index?: InputMaybe; - partition_id?: InputMaybe; }; /** aggregate variance on columns */ @@ -3118,14 +3075,12 @@ export type Message_Variance_Fields = { __typename?: 'message_variance_fields'; height?: Maybe; index?: Maybe; - partition_id?: Maybe; }; /** order by variance() on columns of table "message" */ export type Message_Variance_Order_By = { height?: InputMaybe; index?: InputMaybe; - partition_id?: InputMaybe; }; export type Messages_By_Address_Args = { @@ -3135,11 +3090,18 @@ export type Messages_By_Address_Args = { types?: InputMaybe; }; +export type Messages_By_Single_Address_Args = { + address?: InputMaybe; + apikey?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; + types?: InputMaybe; +}; + /** columns and relationships of "mint_params" */ export type Mint_Params = { __typename?: 'mint_params'; height: Scalars['bigint']; - one_row_id: Scalars['Boolean']; params: Scalars['jsonb']; }; @@ -3191,7 +3153,6 @@ export type Mint_Params_Bool_Exp = { _not?: InputMaybe; _or?: InputMaybe>; height?: InputMaybe; - one_row_id?: InputMaybe; params?: InputMaybe; }; @@ -3210,7 +3171,6 @@ export type Mint_Params_Min_Fields = { /** Ordering options when selecting data from "mint_params". */ export type Mint_Params_Order_By = { height?: InputMaybe; - one_row_id?: InputMaybe; params?: InputMaybe; }; @@ -3219,8 +3179,6 @@ export enum Mint_Params_Select_Column { /** column name */ Height = 'height', /** column name */ - OneRowId = 'one_row_id', - /** column name */ Params = 'params' } @@ -3272,28 +3230,6 @@ export type Modules = { module_name: Scalars['String']; }; -/** aggregated selection of "modules" */ -export type Modules_Aggregate = { - __typename?: 'modules_aggregate'; - aggregate?: Maybe; - nodes: Array; -}; - -/** aggregate fields of "modules" */ -export type Modules_Aggregate_Fields = { - __typename?: 'modules_aggregate_fields'; - count: Scalars['Int']; - max?: Maybe; - min?: Maybe; -}; - - -/** aggregate fields of "modules" */ -export type Modules_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; - distinct?: InputMaybe; -}; - /** Boolean expression to filter rows from the table "modules". All fields are combined with a logical 'AND'. */ export type Modules_Bool_Exp = { _and?: InputMaybe>; @@ -3302,18 +3238,6 @@ export type Modules_Bool_Exp = { module_name?: InputMaybe; }; -/** aggregate max on columns */ -export type Modules_Max_Fields = { - __typename?: 'modules_max_fields'; - module_name?: Maybe; -}; - -/** aggregate min on columns */ -export type Modules_Min_Fields = { - __typename?: 'modules_min_fields'; - module_name?: Maybe; -}; - /** Ordering options when selecting data from "modules". */ export type Modules_Order_By = { module_name?: InputMaybe; @@ -3613,18 +3537,17 @@ export type Proposal = { deposit_end_time?: Maybe; description: Scalars['String']; id: Scalars['Int']; + metadata?: Maybe; /** An array relationship */ proposal_deposits: Array; /** An aggregate relationship */ proposal_deposits_aggregate: Proposal_Deposit_Aggregate; - proposal_route: Scalars['String']; /** An object relationship */ proposal_tally_result?: Maybe; /** An array relationship */ proposal_tally_results: Array; /** An aggregate relationship */ proposal_tally_results_aggregate: Proposal_Tally_Result_Aggregate; - proposal_type: Scalars['String']; /** An array relationship */ proposal_votes: Array; /** An aggregate relationship */ @@ -3636,6 +3559,7 @@ export type Proposal = { staking_pool_snapshot?: Maybe; status?: Maybe; submit_time: Scalars['timestamp']; + summary?: Maybe; title: Scalars['String']; /** An array relationship */ validator_status_snapshots: Array; @@ -3796,17 +3720,17 @@ export type Proposal_Bool_Exp = { deposit_end_time?: InputMaybe; description?: InputMaybe; id?: InputMaybe; + metadata?: InputMaybe; proposal_deposits?: InputMaybe; - proposal_route?: InputMaybe; proposal_tally_result?: InputMaybe; proposal_tally_results?: InputMaybe; - proposal_type?: InputMaybe; proposal_votes?: InputMaybe; proposer?: InputMaybe; proposer_address?: InputMaybe; staking_pool_snapshot?: InputMaybe; status?: InputMaybe; submit_time?: InputMaybe; + summary?: InputMaybe; title?: InputMaybe; validator_status_snapshots?: InputMaybe; voting_end_time?: InputMaybe; @@ -3827,6 +3751,7 @@ export type Proposal_Deposit = { proposal: Proposal; proposal_id: Scalars['Int']; timestamp?: Maybe; + transaction_hash: Scalars['String']; }; /** aggregated selection of "proposal_deposit" */ @@ -3900,6 +3825,7 @@ export type Proposal_Deposit_Bool_Exp = { proposal?: InputMaybe; proposal_id?: InputMaybe; timestamp?: InputMaybe; + transaction_hash?: InputMaybe; }; /** aggregate max on columns */ @@ -3909,6 +3835,7 @@ export type Proposal_Deposit_Max_Fields = { height?: Maybe; proposal_id?: Maybe; timestamp?: Maybe; + transaction_hash?: Maybe; }; /** order by max() on columns of table "proposal_deposit" */ @@ -3917,6 +3844,7 @@ export type Proposal_Deposit_Max_Order_By = { height?: InputMaybe; proposal_id?: InputMaybe; timestamp?: InputMaybe; + transaction_hash?: InputMaybe; }; /** aggregate min on columns */ @@ -3926,6 +3854,7 @@ export type Proposal_Deposit_Min_Fields = { height?: Maybe; proposal_id?: Maybe; timestamp?: Maybe; + transaction_hash?: Maybe; }; /** order by min() on columns of table "proposal_deposit" */ @@ -3934,6 +3863,7 @@ export type Proposal_Deposit_Min_Order_By = { height?: InputMaybe; proposal_id?: InputMaybe; timestamp?: InputMaybe; + transaction_hash?: InputMaybe; }; /** Ordering options when selecting data from "proposal_deposit". */ @@ -3946,6 +3876,7 @@ export type Proposal_Deposit_Order_By = { proposal?: InputMaybe; proposal_id?: InputMaybe; timestamp?: InputMaybe; + transaction_hash?: InputMaybe; }; /** select columns of table "proposal_deposit" */ @@ -3959,7 +3890,9 @@ export enum Proposal_Deposit_Select_Column { /** column name */ ProposalId = 'proposal_id', /** column name */ - Timestamp = 'timestamp' + Timestamp = 'timestamp', + /** column name */ + TransactionHash = 'transaction_hash' } /** aggregate stddev on columns */ @@ -4059,11 +3992,11 @@ export type Proposal_Max_Fields = { deposit_end_time?: Maybe; description?: Maybe; id?: Maybe; - proposal_route?: Maybe; - proposal_type?: Maybe; + metadata?: Maybe; proposer_address?: Maybe; status?: Maybe; submit_time?: Maybe; + summary?: Maybe; title?: Maybe; voting_end_time?: Maybe; voting_start_time?: Maybe; @@ -4074,11 +4007,11 @@ export type Proposal_Max_Order_By = { deposit_end_time?: InputMaybe; description?: InputMaybe; id?: InputMaybe; - proposal_route?: InputMaybe; - proposal_type?: InputMaybe; + metadata?: InputMaybe; proposer_address?: InputMaybe; status?: InputMaybe; submit_time?: InputMaybe; + summary?: InputMaybe; title?: InputMaybe; voting_end_time?: InputMaybe; voting_start_time?: InputMaybe; @@ -4090,11 +4023,11 @@ export type Proposal_Min_Fields = { deposit_end_time?: Maybe; description?: Maybe; id?: Maybe; - proposal_route?: Maybe; - proposal_type?: Maybe; + metadata?: Maybe; proposer_address?: Maybe; status?: Maybe; submit_time?: Maybe; + summary?: Maybe; title?: Maybe; voting_end_time?: Maybe; voting_start_time?: Maybe; @@ -4105,11 +4038,11 @@ export type Proposal_Min_Order_By = { deposit_end_time?: InputMaybe; description?: InputMaybe; id?: InputMaybe; - proposal_route?: InputMaybe; - proposal_type?: InputMaybe; + metadata?: InputMaybe; proposer_address?: InputMaybe; status?: InputMaybe; submit_time?: InputMaybe; + summary?: InputMaybe; title?: InputMaybe; voting_end_time?: InputMaybe; voting_start_time?: InputMaybe; @@ -4121,17 +4054,17 @@ export type Proposal_Order_By = { deposit_end_time?: InputMaybe; description?: InputMaybe; id?: InputMaybe; + metadata?: InputMaybe; proposal_deposits_aggregate?: InputMaybe; - proposal_route?: InputMaybe; proposal_tally_result?: InputMaybe; proposal_tally_results_aggregate?: InputMaybe; - proposal_type?: InputMaybe; proposal_votes_aggregate?: InputMaybe; proposer?: InputMaybe; proposer_address?: InputMaybe; staking_pool_snapshot?: InputMaybe; status?: InputMaybe; submit_time?: InputMaybe; + summary?: InputMaybe; title?: InputMaybe; validator_status_snapshots_aggregate?: InputMaybe; voting_end_time?: InputMaybe; @@ -4149,9 +4082,7 @@ export enum Proposal_Select_Column { /** column name */ Id = 'id', /** column name */ - ProposalRoute = 'proposal_route', - /** column name */ - ProposalType = 'proposal_type', + Metadata = 'metadata', /** column name */ ProposerAddress = 'proposer_address', /** column name */ @@ -4159,6 +4090,8 @@ export enum Proposal_Select_Column { /** column name */ SubmitTime = 'submit_time', /** column name */ + Summary = 'summary', + /** column name */ Title = 'title', /** column name */ VotingEndTime = 'voting_end_time', @@ -4607,7 +4540,6 @@ export type Proposal_Tally_Result_Variance_Order_By = { export type Proposal_Validator_Status_Snapshot = { __typename?: 'proposal_validator_status_snapshot'; height: Scalars['bigint']; - id: Scalars['Int']; jailed: Scalars['Boolean']; /** An object relationship */ proposal?: Maybe; @@ -4668,7 +4600,6 @@ export type Proposal_Validator_Status_Snapshot_Aggregate_Order_By = { export type Proposal_Validator_Status_Snapshot_Avg_Fields = { __typename?: 'proposal_validator_status_snapshot_avg_fields'; height?: Maybe; - id?: Maybe; proposal_id?: Maybe; status?: Maybe; voting_power?: Maybe; @@ -4677,7 +4608,6 @@ export type Proposal_Validator_Status_Snapshot_Avg_Fields = { /** order by avg() on columns of table "proposal_validator_status_snapshot" */ export type Proposal_Validator_Status_Snapshot_Avg_Order_By = { height?: InputMaybe; - id?: InputMaybe; proposal_id?: InputMaybe; status?: InputMaybe; voting_power?: InputMaybe; @@ -4689,7 +4619,6 @@ export type Proposal_Validator_Status_Snapshot_Bool_Exp = { _not?: InputMaybe; _or?: InputMaybe>; height?: InputMaybe; - id?: InputMaybe; jailed?: InputMaybe; proposal?: InputMaybe; proposal_id?: InputMaybe; @@ -4703,7 +4632,6 @@ export type Proposal_Validator_Status_Snapshot_Bool_Exp = { export type Proposal_Validator_Status_Snapshot_Max_Fields = { __typename?: 'proposal_validator_status_snapshot_max_fields'; height?: Maybe; - id?: Maybe; proposal_id?: Maybe; status?: Maybe; validator_address?: Maybe; @@ -4713,7 +4641,6 @@ export type Proposal_Validator_Status_Snapshot_Max_Fields = { /** order by max() on columns of table "proposal_validator_status_snapshot" */ export type Proposal_Validator_Status_Snapshot_Max_Order_By = { height?: InputMaybe; - id?: InputMaybe; proposal_id?: InputMaybe; status?: InputMaybe; validator_address?: InputMaybe; @@ -4724,7 +4651,6 @@ export type Proposal_Validator_Status_Snapshot_Max_Order_By = { export type Proposal_Validator_Status_Snapshot_Min_Fields = { __typename?: 'proposal_validator_status_snapshot_min_fields'; height?: Maybe; - id?: Maybe; proposal_id?: Maybe; status?: Maybe; validator_address?: Maybe; @@ -4734,7 +4660,6 @@ export type Proposal_Validator_Status_Snapshot_Min_Fields = { /** order by min() on columns of table "proposal_validator_status_snapshot" */ export type Proposal_Validator_Status_Snapshot_Min_Order_By = { height?: InputMaybe; - id?: InputMaybe; proposal_id?: InputMaybe; status?: InputMaybe; validator_address?: InputMaybe; @@ -4744,7 +4669,6 @@ export type Proposal_Validator_Status_Snapshot_Min_Order_By = { /** Ordering options when selecting data from "proposal_validator_status_snapshot". */ export type Proposal_Validator_Status_Snapshot_Order_By = { height?: InputMaybe; - id?: InputMaybe; jailed?: InputMaybe; proposal?: InputMaybe; proposal_id?: InputMaybe; @@ -4759,8 +4683,6 @@ export enum Proposal_Validator_Status_Snapshot_Select_Column { /** column name */ Height = 'height', /** column name */ - Id = 'id', - /** column name */ Jailed = 'jailed', /** column name */ ProposalId = 'proposal_id', @@ -4776,7 +4698,6 @@ export enum Proposal_Validator_Status_Snapshot_Select_Column { export type Proposal_Validator_Status_Snapshot_Stddev_Fields = { __typename?: 'proposal_validator_status_snapshot_stddev_fields'; height?: Maybe; - id?: Maybe; proposal_id?: Maybe; status?: Maybe; voting_power?: Maybe; @@ -4785,7 +4706,6 @@ export type Proposal_Validator_Status_Snapshot_Stddev_Fields = { /** order by stddev() on columns of table "proposal_validator_status_snapshot" */ export type Proposal_Validator_Status_Snapshot_Stddev_Order_By = { height?: InputMaybe; - id?: InputMaybe; proposal_id?: InputMaybe; status?: InputMaybe; voting_power?: InputMaybe; @@ -4795,7 +4715,6 @@ export type Proposal_Validator_Status_Snapshot_Stddev_Order_By = { export type Proposal_Validator_Status_Snapshot_Stddev_Pop_Fields = { __typename?: 'proposal_validator_status_snapshot_stddev_pop_fields'; height?: Maybe; - id?: Maybe; proposal_id?: Maybe; status?: Maybe; voting_power?: Maybe; @@ -4804,7 +4723,6 @@ export type Proposal_Validator_Status_Snapshot_Stddev_Pop_Fields = { /** order by stddev_pop() on columns of table "proposal_validator_status_snapshot" */ export type Proposal_Validator_Status_Snapshot_Stddev_Pop_Order_By = { height?: InputMaybe; - id?: InputMaybe; proposal_id?: InputMaybe; status?: InputMaybe; voting_power?: InputMaybe; @@ -4814,7 +4732,6 @@ export type Proposal_Validator_Status_Snapshot_Stddev_Pop_Order_By = { export type Proposal_Validator_Status_Snapshot_Stddev_Samp_Fields = { __typename?: 'proposal_validator_status_snapshot_stddev_samp_fields'; height?: Maybe; - id?: Maybe; proposal_id?: Maybe; status?: Maybe; voting_power?: Maybe; @@ -4823,7 +4740,6 @@ export type Proposal_Validator_Status_Snapshot_Stddev_Samp_Fields = { /** order by stddev_samp() on columns of table "proposal_validator_status_snapshot" */ export type Proposal_Validator_Status_Snapshot_Stddev_Samp_Order_By = { height?: InputMaybe; - id?: InputMaybe; proposal_id?: InputMaybe; status?: InputMaybe; voting_power?: InputMaybe; @@ -4833,7 +4749,6 @@ export type Proposal_Validator_Status_Snapshot_Stddev_Samp_Order_By = { export type Proposal_Validator_Status_Snapshot_Sum_Fields = { __typename?: 'proposal_validator_status_snapshot_sum_fields'; height?: Maybe; - id?: Maybe; proposal_id?: Maybe; status?: Maybe; voting_power?: Maybe; @@ -4842,7 +4757,6 @@ export type Proposal_Validator_Status_Snapshot_Sum_Fields = { /** order by sum() on columns of table "proposal_validator_status_snapshot" */ export type Proposal_Validator_Status_Snapshot_Sum_Order_By = { height?: InputMaybe; - id?: InputMaybe; proposal_id?: InputMaybe; status?: InputMaybe; voting_power?: InputMaybe; @@ -4852,7 +4766,6 @@ export type Proposal_Validator_Status_Snapshot_Sum_Order_By = { export type Proposal_Validator_Status_Snapshot_Var_Pop_Fields = { __typename?: 'proposal_validator_status_snapshot_var_pop_fields'; height?: Maybe; - id?: Maybe; proposal_id?: Maybe; status?: Maybe; voting_power?: Maybe; @@ -4861,7 +4774,6 @@ export type Proposal_Validator_Status_Snapshot_Var_Pop_Fields = { /** order by var_pop() on columns of table "proposal_validator_status_snapshot" */ export type Proposal_Validator_Status_Snapshot_Var_Pop_Order_By = { height?: InputMaybe; - id?: InputMaybe; proposal_id?: InputMaybe; status?: InputMaybe; voting_power?: InputMaybe; @@ -4871,7 +4783,6 @@ export type Proposal_Validator_Status_Snapshot_Var_Pop_Order_By = { export type Proposal_Validator_Status_Snapshot_Var_Samp_Fields = { __typename?: 'proposal_validator_status_snapshot_var_samp_fields'; height?: Maybe; - id?: Maybe; proposal_id?: Maybe; status?: Maybe; voting_power?: Maybe; @@ -4880,7 +4791,6 @@ export type Proposal_Validator_Status_Snapshot_Var_Samp_Fields = { /** order by var_samp() on columns of table "proposal_validator_status_snapshot" */ export type Proposal_Validator_Status_Snapshot_Var_Samp_Order_By = { height?: InputMaybe; - id?: InputMaybe; proposal_id?: InputMaybe; status?: InputMaybe; voting_power?: InputMaybe; @@ -4890,7 +4800,6 @@ export type Proposal_Validator_Status_Snapshot_Var_Samp_Order_By = { export type Proposal_Validator_Status_Snapshot_Variance_Fields = { __typename?: 'proposal_validator_status_snapshot_variance_fields'; height?: Maybe; - id?: Maybe; proposal_id?: Maybe; status?: Maybe; voting_power?: Maybe; @@ -4899,7 +4808,6 @@ export type Proposal_Validator_Status_Snapshot_Variance_Fields = { /** order by variance() on columns of table "proposal_validator_status_snapshot" */ export type Proposal_Validator_Status_Snapshot_Variance_Order_By = { height?: InputMaybe; - id?: InputMaybe; proposal_id?: InputMaybe; status?: InputMaybe; voting_power?: InputMaybe; @@ -4944,7 +4852,7 @@ export type Proposal_Vote = { /** An object relationship */ account: Account; /** An object relationship */ - block: Block; + block?: Maybe; height: Scalars['bigint']; option: Scalars['String']; /** An object relationship */ @@ -5196,6 +5104,8 @@ export type Query_Root = { action_delegation_total?: Maybe; action_delegator_withdraw_address: ActionAddress; action_redelegation?: Maybe; + action_superfluid_delegation?: Maybe>>; + action_superfluid_delegation_total?: Maybe; action_unbonding_delegation?: Maybe; action_unbonding_delegation_total?: Maybe; action_validator_commission_amount?: Maybe; @@ -5232,8 +5142,6 @@ export type Query_Root = { distribution_params: Array; /** fetch aggregated fields from the table: "distribution_params" */ distribution_params_aggregate: Distribution_Params_Aggregate; - /** fetch data from the table: "distribution_params" using primary key columns */ - distribution_params_by_pk?: Maybe; /** fetch data from the table: "double_sign_evidence" */ double_sign_evidence: Array; /** fetch aggregated fields from the table: "double_sign_evidence" */ @@ -5242,14 +5150,10 @@ export type Query_Root = { double_sign_vote: Array; /** fetch aggregated fields from the table: "double_sign_vote" */ double_sign_vote_aggregate: Double_Sign_Vote_Aggregate; - /** fetch data from the table: "double_sign_vote" using primary key columns */ - double_sign_vote_by_pk?: Maybe; /** fetch data from the table: "fee_grant_allowance" */ fee_grant_allowance: Array; /** fetch aggregated fields from the table: "fee_grant_allowance" */ fee_grant_allowance_aggregate: Fee_Grant_Allowance_Aggregate; - /** fetch data from the table: "fee_grant_allowance" using primary key columns */ - fee_grant_allowance_by_pk?: Maybe; /** fetch data from the table: "genesis" */ genesis: Array; /** fetch aggregated fields from the table: "genesis" */ @@ -5258,8 +5162,6 @@ export type Query_Root = { gov_params: Array; /** fetch aggregated fields from the table: "gov_params" */ gov_params_aggregate: Gov_Params_Aggregate; - /** fetch data from the table: "gov_params" using primary key columns */ - gov_params_by_pk?: Maybe; /** fetch data from the table: "inflation" */ inflation: Array; /** fetch aggregated fields from the table: "inflation" */ @@ -5272,16 +5174,16 @@ export type Query_Root = { messages_by_address: Array; /** execute function "messages_by_address" and query aggregates on result of table type "message" */ messages_by_address_aggregate: Message_Aggregate; + /** execute function "messages_by_single_address" which returns "message" */ + messages_by_single_address: Array; + /** execute function "messages_by_single_address" and query aggregates on result of table type "message" */ + messages_by_single_address_aggregate: Message_Aggregate; /** fetch data from the table: "mint_params" */ mint_params: Array; /** fetch aggregated fields from the table: "mint_params" */ mint_params_aggregate: Mint_Params_Aggregate; - /** fetch data from the table: "mint_params" using primary key columns */ - mint_params_by_pk?: Maybe; /** fetch data from the table: "modules" */ modules: Array; - /** fetch aggregated fields from the table: "modules" */ - modules_aggregate: Modules_Aggregate; /** fetch data from the table: "modules" using primary key columns */ modules_by_pk?: Maybe; /** fetch data from the table: "pre_commit" */ @@ -5314,8 +5216,6 @@ export type Query_Root = { proposal_validator_status_snapshot: Array; /** fetch aggregated fields from the table: "proposal_validator_status_snapshot" */ proposal_validator_status_snapshot_aggregate: Proposal_Validator_Status_Snapshot_Aggregate; - /** fetch data from the table: "proposal_validator_status_snapshot" using primary key columns */ - proposal_validator_status_snapshot_by_pk?: Maybe; /** fetch data from the table: "proposal_vote" */ proposal_vote: Array; /** fetch aggregated fields from the table: "proposal_vote" */ @@ -5324,8 +5224,6 @@ export type Query_Root = { slashing_params: Array; /** fetch aggregated fields from the table: "slashing_params" */ slashing_params_aggregate: Slashing_Params_Aggregate; - /** fetch data from the table: "slashing_params" using primary key columns */ - slashing_params_by_pk?: Maybe; /** fetch data from the table: "software_upgrade_plan" */ software_upgrade_plan: Array; /** fetch aggregated fields from the table: "software_upgrade_plan" */ @@ -5334,8 +5232,6 @@ export type Query_Root = { staking_params: Array; /** fetch aggregated fields from the table: "staking_params" */ staking_params_aggregate: Staking_Params_Aggregate; - /** fetch data from the table: "staking_params" using primary key columns */ - staking_params_by_pk?: Maybe; /** fetch data from the table: "staking_pool" */ staking_pool: Array; /** fetch aggregated fields from the table: "staking_pool" */ @@ -5344,6 +5240,7 @@ export type Query_Root = { supply: Array; /** fetch aggregated fields from the table: "supply" */ supply_aggregate: Supply_Aggregate; + test_action_account_balance?: Maybe; /** fetch data from the table: "token" */ token: Array; /** fetch aggregated fields from the table: "token" */ @@ -5352,8 +5249,6 @@ export type Query_Root = { token_price: Array; /** fetch aggregated fields from the table: "token_price" */ token_price_aggregate: Token_Price_Aggregate; - /** fetch data from the table: "token_price" using primary key columns */ - token_price_by_pk?: Maybe; /** fetch data from the table: "token_price_history" */ token_price_history: Array; /** fetch aggregated fields from the table: "token_price_history" */ @@ -5412,12 +5307,28 @@ export type Query_Root = { vesting_account: Array; /** fetch aggregated fields from the table: "vesting_account" */ vesting_account_aggregate: Vesting_Account_Aggregate; - /** fetch data from the table: "vesting_account" using primary key columns */ - vesting_account_by_pk?: Maybe; /** fetch data from the table: "vesting_period" */ vesting_period: Array; /** fetch aggregated fields from the table: "vesting_period" */ vesting_period_aggregate: Vesting_Period_Aggregate; + /** fetch data from the table: "wasm_code" */ + wasm_code: Array; + /** fetch aggregated fields from the table: "wasm_code" */ + wasm_code_aggregate: Wasm_Code_Aggregate; + /** fetch data from the table: "wasm_contract" */ + wasm_contract: Array; + /** fetch aggregated fields from the table: "wasm_contract" */ + wasm_contract_aggregate: Wasm_Contract_Aggregate; + /** fetch data from the table: "wasm_execute_contract" */ + wasm_execute_contract: Array; + /** fetch aggregated fields from the table: "wasm_execute_contract" */ + wasm_execute_contract_aggregate: Wasm_Execute_Contract_Aggregate; + /** fetch data from the table: "wasm_params" */ + wasm_params: Array; + /** fetch aggregated fields from the table: "wasm_params" */ + wasm_params_aggregate: Wasm_Params_Aggregate; + /** fetch data from the table: "wasm_params" using primary key columns */ + wasm_params_by_pk?: Maybe; }; @@ -5485,6 +5396,18 @@ export type Query_RootAction_RedelegationArgs = { }; +export type Query_RootAction_Superfluid_DelegationArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + +export type Query_RootAction_Superfluid_Delegation_TotalArgs = { + address: Scalars['String']; + height?: InputMaybe; +}; + + export type Query_RootAction_Unbonding_DelegationArgs = { address: Scalars['String']; count_total?: InputMaybe; @@ -5661,11 +5584,6 @@ export type Query_RootDistribution_Params_AggregateArgs = { }; -export type Query_RootDistribution_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; -}; - - export type Query_RootDouble_Sign_EvidenceArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5702,11 +5620,6 @@ export type Query_RootDouble_Sign_Vote_AggregateArgs = { }; -export type Query_RootDouble_Sign_Vote_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Query_RootFee_Grant_AllowanceArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5725,11 +5638,6 @@ export type Query_RootFee_Grant_Allowance_AggregateArgs = { }; -export type Query_RootFee_Grant_Allowance_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Query_RootGenesisArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5766,11 +5674,6 @@ export type Query_RootGov_Params_AggregateArgs = { }; -export type Query_RootGov_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; -}; - - export type Query_RootInflationArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5827,6 +5730,26 @@ export type Query_RootMessages_By_Address_AggregateArgs = { }; +export type Query_RootMessages_By_Single_AddressArgs = { + args: Messages_By_Single_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootMessages_By_Single_Address_AggregateArgs = { + args: Messages_By_Single_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + export type Query_RootMint_ParamsArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5845,11 +5768,6 @@ export type Query_RootMint_Params_AggregateArgs = { }; -export type Query_RootMint_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; -}; - - export type Query_RootModulesArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -5859,15 +5777,6 @@ export type Query_RootModulesArgs = { }; -export type Query_RootModules_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Query_RootModules_By_PkArgs = { module_name: Scalars['String']; }; @@ -5996,11 +5905,6 @@ export type Query_RootProposal_Validator_Status_Snapshot_AggregateArgs = { }; -export type Query_RootProposal_Validator_Status_Snapshot_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Query_RootProposal_VoteArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -6037,11 +5941,6 @@ export type Query_RootSlashing_Params_AggregateArgs = { }; -export type Query_RootSlashing_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; -}; - - export type Query_RootSoftware_Upgrade_PlanArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -6078,11 +5977,6 @@ export type Query_RootStaking_Params_AggregateArgs = { }; -export type Query_RootStaking_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; -}; - - export type Query_RootStaking_PoolArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -6119,6 +6013,13 @@ export type Query_RootSupply_AggregateArgs = { }; +export type Query_RootTest_Action_Account_BalanceArgs = { + address: Scalars['String']; + apikey?: InputMaybe; + height?: InputMaybe; +}; + + export type Query_RootTokenArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -6155,11 +6056,6 @@ export type Query_RootToken_Price_AggregateArgs = { }; -export type Query_RootToken_Price_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Query_RootToken_Price_HistoryArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -6393,11 +6289,6 @@ export type Query_RootVesting_Account_AggregateArgs = { }; -export type Query_RootVesting_Account_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Query_RootVesting_PeriodArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -6415,21 +6306,97 @@ export type Query_RootVesting_Period_AggregateArgs = { where?: InputMaybe; }; -/** columns and relationships of "slashing_params" */ -export type Slashing_Params = { - __typename?: 'slashing_params'; - height: Scalars['bigint']; - one_row_id: Scalars['Boolean']; - params: Scalars['jsonb']; + +export type Query_RootWasm_CodeArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** columns and relationships of "slashing_params" */ -export type Slashing_ParamsParamsArgs = { - path?: InputMaybe; +export type Query_RootWasm_Code_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; }; -/** aggregated selection of "slashing_params" */ + +export type Query_RootWasm_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Execute_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Execute_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Query_RootWasm_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + +/** columns and relationships of "slashing_params" */ +export type Slashing_Params = { + __typename?: 'slashing_params'; + height: Scalars['bigint']; + params: Scalars['jsonb']; +}; + + +/** columns and relationships of "slashing_params" */ +export type Slashing_ParamsParamsArgs = { + path?: InputMaybe; +}; + +/** aggregated selection of "slashing_params" */ export type Slashing_Params_Aggregate = { __typename?: 'slashing_params_aggregate'; aggregate?: Maybe; @@ -6471,7 +6438,6 @@ export type Slashing_Params_Bool_Exp = { _not?: InputMaybe; _or?: InputMaybe>; height?: InputMaybe; - one_row_id?: InputMaybe; params?: InputMaybe; }; @@ -6490,7 +6456,6 @@ export type Slashing_Params_Min_Fields = { /** Ordering options when selecting data from "slashing_params". */ export type Slashing_Params_Order_By = { height?: InputMaybe; - one_row_id?: InputMaybe; params?: InputMaybe; }; @@ -6499,8 +6464,6 @@ export enum Slashing_Params_Select_Column { /** column name */ Height = 'height', /** column name */ - OneRowId = 'one_row_id', - /** column name */ Params = 'params' } @@ -6565,6 +6528,8 @@ export type Software_Upgrade_Plan = { height: Scalars['bigint']; info: Scalars['String']; plan_name: Scalars['String']; + /** An object relationship */ + proposal?: Maybe; proposal_id?: Maybe; upgrade_height: Scalars['bigint']; }; @@ -6615,6 +6580,7 @@ export type Software_Upgrade_Plan_Bool_Exp = { height?: InputMaybe; info?: InputMaybe; plan_name?: InputMaybe; + proposal?: InputMaybe; proposal_id?: InputMaybe; upgrade_height?: InputMaybe; }; @@ -6644,6 +6610,7 @@ export type Software_Upgrade_Plan_Order_By = { height?: InputMaybe; info?: InputMaybe; plan_name?: InputMaybe; + proposal?: InputMaybe; proposal_id?: InputMaybe; upgrade_height?: InputMaybe; }; @@ -6722,7 +6689,6 @@ export type Software_Upgrade_Plan_Variance_Fields = { export type Staking_Params = { __typename?: 'staking_params'; height: Scalars['bigint']; - one_row_id: Scalars['Boolean']; params: Scalars['jsonb']; }; @@ -6774,7 +6740,6 @@ export type Staking_Params_Bool_Exp = { _not?: InputMaybe; _or?: InputMaybe>; height?: InputMaybe; - one_row_id?: InputMaybe; params?: InputMaybe; }; @@ -6793,7 +6758,6 @@ export type Staking_Params_Min_Fields = { /** Ordering options when selecting data from "staking_params". */ export type Staking_Params_Order_By = { height?: InputMaybe; - one_row_id?: InputMaybe; params?: InputMaybe; }; @@ -6802,8 +6766,6 @@ export enum Staking_Params_Select_Column { /** column name */ Height = 'height', /** column name */ - OneRowId = 'one_row_id', - /** column name */ Params = 'params' } @@ -7030,8 +6992,6 @@ export type Subscription_Root = { distribution_params: Array; /** fetch aggregated fields from the table: "distribution_params" */ distribution_params_aggregate: Distribution_Params_Aggregate; - /** fetch data from the table: "distribution_params" using primary key columns */ - distribution_params_by_pk?: Maybe; /** fetch data from the table: "double_sign_evidence" */ double_sign_evidence: Array; /** fetch aggregated fields from the table: "double_sign_evidence" */ @@ -7040,14 +7000,10 @@ export type Subscription_Root = { double_sign_vote: Array; /** fetch aggregated fields from the table: "double_sign_vote" */ double_sign_vote_aggregate: Double_Sign_Vote_Aggregate; - /** fetch data from the table: "double_sign_vote" using primary key columns */ - double_sign_vote_by_pk?: Maybe; /** fetch data from the table: "fee_grant_allowance" */ fee_grant_allowance: Array; /** fetch aggregated fields from the table: "fee_grant_allowance" */ fee_grant_allowance_aggregate: Fee_Grant_Allowance_Aggregate; - /** fetch data from the table: "fee_grant_allowance" using primary key columns */ - fee_grant_allowance_by_pk?: Maybe; /** fetch data from the table: "genesis" */ genesis: Array; /** fetch aggregated fields from the table: "genesis" */ @@ -7056,8 +7012,6 @@ export type Subscription_Root = { gov_params: Array; /** fetch aggregated fields from the table: "gov_params" */ gov_params_aggregate: Gov_Params_Aggregate; - /** fetch data from the table: "gov_params" using primary key columns */ - gov_params_by_pk?: Maybe; /** fetch data from the table: "inflation" */ inflation: Array; /** fetch aggregated fields from the table: "inflation" */ @@ -7070,16 +7024,16 @@ export type Subscription_Root = { messages_by_address: Array; /** execute function "messages_by_address" and query aggregates on result of table type "message" */ messages_by_address_aggregate: Message_Aggregate; + /** execute function "messages_by_single_address" which returns "message" */ + messages_by_single_address: Array; + /** execute function "messages_by_single_address" and query aggregates on result of table type "message" */ + messages_by_single_address_aggregate: Message_Aggregate; /** fetch data from the table: "mint_params" */ mint_params: Array; /** fetch aggregated fields from the table: "mint_params" */ mint_params_aggregate: Mint_Params_Aggregate; - /** fetch data from the table: "mint_params" using primary key columns */ - mint_params_by_pk?: Maybe; /** fetch data from the table: "modules" */ modules: Array; - /** fetch aggregated fields from the table: "modules" */ - modules_aggregate: Modules_Aggregate; /** fetch data from the table: "modules" using primary key columns */ modules_by_pk?: Maybe; /** fetch data from the table: "pre_commit" */ @@ -7112,8 +7066,6 @@ export type Subscription_Root = { proposal_validator_status_snapshot: Array; /** fetch aggregated fields from the table: "proposal_validator_status_snapshot" */ proposal_validator_status_snapshot_aggregate: Proposal_Validator_Status_Snapshot_Aggregate; - /** fetch data from the table: "proposal_validator_status_snapshot" using primary key columns */ - proposal_validator_status_snapshot_by_pk?: Maybe; /** fetch data from the table: "proposal_vote" */ proposal_vote: Array; /** fetch aggregated fields from the table: "proposal_vote" */ @@ -7122,8 +7074,6 @@ export type Subscription_Root = { slashing_params: Array; /** fetch aggregated fields from the table: "slashing_params" */ slashing_params_aggregate: Slashing_Params_Aggregate; - /** fetch data from the table: "slashing_params" using primary key columns */ - slashing_params_by_pk?: Maybe; /** fetch data from the table: "software_upgrade_plan" */ software_upgrade_plan: Array; /** fetch aggregated fields from the table: "software_upgrade_plan" */ @@ -7132,8 +7082,6 @@ export type Subscription_Root = { staking_params: Array; /** fetch aggregated fields from the table: "staking_params" */ staking_params_aggregate: Staking_Params_Aggregate; - /** fetch data from the table: "staking_params" using primary key columns */ - staking_params_by_pk?: Maybe; /** fetch data from the table: "staking_pool" */ staking_pool: Array; /** fetch aggregated fields from the table: "staking_pool" */ @@ -7150,8 +7098,6 @@ export type Subscription_Root = { token_price: Array; /** fetch aggregated fields from the table: "token_price" */ token_price_aggregate: Token_Price_Aggregate; - /** fetch data from the table: "token_price" using primary key columns */ - token_price_by_pk?: Maybe; /** fetch data from the table: "token_price_history" */ token_price_history: Array; /** fetch aggregated fields from the table: "token_price_history" */ @@ -7210,12 +7156,28 @@ export type Subscription_Root = { vesting_account: Array; /** fetch aggregated fields from the table: "vesting_account" */ vesting_account_aggregate: Vesting_Account_Aggregate; - /** fetch data from the table: "vesting_account" using primary key columns */ - vesting_account_by_pk?: Maybe; /** fetch data from the table: "vesting_period" */ vesting_period: Array; /** fetch aggregated fields from the table: "vesting_period" */ vesting_period_aggregate: Vesting_Period_Aggregate; + /** fetch data from the table: "wasm_code" */ + wasm_code: Array; + /** fetch aggregated fields from the table: "wasm_code" */ + wasm_code_aggregate: Wasm_Code_Aggregate; + /** fetch data from the table: "wasm_contract" */ + wasm_contract: Array; + /** fetch aggregated fields from the table: "wasm_contract" */ + wasm_contract_aggregate: Wasm_Contract_Aggregate; + /** fetch data from the table: "wasm_execute_contract" */ + wasm_execute_contract: Array; + /** fetch aggregated fields from the table: "wasm_execute_contract" */ + wasm_execute_contract_aggregate: Wasm_Execute_Contract_Aggregate; + /** fetch data from the table: "wasm_params" */ + wasm_params: Array; + /** fetch aggregated fields from the table: "wasm_params" */ + wasm_params_aggregate: Wasm_Params_Aggregate; + /** fetch data from the table: "wasm_params" using primary key columns */ + wasm_params_by_pk?: Maybe; }; @@ -7373,11 +7335,6 @@ export type Subscription_RootDistribution_Params_AggregateArgs = { }; -export type Subscription_RootDistribution_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; -}; - - export type Subscription_RootDouble_Sign_EvidenceArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -7414,11 +7371,6 @@ export type Subscription_RootDouble_Sign_Vote_AggregateArgs = { }; -export type Subscription_RootDouble_Sign_Vote_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Subscription_RootFee_Grant_AllowanceArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -7437,11 +7389,6 @@ export type Subscription_RootFee_Grant_Allowance_AggregateArgs = { }; -export type Subscription_RootFee_Grant_Allowance_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Subscription_RootGenesisArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -7478,11 +7425,6 @@ export type Subscription_RootGov_Params_AggregateArgs = { }; -export type Subscription_RootGov_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; -}; - - export type Subscription_RootInflationArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -7539,6 +7481,26 @@ export type Subscription_RootMessages_By_Address_AggregateArgs = { }; +export type Subscription_RootMessages_By_Single_AddressArgs = { + args: Messages_By_Single_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootMessages_By_Single_Address_AggregateArgs = { + args: Messages_By_Single_Address_Args; + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + export type Subscription_RootMint_ParamsArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -7557,11 +7519,6 @@ export type Subscription_RootMint_Params_AggregateArgs = { }; -export type Subscription_RootMint_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; -}; - - export type Subscription_RootModulesArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -7571,15 +7528,6 @@ export type Subscription_RootModulesArgs = { }; -export type Subscription_RootModules_AggregateArgs = { - distinct_on?: InputMaybe>; - limit?: InputMaybe; - offset?: InputMaybe; - order_by?: InputMaybe>; - where?: InputMaybe; -}; - - export type Subscription_RootModules_By_PkArgs = { module_name: Scalars['String']; }; @@ -7708,11 +7656,6 @@ export type Subscription_RootProposal_Validator_Status_Snapshot_AggregateArgs = }; -export type Subscription_RootProposal_Validator_Status_Snapshot_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Subscription_RootProposal_VoteArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -7749,11 +7692,6 @@ export type Subscription_RootSlashing_Params_AggregateArgs = { }; -export type Subscription_RootSlashing_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; -}; - - export type Subscription_RootSoftware_Upgrade_PlanArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -7790,11 +7728,6 @@ export type Subscription_RootStaking_Params_AggregateArgs = { }; -export type Subscription_RootStaking_Params_By_PkArgs = { - one_row_id: Scalars['Boolean']; -}; - - export type Subscription_RootStaking_PoolArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -7867,11 +7800,6 @@ export type Subscription_RootToken_Price_AggregateArgs = { }; -export type Subscription_RootToken_Price_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Subscription_RootToken_Price_HistoryArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -8105,11 +8033,6 @@ export type Subscription_RootVesting_Account_AggregateArgs = { }; -export type Subscription_RootVesting_Account_By_PkArgs = { - id: Scalars['Int']; -}; - - export type Subscription_RootVesting_PeriodArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; @@ -8127,6 +8050,83 @@ export type Subscription_RootVesting_Period_AggregateArgs = { where?: InputMaybe; }; + +export type Subscription_RootWasm_CodeArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Code_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Execute_ContractArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Execute_Contract_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_ParamsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Params_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +export type Subscription_RootWasm_Params_By_PkArgs = { + one_row_id: Scalars['Boolean']; +}; + /** columns and relationships of "supply" */ export type Supply = { __typename?: 'supply'; @@ -8355,7 +8355,6 @@ export type Token_Order_By = { /** columns and relationships of "token_price" */ export type Token_Price = { __typename?: 'token_price'; - id: Scalars['Int']; market_cap: Scalars['bigint']; price: Scalars['numeric']; timestamp: Scalars['timestamp']; @@ -8412,14 +8411,12 @@ export type Token_Price_Aggregate_Order_By = { /** aggregate avg on columns */ export type Token_Price_Avg_Fields = { __typename?: 'token_price_avg_fields'; - id?: Maybe; market_cap?: Maybe; price?: Maybe; }; /** order by avg() on columns of table "token_price" */ export type Token_Price_Avg_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; @@ -8429,7 +8426,6 @@ export type Token_Price_Bool_Exp = { _and?: InputMaybe>; _not?: InputMaybe; _or?: InputMaybe>; - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; timestamp?: InputMaybe; @@ -8667,7 +8663,6 @@ export type Token_Price_History_Variance_Order_By = { /** aggregate max on columns */ export type Token_Price_Max_Fields = { __typename?: 'token_price_max_fields'; - id?: Maybe; market_cap?: Maybe; price?: Maybe; timestamp?: Maybe; @@ -8676,7 +8671,6 @@ export type Token_Price_Max_Fields = { /** order by max() on columns of table "token_price" */ export type Token_Price_Max_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; timestamp?: InputMaybe; @@ -8686,7 +8680,6 @@ export type Token_Price_Max_Order_By = { /** aggregate min on columns */ export type Token_Price_Min_Fields = { __typename?: 'token_price_min_fields'; - id?: Maybe; market_cap?: Maybe; price?: Maybe; timestamp?: Maybe; @@ -8695,7 +8688,6 @@ export type Token_Price_Min_Fields = { /** order by min() on columns of table "token_price" */ export type Token_Price_Min_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; timestamp?: InputMaybe; @@ -8704,7 +8696,6 @@ export type Token_Price_Min_Order_By = { /** Ordering options when selecting data from "token_price". */ export type Token_Price_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; timestamp?: InputMaybe; @@ -8714,8 +8705,6 @@ export type Token_Price_Order_By = { /** select columns of table "token_price" */ export enum Token_Price_Select_Column { - /** column name */ - Id = 'id', /** column name */ MarketCap = 'market_cap', /** column name */ @@ -8729,14 +8718,12 @@ export enum Token_Price_Select_Column { /** aggregate stddev on columns */ export type Token_Price_Stddev_Fields = { __typename?: 'token_price_stddev_fields'; - id?: Maybe; market_cap?: Maybe; price?: Maybe; }; /** order by stddev() on columns of table "token_price" */ export type Token_Price_Stddev_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; @@ -8744,14 +8731,12 @@ export type Token_Price_Stddev_Order_By = { /** aggregate stddev_pop on columns */ export type Token_Price_Stddev_Pop_Fields = { __typename?: 'token_price_stddev_pop_fields'; - id?: Maybe; market_cap?: Maybe; price?: Maybe; }; /** order by stddev_pop() on columns of table "token_price" */ export type Token_Price_Stddev_Pop_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; @@ -8759,14 +8744,12 @@ export type Token_Price_Stddev_Pop_Order_By = { /** aggregate stddev_samp on columns */ export type Token_Price_Stddev_Samp_Fields = { __typename?: 'token_price_stddev_samp_fields'; - id?: Maybe; market_cap?: Maybe; price?: Maybe; }; /** order by stddev_samp() on columns of table "token_price" */ export type Token_Price_Stddev_Samp_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; @@ -8774,14 +8757,12 @@ export type Token_Price_Stddev_Samp_Order_By = { /** aggregate sum on columns */ export type Token_Price_Sum_Fields = { __typename?: 'token_price_sum_fields'; - id?: Maybe; market_cap?: Maybe; price?: Maybe; }; /** order by sum() on columns of table "token_price" */ export type Token_Price_Sum_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; @@ -8789,14 +8770,12 @@ export type Token_Price_Sum_Order_By = { /** aggregate var_pop on columns */ export type Token_Price_Var_Pop_Fields = { __typename?: 'token_price_var_pop_fields'; - id?: Maybe; market_cap?: Maybe; price?: Maybe; }; /** order by var_pop() on columns of table "token_price" */ export type Token_Price_Var_Pop_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; @@ -8804,14 +8783,12 @@ export type Token_Price_Var_Pop_Order_By = { /** aggregate var_samp on columns */ export type Token_Price_Var_Samp_Fields = { __typename?: 'token_price_var_samp_fields'; - id?: Maybe; market_cap?: Maybe; price?: Maybe; }; /** order by var_samp() on columns of table "token_price" */ export type Token_Price_Var_Samp_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; @@ -8819,14 +8796,12 @@ export type Token_Price_Var_Samp_Order_By = { /** aggregate variance on columns */ export type Token_Price_Variance_Fields = { __typename?: 'token_price_variance_fields'; - id?: Maybe; market_cap?: Maybe; price?: Maybe; }; /** order by variance() on columns of table "token_price" */ export type Token_Price_Variance_Order_By = { - id?: InputMaybe; market_cap?: InputMaybe; price?: InputMaybe; }; @@ -9123,10 +9098,9 @@ export type Transaction = { memo?: Maybe; messages: Scalars['jsonb']; /** An array relationship */ - messagesByPartitionIdTransactionHash: Array; + messagesByTransactionHashPartitionId: Array; /** An aggregate relationship */ - messagesByPartitionIdTransactionHash_aggregate: Message_Aggregate; - partition_id: Scalars['bigint']; + messagesByTransactionHashPartitionId_aggregate: Message_Aggregate; raw_log?: Maybe; signatures: Scalars['_text']; signer_infos: Scalars['jsonb']; @@ -9153,7 +9127,7 @@ export type TransactionMessagesArgs = { /** columns and relationships of "transaction" */ -export type TransactionMessagesByPartitionIdTransactionHashArgs = { +export type TransactionMessagesByTransactionHashPartitionIdArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -9163,7 +9137,7 @@ export type TransactionMessagesByPartitionIdTransactionHashArgs = { /** columns and relationships of "transaction" */ -export type TransactionMessagesByPartitionIdTransactionHash_AggregateArgs = { +export type TransactionMessagesByTransactionHashPartitionId_AggregateArgs = { distinct_on?: InputMaybe>; limit?: InputMaybe; offset?: InputMaybe; @@ -9228,7 +9202,6 @@ export type Transaction_Avg_Fields = { gas_used?: Maybe; gas_wanted?: Maybe; height?: Maybe; - partition_id?: Maybe; }; /** order by avg() on columns of table "transaction" */ @@ -9236,7 +9209,6 @@ export type Transaction_Avg_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; }; /** Boolean expression to filter rows from the table "transaction". All fields are combined with a logical 'AND'. */ @@ -9253,8 +9225,7 @@ export type Transaction_Bool_Exp = { logs?: InputMaybe; memo?: InputMaybe; messages?: InputMaybe; - messagesByPartitionIdTransactionHash?: InputMaybe; - partition_id?: InputMaybe; + messagesByTransactionHashPartitionId?: InputMaybe; raw_log?: InputMaybe; signatures?: InputMaybe<_Text_Comparison_Exp>; signer_infos?: InputMaybe; @@ -9269,7 +9240,6 @@ export type Transaction_Max_Fields = { hash?: Maybe; height?: Maybe; memo?: Maybe; - partition_id?: Maybe; raw_log?: Maybe; }; @@ -9280,7 +9250,6 @@ export type Transaction_Max_Order_By = { hash?: InputMaybe; height?: InputMaybe; memo?: InputMaybe; - partition_id?: InputMaybe; raw_log?: InputMaybe; }; @@ -9292,7 +9261,6 @@ export type Transaction_Min_Fields = { hash?: Maybe; height?: Maybe; memo?: Maybe; - partition_id?: Maybe; raw_log?: Maybe; }; @@ -9303,7 +9271,6 @@ export type Transaction_Min_Order_By = { hash?: InputMaybe; height?: InputMaybe; memo?: InputMaybe; - partition_id?: InputMaybe; raw_log?: InputMaybe; }; @@ -9318,8 +9285,7 @@ export type Transaction_Order_By = { logs?: InputMaybe; memo?: InputMaybe; messages?: InputMaybe; - messagesByPartitionIdTransactionHash_aggregate?: InputMaybe; - partition_id?: InputMaybe; + messagesByTransactionHashPartitionId_aggregate?: InputMaybe; raw_log?: InputMaybe; signatures?: InputMaybe; signer_infos?: InputMaybe; @@ -9345,8 +9311,6 @@ export enum Transaction_Select_Column { /** column name */ Messages = 'messages', /** column name */ - PartitionId = 'partition_id', - /** column name */ RawLog = 'raw_log', /** column name */ Signatures = 'signatures', @@ -9362,7 +9326,6 @@ export type Transaction_Stddev_Fields = { gas_used?: Maybe; gas_wanted?: Maybe; height?: Maybe; - partition_id?: Maybe; }; /** order by stddev() on columns of table "transaction" */ @@ -9370,7 +9333,6 @@ export type Transaction_Stddev_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; }; /** aggregate stddev_pop on columns */ @@ -9379,7 +9341,6 @@ export type Transaction_Stddev_Pop_Fields = { gas_used?: Maybe; gas_wanted?: Maybe; height?: Maybe; - partition_id?: Maybe; }; /** order by stddev_pop() on columns of table "transaction" */ @@ -9387,7 +9348,6 @@ export type Transaction_Stddev_Pop_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; }; /** aggregate stddev_samp on columns */ @@ -9396,7 +9356,6 @@ export type Transaction_Stddev_Samp_Fields = { gas_used?: Maybe; gas_wanted?: Maybe; height?: Maybe; - partition_id?: Maybe; }; /** order by stddev_samp() on columns of table "transaction" */ @@ -9404,7 +9363,6 @@ export type Transaction_Stddev_Samp_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; }; /** aggregate sum on columns */ @@ -9413,7 +9371,6 @@ export type Transaction_Sum_Fields = { gas_used?: Maybe; gas_wanted?: Maybe; height?: Maybe; - partition_id?: Maybe; }; /** order by sum() on columns of table "transaction" */ @@ -9421,7 +9378,6 @@ export type Transaction_Sum_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; }; /** aggregate var_pop on columns */ @@ -9430,7 +9386,6 @@ export type Transaction_Var_Pop_Fields = { gas_used?: Maybe; gas_wanted?: Maybe; height?: Maybe; - partition_id?: Maybe; }; /** order by var_pop() on columns of table "transaction" */ @@ -9438,7 +9393,6 @@ export type Transaction_Var_Pop_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; }; /** aggregate var_samp on columns */ @@ -9447,7 +9401,6 @@ export type Transaction_Var_Samp_Fields = { gas_used?: Maybe; gas_wanted?: Maybe; height?: Maybe; - partition_id?: Maybe; }; /** order by var_samp() on columns of table "transaction" */ @@ -9455,7 +9408,6 @@ export type Transaction_Var_Samp_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; }; /** aggregate variance on columns */ @@ -9464,7 +9416,6 @@ export type Transaction_Variance_Fields = { gas_used?: Maybe; gas_wanted?: Maybe; height?: Maybe; - partition_id?: Maybe; }; /** order by variance() on columns of table "transaction" */ @@ -9472,7 +9423,6 @@ export type Transaction_Variance_Order_By = { gas_used?: InputMaybe; gas_wanted?: InputMaybe; height?: InputMaybe; - partition_id?: InputMaybe; }; /** columns and relationships of "validator" */ @@ -10265,6 +10215,7 @@ export type Validator_Info = { /** An object relationship */ account?: Maybe; consensus_address: Scalars['String']; + height: Scalars['bigint']; max_change_rate: Scalars['String']; max_rate: Scalars['String']; operator_address: Scalars['String']; @@ -10283,9 +10234,17 @@ export type Validator_Info_Aggregate = { /** aggregate fields of "validator_info" */ export type Validator_Info_Aggregate_Fields = { __typename?: 'validator_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; }; @@ -10297,9 +10256,28 @@ export type Validator_Info_Aggregate_FieldsCountArgs = { /** order by aggregate values of table "validator_info" */ export type Validator_Info_Aggregate_Order_By = { + avg?: InputMaybe; count?: InputMaybe; max?: InputMaybe; min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Validator_Info_Avg_Fields = { + __typename?: 'validator_info_avg_fields'; + height?: Maybe; +}; + +/** order by avg() on columns of table "validator_info" */ +export type Validator_Info_Avg_Order_By = { + height?: InputMaybe; }; /** Boolean expression to filter rows from the table "validator_info". All fields are combined with a logical 'AND'. */ @@ -10309,6 +10287,7 @@ export type Validator_Info_Bool_Exp = { _or?: InputMaybe>; account?: InputMaybe; consensus_address?: InputMaybe; + height?: InputMaybe; max_change_rate?: InputMaybe; max_rate?: InputMaybe; operator_address?: InputMaybe; @@ -10320,6 +10299,7 @@ export type Validator_Info_Bool_Exp = { export type Validator_Info_Max_Fields = { __typename?: 'validator_info_max_fields'; consensus_address?: Maybe; + height?: Maybe; max_change_rate?: Maybe; max_rate?: Maybe; operator_address?: Maybe; @@ -10329,6 +10309,7 @@ export type Validator_Info_Max_Fields = { /** order by max() on columns of table "validator_info" */ export type Validator_Info_Max_Order_By = { consensus_address?: InputMaybe; + height?: InputMaybe; max_change_rate?: InputMaybe; max_rate?: InputMaybe; operator_address?: InputMaybe; @@ -10339,6 +10320,7 @@ export type Validator_Info_Max_Order_By = { export type Validator_Info_Min_Fields = { __typename?: 'validator_info_min_fields'; consensus_address?: Maybe; + height?: Maybe; max_change_rate?: Maybe; max_rate?: Maybe; operator_address?: Maybe; @@ -10348,6 +10330,7 @@ export type Validator_Info_Min_Fields = { /** order by min() on columns of table "validator_info" */ export type Validator_Info_Min_Order_By = { consensus_address?: InputMaybe; + height?: InputMaybe; max_change_rate?: InputMaybe; max_rate?: InputMaybe; operator_address?: InputMaybe; @@ -10358,6 +10341,7 @@ export type Validator_Info_Min_Order_By = { export type Validator_Info_Order_By = { account?: InputMaybe; consensus_address?: InputMaybe; + height?: InputMaybe; max_change_rate?: InputMaybe; max_rate?: InputMaybe; operator_address?: InputMaybe; @@ -10370,6 +10354,8 @@ export enum Validator_Info_Select_Column { /** column name */ ConsensusAddress = 'consensus_address', /** column name */ + Height = 'height', + /** column name */ MaxChangeRate = 'max_change_rate', /** column name */ MaxRate = 'max_rate', @@ -10379,53 +10365,130 @@ export enum Validator_Info_Select_Column { SelfDelegateAddress = 'self_delegate_address' } -/** aggregate max on columns */ -export type Validator_Max_Fields = { - __typename?: 'validator_max_fields'; - consensus_address?: Maybe; - consensus_pubkey?: Maybe; +/** aggregate stddev on columns */ +export type Validator_Info_Stddev_Fields = { + __typename?: 'validator_info_stddev_fields'; + height?: Maybe; }; -/** aggregate min on columns */ -export type Validator_Min_Fields = { - __typename?: 'validator_min_fields'; - consensus_address?: Maybe; - consensus_pubkey?: Maybe; +/** order by stddev() on columns of table "validator_info" */ +export type Validator_Info_Stddev_Order_By = { + height?: InputMaybe; }; -/** Ordering options when selecting data from "validator". */ -export type Validator_Order_By = { - blocks_aggregate?: InputMaybe; - consensus_address?: InputMaybe; - consensus_pubkey?: InputMaybe; - double_sign_votes_aggregate?: InputMaybe; - pre_commits_aggregate?: InputMaybe; - proposal_validator_status_snapshot?: InputMaybe; - proposal_validator_status_snapshots_aggregate?: InputMaybe; - validator_commissions_aggregate?: InputMaybe; - validator_descriptions_aggregate?: InputMaybe; - validator_info?: InputMaybe; - validator_infos_aggregate?: InputMaybe; - validator_signing_infos_aggregate?: InputMaybe; - validator_statuses_aggregate?: InputMaybe; - validator_voting_powers_aggregate?: InputMaybe; +/** aggregate stddev_pop on columns */ +export type Validator_Info_Stddev_Pop_Fields = { + __typename?: 'validator_info_stddev_pop_fields'; + height?: Maybe; }; -/** select columns of table "validator" */ -export enum Validator_Select_Column { - /** column name */ - ConsensusAddress = 'consensus_address', - /** column name */ - ConsensusPubkey = 'consensus_pubkey' -} +/** order by stddev_pop() on columns of table "validator_info" */ +export type Validator_Info_Stddev_Pop_Order_By = { + height?: InputMaybe; +}; -/** columns and relationships of "validator_signing_info" */ -export type Validator_Signing_Info = { - __typename?: 'validator_signing_info'; - height: Scalars['bigint']; - index_offset: Scalars['bigint']; - jailed_until: Scalars['timestamp']; - missed_blocks_counter: Scalars['bigint']; +/** aggregate stddev_samp on columns */ +export type Validator_Info_Stddev_Samp_Fields = { + __typename?: 'validator_info_stddev_samp_fields'; + height?: Maybe; +}; + +/** order by stddev_samp() on columns of table "validator_info" */ +export type Validator_Info_Stddev_Samp_Order_By = { + height?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Validator_Info_Sum_Fields = { + __typename?: 'validator_info_sum_fields'; + height?: Maybe; +}; + +/** order by sum() on columns of table "validator_info" */ +export type Validator_Info_Sum_Order_By = { + height?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Validator_Info_Var_Pop_Fields = { + __typename?: 'validator_info_var_pop_fields'; + height?: Maybe; +}; + +/** order by var_pop() on columns of table "validator_info" */ +export type Validator_Info_Var_Pop_Order_By = { + height?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Validator_Info_Var_Samp_Fields = { + __typename?: 'validator_info_var_samp_fields'; + height?: Maybe; +}; + +/** order by var_samp() on columns of table "validator_info" */ +export type Validator_Info_Var_Samp_Order_By = { + height?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Validator_Info_Variance_Fields = { + __typename?: 'validator_info_variance_fields'; + height?: Maybe; +}; + +/** order by variance() on columns of table "validator_info" */ +export type Validator_Info_Variance_Order_By = { + height?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Validator_Max_Fields = { + __typename?: 'validator_max_fields'; + consensus_address?: Maybe; + consensus_pubkey?: Maybe; +}; + +/** aggregate min on columns */ +export type Validator_Min_Fields = { + __typename?: 'validator_min_fields'; + consensus_address?: Maybe; + consensus_pubkey?: Maybe; +}; + +/** Ordering options when selecting data from "validator". */ +export type Validator_Order_By = { + blocks_aggregate?: InputMaybe; + consensus_address?: InputMaybe; + consensus_pubkey?: InputMaybe; + double_sign_votes_aggregate?: InputMaybe; + pre_commits_aggregate?: InputMaybe; + proposal_validator_status_snapshot?: InputMaybe; + proposal_validator_status_snapshots_aggregate?: InputMaybe; + validator_commissions_aggregate?: InputMaybe; + validator_descriptions_aggregate?: InputMaybe; + validator_info?: InputMaybe; + validator_infos_aggregate?: InputMaybe; + validator_signing_infos_aggregate?: InputMaybe; + validator_statuses_aggregate?: InputMaybe; + validator_voting_powers_aggregate?: InputMaybe; +}; + +/** select columns of table "validator" */ +export enum Validator_Select_Column { + /** column name */ + ConsensusAddress = 'consensus_address', + /** column name */ + ConsensusPubkey = 'consensus_pubkey' +} + +/** columns and relationships of "validator_signing_info" */ +export type Validator_Signing_Info = { + __typename?: 'validator_signing_info'; + height: Scalars['bigint']; + index_offset: Scalars['bigint']; + jailed_until: Scalars['timestamp']; + missed_blocks_counter: Scalars['bigint']; start_height: Scalars['bigint']; tombstoned: Scalars['Boolean']; validator_address: Scalars['String']; @@ -11154,7 +11217,6 @@ export type Vesting_Account = { account: Account; address: Scalars['String']; end_time: Scalars['timestamp']; - id: Scalars['Int']; original_vesting: Scalars['_coin']; start_time?: Maybe; type: Scalars['String']; @@ -11194,17 +11256,9 @@ export type Vesting_Account_Aggregate = { /** aggregate fields of "vesting_account" */ export type Vesting_Account_Aggregate_Fields = { __typename?: 'vesting_account_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; }; @@ -11216,28 +11270,9 @@ export type Vesting_Account_Aggregate_FieldsCountArgs = { /** order by aggregate values of table "vesting_account" */ export type Vesting_Account_Aggregate_Order_By = { - avg?: InputMaybe; count?: InputMaybe; max?: InputMaybe; min?: InputMaybe; - stddev?: InputMaybe; - stddev_pop?: InputMaybe; - stddev_samp?: InputMaybe; - sum?: InputMaybe; - var_pop?: InputMaybe; - var_samp?: InputMaybe; - variance?: InputMaybe; -}; - -/** aggregate avg on columns */ -export type Vesting_Account_Avg_Fields = { - __typename?: 'vesting_account_avg_fields'; - id?: Maybe; -}; - -/** order by avg() on columns of table "vesting_account" */ -export type Vesting_Account_Avg_Order_By = { - id?: InputMaybe; }; /** Boolean expression to filter rows from the table "vesting_account". All fields are combined with a logical 'AND'. */ @@ -11248,7 +11283,6 @@ export type Vesting_Account_Bool_Exp = { account?: InputMaybe; address?: InputMaybe; end_time?: InputMaybe; - id?: InputMaybe; original_vesting?: InputMaybe<_Coin_Comparison_Exp>; start_time?: InputMaybe; type?: InputMaybe; @@ -11260,7 +11294,6 @@ export type Vesting_Account_Max_Fields = { __typename?: 'vesting_account_max_fields'; address?: Maybe; end_time?: Maybe; - id?: Maybe; start_time?: Maybe; type?: Maybe; }; @@ -11269,7 +11302,6 @@ export type Vesting_Account_Max_Fields = { export type Vesting_Account_Max_Order_By = { address?: InputMaybe; end_time?: InputMaybe; - id?: InputMaybe; start_time?: InputMaybe; type?: InputMaybe; }; @@ -11279,7 +11311,6 @@ export type Vesting_Account_Min_Fields = { __typename?: 'vesting_account_min_fields'; address?: Maybe; end_time?: Maybe; - id?: Maybe; start_time?: Maybe; type?: Maybe; }; @@ -11288,7 +11319,6 @@ export type Vesting_Account_Min_Fields = { export type Vesting_Account_Min_Order_By = { address?: InputMaybe; end_time?: InputMaybe; - id?: InputMaybe; start_time?: InputMaybe; type?: InputMaybe; }; @@ -11298,343 +11328,1150 @@ export type Vesting_Account_Order_By = { account?: InputMaybe; address?: InputMaybe; end_time?: InputMaybe; - id?: InputMaybe; original_vesting?: InputMaybe; start_time?: InputMaybe; type?: InputMaybe; vesting_periods_aggregate?: InputMaybe; }; -/** select columns of table "vesting_account" */ -export enum Vesting_Account_Select_Column { +/** select columns of table "vesting_account" */ +export enum Vesting_Account_Select_Column { + /** column name */ + Address = 'address', + /** column name */ + EndTime = 'end_time', + /** column name */ + OriginalVesting = 'original_vesting', + /** column name */ + StartTime = 'start_time', + /** column name */ + Type = 'type' +} + +/** columns and relationships of "vesting_period" */ +export type Vesting_Period = { + __typename?: 'vesting_period'; + amount: Scalars['_coin']; + length: Scalars['bigint']; + period_order: Scalars['bigint']; + /** An object relationship */ + vesting_account: Vesting_Account; + vesting_account_id: Scalars['bigint']; +}; + +/** aggregated selection of "vesting_period" */ +export type Vesting_Period_Aggregate = { + __typename?: 'vesting_period_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "vesting_period" */ +export type Vesting_Period_Aggregate_Fields = { + __typename?: 'vesting_period_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 "vesting_period" */ +export type Vesting_Period_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "vesting_period" */ +export type Vesting_Period_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Vesting_Period_Avg_Fields = { + __typename?: 'vesting_period_avg_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +/** order by avg() on columns of table "vesting_period" */ +export type Vesting_Period_Avg_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "vesting_period". All fields are combined with a logical 'AND'. */ +export type Vesting_Period_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + amount?: InputMaybe<_Coin_Comparison_Exp>; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Vesting_Period_Max_Fields = { + __typename?: 'vesting_period_max_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +/** order by max() on columns of table "vesting_period" */ +export type Vesting_Period_Max_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Vesting_Period_Min_Fields = { + __typename?: 'vesting_period_min_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +/** order by min() on columns of table "vesting_period" */ +export type Vesting_Period_Min_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +/** Ordering options when selecting data from "vesting_period". */ +export type Vesting_Period_Order_By = { + amount?: InputMaybe; + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +/** select columns of table "vesting_period" */ +export enum Vesting_Period_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + Length = 'length', + /** column name */ + PeriodOrder = 'period_order', + /** column name */ + VestingAccountId = 'vesting_account_id' +} + +/** aggregate stddev on columns */ +export type Vesting_Period_Stddev_Fields = { + __typename?: 'vesting_period_stddev_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +/** order by stddev() on columns of table "vesting_period" */ +export type Vesting_Period_Stddev_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Vesting_Period_Stddev_Pop_Fields = { + __typename?: 'vesting_period_stddev_pop_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +/** order by stddev_pop() on columns of table "vesting_period" */ +export type Vesting_Period_Stddev_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Vesting_Period_Stddev_Samp_Fields = { + __typename?: 'vesting_period_stddev_samp_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +/** order by stddev_samp() on columns of table "vesting_period" */ +export type Vesting_Period_Stddev_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Vesting_Period_Sum_Fields = { + __typename?: 'vesting_period_sum_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +/** order by sum() on columns of table "vesting_period" */ +export type Vesting_Period_Sum_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Vesting_Period_Var_Pop_Fields = { + __typename?: 'vesting_period_var_pop_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +/** order by var_pop() on columns of table "vesting_period" */ +export type Vesting_Period_Var_Pop_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Vesting_Period_Var_Samp_Fields = { + __typename?: 'vesting_period_var_samp_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +/** order by var_samp() on columns of table "vesting_period" */ +export type Vesting_Period_Var_Samp_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Vesting_Period_Variance_Fields = { + __typename?: 'vesting_period_variance_fields'; + length?: Maybe; + period_order?: Maybe; + vesting_account_id?: Maybe; +}; + +/** order by variance() on columns of table "vesting_period" */ +export type Vesting_Period_Variance_Order_By = { + length?: InputMaybe; + period_order?: InputMaybe; + vesting_account_id?: InputMaybe; +}; + +/** columns and relationships of "wasm_code" */ +export type Wasm_Code = { + __typename?: 'wasm_code'; + byte_code: Scalars['bytea']; + code_id: Scalars['bigint']; + height: Scalars['bigint']; + instantiate_permission?: Maybe; + sender?: Maybe; + /** An array relationship */ + wasm_contracts: Array; + /** An aggregate relationship */ + wasm_contracts_aggregate: Wasm_Contract_Aggregate; +}; + + +/** columns and relationships of "wasm_code" */ +export type Wasm_CodeWasm_ContractsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "wasm_code" */ +export type Wasm_CodeWasm_Contracts_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** aggregated selection of "wasm_code" */ +export type Wasm_Code_Aggregate = { + __typename?: 'wasm_code_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "wasm_code" */ +export type Wasm_Code_Aggregate_Fields = { + __typename?: 'wasm_code_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 "wasm_code" */ +export type Wasm_Code_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Code_Avg_Fields = { + __typename?: 'wasm_code_avg_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** Boolean expression to filter rows from the table "wasm_code". All fields are combined with a logical 'AND'. */ +export type Wasm_Code_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + byte_code?: InputMaybe; + code_id?: InputMaybe; + height?: InputMaybe; + instantiate_permission?: InputMaybe; + sender?: InputMaybe; + wasm_contracts?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Code_Max_Fields = { + __typename?: 'wasm_code_max_fields'; + code_id?: Maybe; + height?: Maybe; + sender?: Maybe; +}; + +/** aggregate min on columns */ +export type Wasm_Code_Min_Fields = { + __typename?: 'wasm_code_min_fields'; + code_id?: Maybe; + height?: Maybe; + sender?: Maybe; +}; + +/** Ordering options when selecting data from "wasm_code". */ +export type Wasm_Code_Order_By = { + byte_code?: InputMaybe; + code_id?: InputMaybe; + height?: InputMaybe; + instantiate_permission?: InputMaybe; + sender?: InputMaybe; + wasm_contracts_aggregate?: InputMaybe; +}; + +/** select columns of table "wasm_code" */ +export enum Wasm_Code_Select_Column { + /** column name */ + ByteCode = 'byte_code', + /** column name */ + CodeId = 'code_id', + /** column name */ + Height = 'height', + /** column name */ + InstantiatePermission = 'instantiate_permission', + /** column name */ + Sender = 'sender' +} + +/** aggregate stddev on columns */ +export type Wasm_Code_Stddev_Fields = { + __typename?: 'wasm_code_stddev_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate stddev_pop on columns */ +export type Wasm_Code_Stddev_Pop_Fields = { + __typename?: 'wasm_code_stddev_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate stddev_samp on columns */ +export type Wasm_Code_Stddev_Samp_Fields = { + __typename?: 'wasm_code_stddev_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate sum on columns */ +export type Wasm_Code_Sum_Fields = { + __typename?: 'wasm_code_sum_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate var_pop on columns */ +export type Wasm_Code_Var_Pop_Fields = { + __typename?: 'wasm_code_var_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate var_samp on columns */ +export type Wasm_Code_Var_Samp_Fields = { + __typename?: 'wasm_code_var_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** aggregate variance on columns */ +export type Wasm_Code_Variance_Fields = { + __typename?: 'wasm_code_variance_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** columns and relationships of "wasm_contract" */ +export type Wasm_Contract = { + __typename?: 'wasm_contract'; + /** An object relationship */ + account: Account; + admin?: Maybe; + code_id: Scalars['bigint']; + contract_address: Scalars['String']; + contract_info_extension?: Maybe; + contract_states: Scalars['jsonb']; + creator: Scalars['String']; + data?: Maybe; + funds: Scalars['_coin']; + height: Scalars['bigint']; + instantiated_at: Scalars['timestamp']; + label?: Maybe; + raw_contract_message: Scalars['jsonb']; + sender?: Maybe; + /** An object relationship */ + wasm_code: Wasm_Code; + /** An array relationship */ + wasm_execute_contracts: Array; + /** An aggregate relationship */ + wasm_execute_contracts_aggregate: Wasm_Execute_Contract_Aggregate; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractContract_StatesArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractRaw_Contract_MessageArgs = { + path?: InputMaybe; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractWasm_Execute_ContractsArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + + +/** columns and relationships of "wasm_contract" */ +export type Wasm_ContractWasm_Execute_Contracts_AggregateArgs = { + distinct_on?: InputMaybe>; + limit?: InputMaybe; + offset?: InputMaybe; + order_by?: InputMaybe>; + where?: InputMaybe; +}; + +/** aggregated selection of "wasm_contract" */ +export type Wasm_Contract_Aggregate = { + __typename?: 'wasm_contract_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "wasm_contract" */ +export type Wasm_Contract_Aggregate_Fields = { + __typename?: 'wasm_contract_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 "wasm_contract" */ +export type Wasm_Contract_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "wasm_contract" */ +export type Wasm_Contract_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Contract_Avg_Fields = { + __typename?: 'wasm_contract_avg_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by avg() on columns of table "wasm_contract" */ +export type Wasm_Contract_Avg_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "wasm_contract". All fields are combined with a logical 'AND'. */ +export type Wasm_Contract_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + account?: InputMaybe; + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + contract_states?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + funds?: InputMaybe<_Coin_Comparison_Exp>; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_code?: InputMaybe; + wasm_execute_contracts?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Contract_Max_Fields = { + __typename?: 'wasm_contract_max_fields'; + admin?: Maybe; + code_id?: Maybe; + contract_address?: Maybe; + contract_info_extension?: Maybe; + creator?: Maybe; + data?: Maybe; + height?: Maybe; + instantiated_at?: Maybe; + label?: Maybe; + sender?: Maybe; +}; + +/** order by max() on columns of table "wasm_contract" */ +export type Wasm_Contract_Max_Order_By = { + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + sender?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Wasm_Contract_Min_Fields = { + __typename?: 'wasm_contract_min_fields'; + admin?: Maybe; + code_id?: Maybe; + contract_address?: Maybe; + contract_info_extension?: Maybe; + creator?: Maybe; + data?: Maybe; + height?: Maybe; + instantiated_at?: Maybe; + label?: Maybe; + sender?: Maybe; +}; + +/** order by min() on columns of table "wasm_contract" */ +export type Wasm_Contract_Min_Order_By = { + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + sender?: InputMaybe; +}; + +/** Ordering options when selecting data from "wasm_contract". */ +export type Wasm_Contract_Order_By = { + account?: InputMaybe; + admin?: InputMaybe; + code_id?: InputMaybe; + contract_address?: InputMaybe; + contract_info_extension?: InputMaybe; + contract_states?: InputMaybe; + creator?: InputMaybe; + data?: InputMaybe; + funds?: InputMaybe; + height?: InputMaybe; + instantiated_at?: InputMaybe; + label?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_code?: InputMaybe; + wasm_execute_contracts_aggregate?: InputMaybe; +}; + +/** select columns of table "wasm_contract" */ +export enum Wasm_Contract_Select_Column { + /** column name */ + Admin = 'admin', + /** column name */ + CodeId = 'code_id', + /** column name */ + ContractAddress = 'contract_address', + /** column name */ + ContractInfoExtension = 'contract_info_extension', + /** column name */ + ContractStates = 'contract_states', + /** column name */ + Creator = 'creator', + /** column name */ + Data = 'data', + /** column name */ + Funds = 'funds', + /** column name */ + Height = 'height', + /** column name */ + InstantiatedAt = 'instantiated_at', + /** column name */ + Label = 'label', + /** column name */ + RawContractMessage = 'raw_contract_message', + /** column name */ + Sender = 'sender' +} + +/** aggregate stddev on columns */ +export type Wasm_Contract_Stddev_Fields = { + __typename?: 'wasm_contract_stddev_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by stddev() on columns of table "wasm_contract" */ +export type Wasm_Contract_Stddev_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate stddev_pop on columns */ +export type Wasm_Contract_Stddev_Pop_Fields = { + __typename?: 'wasm_contract_stddev_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by stddev_pop() on columns of table "wasm_contract" */ +export type Wasm_Contract_Stddev_Pop_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate stddev_samp on columns */ +export type Wasm_Contract_Stddev_Samp_Fields = { + __typename?: 'wasm_contract_stddev_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by stddev_samp() on columns of table "wasm_contract" */ +export type Wasm_Contract_Stddev_Samp_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate sum on columns */ +export type Wasm_Contract_Sum_Fields = { + __typename?: 'wasm_contract_sum_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by sum() on columns of table "wasm_contract" */ +export type Wasm_Contract_Sum_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate var_pop on columns */ +export type Wasm_Contract_Var_Pop_Fields = { + __typename?: 'wasm_contract_var_pop_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by var_pop() on columns of table "wasm_contract" */ +export type Wasm_Contract_Var_Pop_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate var_samp on columns */ +export type Wasm_Contract_Var_Samp_Fields = { + __typename?: 'wasm_contract_var_samp_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by var_samp() on columns of table "wasm_contract" */ +export type Wasm_Contract_Var_Samp_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** aggregate variance on columns */ +export type Wasm_Contract_Variance_Fields = { + __typename?: 'wasm_contract_variance_fields'; + code_id?: Maybe; + height?: Maybe; +}; + +/** order by variance() on columns of table "wasm_contract" */ +export type Wasm_Contract_Variance_Order_By = { + code_id?: InputMaybe; + height?: InputMaybe; +}; + +/** columns and relationships of "wasm_execute_contract" */ +export type Wasm_Execute_Contract = { + __typename?: 'wasm_execute_contract'; + contract_address: Scalars['String']; + data?: Maybe; + executed_at: Scalars['timestamp']; + funds: Scalars['_coin']; + height: Scalars['bigint']; + raw_contract_message: Scalars['jsonb']; + sender: Scalars['String']; + /** An object relationship */ + wasm_contract: Wasm_Contract; +}; + + +/** columns and relationships of "wasm_execute_contract" */ +export type Wasm_Execute_ContractRaw_Contract_MessageArgs = { + path?: InputMaybe; +}; + +/** aggregated selection of "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate = { + __typename?: 'wasm_execute_contract_aggregate'; + aggregate?: Maybe; + nodes: Array; +}; + +/** aggregate fields of "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate_Fields = { + __typename?: 'wasm_execute_contract_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 "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; + distinct?: InputMaybe; +}; + +/** order by aggregate values of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Aggregate_Order_By = { + avg?: InputMaybe; + count?: InputMaybe; + max?: InputMaybe; + min?: InputMaybe; + stddev?: InputMaybe; + stddev_pop?: InputMaybe; + stddev_samp?: InputMaybe; + sum?: InputMaybe; + var_pop?: InputMaybe; + var_samp?: InputMaybe; + variance?: InputMaybe; +}; + +/** aggregate avg on columns */ +export type Wasm_Execute_Contract_Avg_Fields = { + __typename?: 'wasm_execute_contract_avg_fields'; + height?: Maybe; +}; + +/** order by avg() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Avg_Order_By = { + height?: InputMaybe; +}; + +/** Boolean expression to filter rows from the table "wasm_execute_contract". All fields are combined with a logical 'AND'. */ +export type Wasm_Execute_Contract_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + funds?: InputMaybe<_Coin_Comparison_Exp>; + height?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_contract?: InputMaybe; +}; + +/** aggregate max on columns */ +export type Wasm_Execute_Contract_Max_Fields = { + __typename?: 'wasm_execute_contract_max_fields'; + contract_address?: Maybe; + data?: Maybe; + executed_at?: Maybe; + height?: Maybe; + sender?: Maybe; +}; + +/** order by max() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Max_Order_By = { + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + height?: InputMaybe; + sender?: InputMaybe; +}; + +/** aggregate min on columns */ +export type Wasm_Execute_Contract_Min_Fields = { + __typename?: 'wasm_execute_contract_min_fields'; + contract_address?: Maybe; + data?: Maybe; + executed_at?: Maybe; + height?: Maybe; + sender?: Maybe; +}; + +/** order by min() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Min_Order_By = { + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + height?: InputMaybe; + sender?: InputMaybe; +}; + +/** Ordering options when selecting data from "wasm_execute_contract". */ +export type Wasm_Execute_Contract_Order_By = { + contract_address?: InputMaybe; + data?: InputMaybe; + executed_at?: InputMaybe; + funds?: InputMaybe; + height?: InputMaybe; + raw_contract_message?: InputMaybe; + sender?: InputMaybe; + wasm_contract?: InputMaybe; +}; + +/** select columns of table "wasm_execute_contract" */ +export enum Wasm_Execute_Contract_Select_Column { /** column name */ - Address = 'address', + ContractAddress = 'contract_address', /** column name */ - EndTime = 'end_time', + Data = 'data', /** column name */ - Id = 'id', + ExecutedAt = 'executed_at', /** column name */ - OriginalVesting = 'original_vesting', + Funds = 'funds', /** column name */ - StartTime = 'start_time', + Height = 'height', /** column name */ - Type = 'type' + RawContractMessage = 'raw_contract_message', + /** column name */ + Sender = 'sender' } /** aggregate stddev on columns */ -export type Vesting_Account_Stddev_Fields = { - __typename?: 'vesting_account_stddev_fields'; - id?: Maybe; +export type Wasm_Execute_Contract_Stddev_Fields = { + __typename?: 'wasm_execute_contract_stddev_fields'; + height?: Maybe; }; -/** order by stddev() on columns of table "vesting_account" */ -export type Vesting_Account_Stddev_Order_By = { - id?: InputMaybe; +/** order by stddev() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Stddev_Order_By = { + height?: InputMaybe; }; /** aggregate stddev_pop on columns */ -export type Vesting_Account_Stddev_Pop_Fields = { - __typename?: 'vesting_account_stddev_pop_fields'; - id?: Maybe; +export type Wasm_Execute_Contract_Stddev_Pop_Fields = { + __typename?: 'wasm_execute_contract_stddev_pop_fields'; + height?: Maybe; }; -/** order by stddev_pop() on columns of table "vesting_account" */ -export type Vesting_Account_Stddev_Pop_Order_By = { - id?: InputMaybe; +/** order by stddev_pop() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Stddev_Pop_Order_By = { + height?: InputMaybe; }; /** aggregate stddev_samp on columns */ -export type Vesting_Account_Stddev_Samp_Fields = { - __typename?: 'vesting_account_stddev_samp_fields'; - id?: Maybe; +export type Wasm_Execute_Contract_Stddev_Samp_Fields = { + __typename?: 'wasm_execute_contract_stddev_samp_fields'; + height?: Maybe; }; -/** order by stddev_samp() on columns of table "vesting_account" */ -export type Vesting_Account_Stddev_Samp_Order_By = { - id?: InputMaybe; +/** order by stddev_samp() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Stddev_Samp_Order_By = { + height?: InputMaybe; }; /** aggregate sum on columns */ -export type Vesting_Account_Sum_Fields = { - __typename?: 'vesting_account_sum_fields'; - id?: Maybe; +export type Wasm_Execute_Contract_Sum_Fields = { + __typename?: 'wasm_execute_contract_sum_fields'; + height?: Maybe; }; -/** order by sum() on columns of table "vesting_account" */ -export type Vesting_Account_Sum_Order_By = { - id?: InputMaybe; +/** order by sum() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Sum_Order_By = { + height?: InputMaybe; }; /** aggregate var_pop on columns */ -export type Vesting_Account_Var_Pop_Fields = { - __typename?: 'vesting_account_var_pop_fields'; - id?: Maybe; +export type Wasm_Execute_Contract_Var_Pop_Fields = { + __typename?: 'wasm_execute_contract_var_pop_fields'; + height?: Maybe; }; -/** order by var_pop() on columns of table "vesting_account" */ -export type Vesting_Account_Var_Pop_Order_By = { - id?: InputMaybe; +/** order by var_pop() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Var_Pop_Order_By = { + height?: InputMaybe; }; /** aggregate var_samp on columns */ -export type Vesting_Account_Var_Samp_Fields = { - __typename?: 'vesting_account_var_samp_fields'; - id?: Maybe; +export type Wasm_Execute_Contract_Var_Samp_Fields = { + __typename?: 'wasm_execute_contract_var_samp_fields'; + height?: Maybe; }; -/** order by var_samp() on columns of table "vesting_account" */ -export type Vesting_Account_Var_Samp_Order_By = { - id?: InputMaybe; +/** order by var_samp() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Var_Samp_Order_By = { + height?: InputMaybe; }; /** aggregate variance on columns */ -export type Vesting_Account_Variance_Fields = { - __typename?: 'vesting_account_variance_fields'; - id?: Maybe; +export type Wasm_Execute_Contract_Variance_Fields = { + __typename?: 'wasm_execute_contract_variance_fields'; + height?: Maybe; }; -/** order by variance() on columns of table "vesting_account" */ -export type Vesting_Account_Variance_Order_By = { - id?: InputMaybe; +/** order by variance() on columns of table "wasm_execute_contract" */ +export type Wasm_Execute_Contract_Variance_Order_By = { + height?: InputMaybe; }; -/** columns and relationships of "vesting_period" */ -export type Vesting_Period = { - __typename?: 'vesting_period'; - amount: Scalars['_coin']; - length: Scalars['bigint']; - period_order: Scalars['bigint']; - /** An object relationship */ - vesting_account: Vesting_Account; - vesting_account_id: Scalars['bigint']; +/** columns and relationships of "wasm_params" */ +export type Wasm_Params = { + __typename?: 'wasm_params'; + code_upload_access: Scalars['access_config']; + height: Scalars['bigint']; + instantiate_default_permission: Scalars['Int']; + one_row_id: Scalars['Boolean']; }; -/** aggregated selection of "vesting_period" */ -export type Vesting_Period_Aggregate = { - __typename?: 'vesting_period_aggregate'; - aggregate?: Maybe; - nodes: Array; +/** aggregated selection of "wasm_params" */ +export type Wasm_Params_Aggregate = { + __typename?: 'wasm_params_aggregate'; + aggregate?: Maybe; + nodes: Array; }; -/** aggregate fields of "vesting_period" */ -export type Vesting_Period_Aggregate_Fields = { - __typename?: 'vesting_period_aggregate_fields'; - avg?: Maybe; +/** aggregate fields of "wasm_params" */ +export type Wasm_Params_Aggregate_Fields = { + __typename?: 'wasm_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; + 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 "vesting_period" */ -export type Vesting_Period_Aggregate_FieldsCountArgs = { - columns?: InputMaybe>; +/** aggregate fields of "wasm_params" */ +export type Wasm_Params_Aggregate_FieldsCountArgs = { + columns?: InputMaybe>; distinct?: InputMaybe; }; -/** order by aggregate values of table "vesting_period" */ -export type Vesting_Period_Aggregate_Order_By = { - avg?: InputMaybe; - count?: InputMaybe; - max?: InputMaybe; - min?: InputMaybe; - stddev?: InputMaybe; - stddev_pop?: InputMaybe; - stddev_samp?: InputMaybe; - sum?: InputMaybe; - var_pop?: InputMaybe; - var_samp?: InputMaybe; - variance?: InputMaybe; -}; - /** aggregate avg on columns */ -export type Vesting_Period_Avg_Fields = { - __typename?: 'vesting_period_avg_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; -}; - -/** order by avg() on columns of table "vesting_period" */ -export type Vesting_Period_Avg_Order_By = { - length?: InputMaybe; - period_order?: InputMaybe; - vesting_account_id?: InputMaybe; +export type Wasm_Params_Avg_Fields = { + __typename?: 'wasm_params_avg_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; }; -/** Boolean expression to filter rows from the table "vesting_period". All fields are combined with a logical 'AND'. */ -export type Vesting_Period_Bool_Exp = { - _and?: InputMaybe>; - _not?: InputMaybe; - _or?: InputMaybe>; - amount?: InputMaybe<_Coin_Comparison_Exp>; - length?: InputMaybe; - period_order?: InputMaybe; - vesting_account?: InputMaybe; - vesting_account_id?: InputMaybe; +/** Boolean expression to filter rows from the table "wasm_params". All fields are combined with a logical 'AND'. */ +export type Wasm_Params_Bool_Exp = { + _and?: InputMaybe>; + _not?: InputMaybe; + _or?: InputMaybe>; + code_upload_access?: InputMaybe; + height?: InputMaybe; + instantiate_default_permission?: InputMaybe; + one_row_id?: InputMaybe; }; /** aggregate max on columns */ -export type Vesting_Period_Max_Fields = { - __typename?: 'vesting_period_max_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; -}; - -/** order by max() on columns of table "vesting_period" */ -export type Vesting_Period_Max_Order_By = { - length?: InputMaybe; - period_order?: InputMaybe; - vesting_account_id?: InputMaybe; +export type Wasm_Params_Max_Fields = { + __typename?: 'wasm_params_max_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; }; /** aggregate min on columns */ -export type Vesting_Period_Min_Fields = { - __typename?: 'vesting_period_min_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; -}; - -/** order by min() on columns of table "vesting_period" */ -export type Vesting_Period_Min_Order_By = { - length?: InputMaybe; - period_order?: InputMaybe; - vesting_account_id?: InputMaybe; +export type Wasm_Params_Min_Fields = { + __typename?: 'wasm_params_min_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; }; -/** Ordering options when selecting data from "vesting_period". */ -export type Vesting_Period_Order_By = { - amount?: InputMaybe; - length?: InputMaybe; - period_order?: InputMaybe; - vesting_account?: InputMaybe; - vesting_account_id?: InputMaybe; +/** Ordering options when selecting data from "wasm_params". */ +export type Wasm_Params_Order_By = { + code_upload_access?: InputMaybe; + height?: InputMaybe; + instantiate_default_permission?: InputMaybe; + one_row_id?: InputMaybe; }; -/** select columns of table "vesting_period" */ -export enum Vesting_Period_Select_Column { +/** select columns of table "wasm_params" */ +export enum Wasm_Params_Select_Column { /** column name */ - Amount = 'amount', + CodeUploadAccess = 'code_upload_access', /** column name */ - Length = 'length', + Height = 'height', /** column name */ - PeriodOrder = 'period_order', + InstantiateDefaultPermission = 'instantiate_default_permission', /** column name */ - VestingAccountId = 'vesting_account_id' + OneRowId = 'one_row_id' } /** aggregate stddev on columns */ -export type Vesting_Period_Stddev_Fields = { - __typename?: 'vesting_period_stddev_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; -}; - -/** order by stddev() on columns of table "vesting_period" */ -export type Vesting_Period_Stddev_Order_By = { - length?: InputMaybe; - period_order?: InputMaybe; - vesting_account_id?: InputMaybe; +export type Wasm_Params_Stddev_Fields = { + __typename?: 'wasm_params_stddev_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; }; /** aggregate stddev_pop on columns */ -export type Vesting_Period_Stddev_Pop_Fields = { - __typename?: 'vesting_period_stddev_pop_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; -}; - -/** order by stddev_pop() on columns of table "vesting_period" */ -export type Vesting_Period_Stddev_Pop_Order_By = { - length?: InputMaybe; - period_order?: InputMaybe; - vesting_account_id?: InputMaybe; +export type Wasm_Params_Stddev_Pop_Fields = { + __typename?: 'wasm_params_stddev_pop_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; }; /** aggregate stddev_samp on columns */ -export type Vesting_Period_Stddev_Samp_Fields = { - __typename?: 'vesting_period_stddev_samp_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; -}; - -/** order by stddev_samp() on columns of table "vesting_period" */ -export type Vesting_Period_Stddev_Samp_Order_By = { - length?: InputMaybe; - period_order?: InputMaybe; - vesting_account_id?: InputMaybe; +export type Wasm_Params_Stddev_Samp_Fields = { + __typename?: 'wasm_params_stddev_samp_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; }; /** aggregate sum on columns */ -export type Vesting_Period_Sum_Fields = { - __typename?: 'vesting_period_sum_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; -}; - -/** order by sum() on columns of table "vesting_period" */ -export type Vesting_Period_Sum_Order_By = { - length?: InputMaybe; - period_order?: InputMaybe; - vesting_account_id?: InputMaybe; +export type Wasm_Params_Sum_Fields = { + __typename?: 'wasm_params_sum_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; }; /** aggregate var_pop on columns */ -export type Vesting_Period_Var_Pop_Fields = { - __typename?: 'vesting_period_var_pop_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; -}; - -/** order by var_pop() on columns of table "vesting_period" */ -export type Vesting_Period_Var_Pop_Order_By = { - length?: InputMaybe; - period_order?: InputMaybe; - vesting_account_id?: InputMaybe; +export type Wasm_Params_Var_Pop_Fields = { + __typename?: 'wasm_params_var_pop_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; }; /** aggregate var_samp on columns */ -export type Vesting_Period_Var_Samp_Fields = { - __typename?: 'vesting_period_var_samp_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; -}; - -/** order by var_samp() on columns of table "vesting_period" */ -export type Vesting_Period_Var_Samp_Order_By = { - length?: InputMaybe; - period_order?: InputMaybe; - vesting_account_id?: InputMaybe; +export type Wasm_Params_Var_Samp_Fields = { + __typename?: 'wasm_params_var_samp_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; }; /** aggregate variance on columns */ -export type Vesting_Period_Variance_Fields = { - __typename?: 'vesting_period_variance_fields'; - length?: Maybe; - period_order?: Maybe; - vesting_account_id?: Maybe; -}; - -/** order by variance() on columns of table "vesting_period" */ -export type Vesting_Period_Variance_Order_By = { - length?: InputMaybe; - period_order?: InputMaybe; - vesting_account_id?: InputMaybe; +export type Wasm_Params_Variance_Fields = { + __typename?: 'wasm_params_variance_fields'; + height?: Maybe; + instantiate_default_permission?: Maybe; }; export type AccountCommissionQueryVariables = Exact<{ @@ -11787,14 +12624,14 @@ export type OnlineVotingPowerQuery = { activeTotal: { __typename?: 'validator_st export type ParamsQueryVariables = Exact<{ [key: string]: never; }>; -export type ParamsQuery = { stakingParams: Array<{ __typename?: 'staking_params', params: any }>, slashingParams: Array<{ __typename?: 'slashing_params', params: any }>, mintParams: Array<{ __typename?: 'mint_params', params: any }>, distributionParams: Array<{ __typename?: 'distribution_params', params: any }>, govParams: Array<{ __typename?: 'gov_params', depositParams: any, tallyParams: any, votingParams: any }> }; +export type ParamsQuery = { stakingParams: Array<{ __typename?: 'staking_params', params: any }>, slashingParams: Array<{ __typename?: 'slashing_params', params: any }>, mintParams: Array<{ __typename?: 'mint_params', params: any }>, distributionParams: Array<{ __typename?: 'distribution_params', params: any }>, govParams: Array<{ __typename?: 'gov_params', params: any, height: any }> }; export type ProposalDetailsQueryVariables = Exact<{ proposalId?: InputMaybe; }>; -export type ProposalDetailsQuery = { proposal: Array<{ __typename?: 'proposal', title: string, description: string, status?: string | null, content: any, proposer: string, proposalId: number, submitTime: any, proposalType: string, depositEndTime?: any | null, votingStartTime?: any | null, votingEndTime?: any | null }> }; +export type ProposalDetailsQuery = { proposal: Array<{ __typename?: 'proposal', title: string, description: string, status?: string | null, content: any, metadata?: string | null, summary?: string | null, proposer: string, proposalId: number, submitTime: any, depositEndTime?: any | null, votingStartTime?: any | null, votingEndTime?: any | null }> }; export type ProposalDetailsTallyQueryVariables = Exact<{ proposalId?: InputMaybe; @@ -11830,7 +12667,7 @@ export type TokenPriceListenerSubscriptionVariables = Exact<{ }>; -export type TokenPriceListenerSubscription = { tokenPrice: Array<{ __typename?: 'token_price', id: number, price: any, timestamp: any, marketCap: any, unitName: string }> }; +export type TokenPriceListenerSubscription = { tokenPrice: Array<{ __typename?: 'token_price', price: any, timestamp: any, marketCap: any, unitName: string }> }; export type TokenPriceHistoryQueryVariables = Exact<{ denom?: InputMaybe; @@ -11924,11 +12761,6 @@ export type ValidatorsQueryVariables = Exact<{ [key: string]: never; }>; export type ValidatorsQuery = { stakingPool: Array<{ __typename?: 'staking_pool', bondedTokens: string }>, validator: Array<{ __typename?: 'validator', validatorStatuses: Array<{ __typename?: 'validator_status', status: number, jailed: boolean, height: any }>, validatorSigningInfos: Array<{ __typename?: 'validator_signing_info', tombstoned: boolean, missedBlocksCounter: any }>, validatorInfo?: { __typename?: 'validator_info', operatorAddress: string, selfDelegateAddress?: string | null } | null, validatorVotingPowers: Array<{ __typename?: 'validator_voting_power', votingPower: any }>, validatorCommissions: Array<{ __typename?: 'validator_commission', commission: any }> }>, slashingParams: Array<{ __typename?: 'slashing_params', params: any }> }; -export type ValidatorsAddressListQueryVariables = Exact<{ [key: string]: never; }>; - - -export type ValidatorsAddressListQuery = { validator: Array<{ __typename?: 'validator', validatorInfo?: { __typename?: 'validator_info', operatorAddress: string, selfDelegateAddress?: string | null, consensusAddress: string } | null, validatorDescriptions: Array<{ __typename?: 'validator_description', moniker?: string | null, identity?: string | null, avatarUrl?: string | null }> }> }; - export type ValidatorAddressesQueryVariables = Exact<{ [key: string]: never; }>; @@ -12789,9 +13621,8 @@ export const ParamsDocument = gql` params } govParams: gov_params(limit: 1, order_by: {height: desc}) { - depositParams: deposit_params - tallyParams: tally_params - votingParams: voting_params + params + height } } `; @@ -12832,7 +13663,8 @@ export const ProposalDetailsDocument = gql` content proposalId: id submitTime: submit_time - proposalType: proposal_type + metadata + summary depositEndTime: deposit_end_time votingStartTime: voting_start_time votingEndTime: voting_end_time @@ -12883,7 +13715,7 @@ export const ProposalDetailsTallyDocument = gql` bondedTokens: bonded_tokens } quorum: gov_params(limit: 1, order_by: {height: desc}) { - tallyParams: tally_params + tallyParams: params } } `; @@ -13052,7 +13884,6 @@ export type ProposalsQueryResult = Apollo.QueryResult; + maxDepositPeriod: number; + }; + + public tallyParams: { + quorum: string; + threshold: string; + vetoThreshold: string; + }; + + public votingParams: { + votingPeriod: number; + }; + + constructor(payload: object) { + this.depositParams = R.pathOr( + { + minDeposit: [], + maxDepositPeriod: 0, + }, + ['depositParams'], + payload + ); + this.tallyParams = R.pathOr( + { + quorum: '', + threshold: '', + vetoThreshold: '', + }, + ['tallyParams'], + payload + ); + this.votingParams = R.pathOr( + { + votingPeriod: 0, + }, + ['votingParams'], + payload + ); + } + + static fromJson(data: object): GovParams { + return { + depositParams: { + minDeposit: R.pathOr( + [], + ['params', 'min_deposit'], + data + ).map((x) => ({ + denom: x.denom, + amount: String(x.amount), + })), + maxDepositPeriod: R.pathOr(0, ['params', 'max_deposit_period'], data), + }, + tallyParams: { + quorum: R.pathOr('0', ['params', 'quorum'], data), + threshold: R.pathOr('0', ['params', 'threshold'], data), + vetoThreshold: R.pathOr('0', ['params', 'veto_threshold'], data), + }, + votingParams: { + votingPeriod: R.pathOr(0, ['params', 'voting_period'], data), + }, + }; + } +} + +export default GovParams; diff --git a/apps/web-osmosis/src/models/mint_params/index.ts b/apps/web-osmosis/src/models/mint_params/index.ts new file mode 100644 index 0000000000..bd76d53dab --- /dev/null +++ b/apps/web-osmosis/src/models/mint_params/index.ts @@ -0,0 +1,45 @@ +import * as R from 'ramda'; + +class MintParams { + public mintDenom: string; + + public epochIdentifier: string; + + public reductionFactor: string; + + public genesisEpochProvisions: string; + + public reductionPeriodInEpochs: number; + + public mintingRewardsDistributionStartEpoch: number; + + constructor(payload: object) { + this.epochIdentifier = R.pathOr('', ['epoch_identifier'], payload); + this.reductionFactor = R.pathOr('', ['reduction_factor'], payload); + this.genesisEpochProvisions = R.pathOr('', ['genesis_epoch_provisions'], payload); + this.reductionPeriodInEpochs = R.pathOr(0, ['reduction_period_in_epochs'], payload); + this.mintingRewardsDistributionStartEpoch = R.pathOr( + 0, + ['minting_rewards_distribution_start_epoch'], + payload + ); + this.mintDenom = R.pathOr('', ['mintDenom'], payload); + } + + static fromJson(data: object): MintParams { + return { + epochIdentifier: R.pathOr('', ['epoch_identifier'], data), + reductionFactor: R.pathOr('', ['reduction_factor'], data), + genesisEpochProvisions: R.pathOr('', ['genesis_epoch_provisions'], data), + reductionPeriodInEpochs: R.pathOr(0, ['reduction_period_in_epochs'], data), + mintingRewardsDistributionStartEpoch: R.pathOr( + 0, + ['minting_rewards_distribution_start_epoch'], + data + ), + mintDenom: R.pathOr('0', ['mint_denom'], data), + }; + } +} + +export default MintParams; diff --git a/apps/web-osmosis/src/screens/params/hooks.ts b/apps/web-osmosis/src/screens/params/hooks.ts new file mode 100644 index 0000000000..8a24910c7e --- /dev/null +++ b/apps/web-osmosis/src/screens/params/hooks.ts @@ -0,0 +1,166 @@ +import numeral from 'numeral'; +import * as R from 'ramda'; +import { useCallback, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { ParamsQuery, useParamsQuery } from '@/graphql/types/general_types'; +import { DistributionParams, GovParams, MintParams, SlashingParams, StakingParams } from '@/models'; +import type { ParamsState } from '@/screens/params/types'; +import { formatToken } from '@/utils/format_token'; + +const { primaryTokenUnit } = chainConfig(); + +const initialState: ParamsState = { + loading: true, + exists: true, + staking: null, + slashing: null, + minting: null, + distribution: null, + gov: null, +}; + +// ================================ +// staking +// ================================ +const formatStaking = (data: ParamsQuery) => { + if (data.stakingParams.length) { + const stakingParamsRaw = StakingParams.fromJson(data?.stakingParams?.[0]?.params ?? {}); + return { + bondDenom: stakingParamsRaw.bondDenom, + unbondingTime: stakingParamsRaw.unbondingTime, + maxEntries: stakingParamsRaw.maxEntries, + historicalEntries: stakingParamsRaw.historicalEntries, + maxValidators: stakingParamsRaw.maxValidators, + }; + } + + return null; +}; + +// ================================ +// slashing +// ================================ +const formatSlashing = (data: ParamsQuery) => { + if (data.slashingParams.length) { + const slashingParamsRaw = SlashingParams.fromJson(data?.slashingParams?.[0]?.params ?? {}); + return { + downtimeJailDuration: slashingParamsRaw.downtimeJailDuration, + minSignedPerWindow: slashingParamsRaw.minSignedPerWindow, + signedBlockWindow: slashingParamsRaw.signedBlockWindow, + slashFractionDoubleSign: slashingParamsRaw.slashFractionDoubleSign, + slashFractionDowntime: slashingParamsRaw.slashFractionDowntime, + }; + } + return null; +}; + +// ================================ +// minting +// ================================ +const formatMint = (data: ParamsQuery) => { + if (data.mintParams.length) { + const mintParamsRaw = MintParams.fromJson(data?.mintParams?.[0]?.params ?? {}); + + return { + epochIdentifier: mintParamsRaw.epochIdentifier, + reductionFactor: mintParamsRaw.reductionFactor, + genesisEpochProvisions: mintParamsRaw.genesisEpochProvisions, + reductionPeriodInEpochs: mintParamsRaw.reductionPeriodInEpochs, + mintingRewardsDistributionStartEpoch: mintParamsRaw.mintingRewardsDistributionStartEpoch, + mintDenom: mintParamsRaw.mintDenom, + }; + } + + return null; +}; + +// ================================ +// distribution +// ================================ + +const formatDistribution = (data: ParamsQuery) => { + if (data.distributionParams.length) { + const distributionParamsRaw = DistributionParams.fromJson( + data?.distributionParams?.[0]?.params ?? {} + ); + return { + baseProposerReward: distributionParamsRaw.baseProposerReward, + bonusProposerReward: distributionParamsRaw.bonusProposerReward, + communityTax: distributionParamsRaw.communityTax, + withdrawAddressEnabled: distributionParamsRaw.withdrawAddressEnabled, + }; + } + + return null; +}; + +// ================================ +// distribution +// ================================ + +const formatGov = (data: ParamsQuery) => { + if (data.govParams.length) { + const govParamsRaw = GovParams.fromJson(data?.govParams?.[0] ?? {}); + return { + minDeposit: formatToken( + govParamsRaw.depositParams.minDeposit?.[0]?.amount ?? 0, + govParamsRaw.depositParams.minDeposit?.[0]?.denom ?? primaryTokenUnit + ), + maxDepositPeriod: govParamsRaw.depositParams.maxDepositPeriod, + quorum: numeral(numeral(govParamsRaw.tallyParams.quorum).format('0.[00]')).value() ?? 0, + threshold: numeral(numeral(govParamsRaw.tallyParams.threshold).format('0.[00]')).value() ?? 0, + vetoThreshold: + numeral(numeral(govParamsRaw.tallyParams.vetoThreshold).format('0.[00]')).value() ?? 0, + votingPeriod: govParamsRaw.votingParams.votingPeriod, + }; + } + + return null; +}; + +const formatParam = (data: ParamsQuery) => { + const results: Partial = {}; + + results.staking = formatStaking(data); + + results.slashing = formatSlashing(data); + + results.minting = formatMint(data); + + results.distribution = formatDistribution(data); + + results.gov = formatGov(data); + + return results; +}; + +export const useParams = () => { + const [state, setState] = useState(initialState); + + const handleSetState = useCallback((stateChange: (prevState: ParamsState) => ParamsState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, []); + + // ================================ + // param query + // ================================ + useParamsQuery({ + onCompleted: (data) => { + handleSetState((prevState) => ({ + ...prevState, + loading: false, + ...formatParam(data), + })); + }, + onError: () => { + handleSetState((prevState) => ({ ...prevState, loading: false })); + }, + }); + + return { + state, + }; +}; diff --git a/apps/web-osmosis/src/screens/params/index.tsx b/apps/web-osmosis/src/screens/params/index.tsx new file mode 100644 index 0000000000..6b2a18f4b6 --- /dev/null +++ b/apps/web-osmosis/src/screens/params/index.tsx @@ -0,0 +1,79 @@ +import { NextSeo } from 'next-seo'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import BoxDetails from '@/components/box_details'; +import Layout from '@/components/layout'; +import LoadAndExist from '@/components/load_and_exist'; +import { useParams } from '@/screens/params/hooks'; +import useStyles from '@/screens/params/styles'; +import { + formatDistribution, + formatGov, + formatMinting, + formatSlashing, + formatStaking, +} from '@/screens/params/utils'; + +const Params = () => { + const { t } = useAppTranslation('params'); + const { classes } = useStyles(); + const { state } = useParams(); + + const staking = state.staking + ? { + title: t('staking') ?? undefined, + details: formatStaking(state.staking, t), + } + : null; + + const slashing = state.slashing + ? { + title: t('slashing') ?? undefined, + details: formatSlashing(state.slashing, t), + } + : null; + + const minting = state.minting + ? { + title: t('minting') ?? undefined, + details: formatMinting(state.minting, t), + } + : null; + + const distribution = state.distribution + ? { + title: t('distribution') ?? undefined, + details: formatDistribution(state.distribution, t), + } + : null; + + const gov = state.gov + ? { + title: t('gov') ?? undefined, + details: formatGov(state.gov, t), + } + : null; + + return ( + <> + + + + + {staking && } + {slashing && } + {minting && } + {distribution && } + {gov && } + + + + + ); +}; + +export default Params; diff --git a/apps/web-osmosis/src/screens/params/types.ts b/apps/web-osmosis/src/screens/params/types.ts new file mode 100644 index 0000000000..00e132c796 --- /dev/null +++ b/apps/web-osmosis/src/screens/params/types.ts @@ -0,0 +1,50 @@ +export interface Staking { + bondDenom: string; + unbondingTime: number; + maxEntries: number; + historicalEntries: number; + maxValidators: number; +} + +export interface Slashing { + downtimeJailDuration: number; + minSignedPerWindow: number; + signedBlockWindow: number; + slashFractionDoubleSign: number; + slashFractionDowntime: number; +} + +export interface Minting { + mintDenom: string; + epochIdentifier: string; + reductionFactor: string; + genesisEpochProvisions: string; + reductionPeriodInEpochs: number; + mintingRewardsDistributionStartEpoch: number; +} + +export interface Distribution { + baseProposerReward: number; + bonusProposerReward: number; + communityTax: number; + withdrawAddressEnabled: boolean; +} + +export interface Gov { + minDeposit: TokenUnit; + maxDepositPeriod: number; + quorum: number; + threshold: number; + vetoThreshold: number; + votingPeriod: number; +} + +export interface ParamsState { + loading: boolean; + exists: boolean; + staking: Staking | null; + slashing: Slashing | null; + minting: Minting | null; + distribution: Distribution | null; + gov: Gov | null; +} diff --git a/apps/web-osmosis/src/screens/params/utils.tsx b/apps/web-osmosis/src/screens/params/utils.tsx new file mode 100644 index 0000000000..c19ecf7954 --- /dev/null +++ b/apps/web-osmosis/src/screens/params/utils.tsx @@ -0,0 +1,162 @@ +import type { Distribution, Gov, Minting, Slashing, Staking } from '@/screens/params/types'; +import { nanoToSeconds, secondsToDays } from '@/utils/time'; +import type { TFunction } from '@/hooks/useAppTranslation'; +import numeral from 'numeral'; + +const convertBySeconds = (seconds: number, t: TFunction) => { + const SECONDS_IN_DAY = 86400; + return seconds >= SECONDS_IN_DAY + ? t('days', { + day: secondsToDays(seconds), + }) + : t('seconds', { + second: seconds, + }); +}; + +export const formatStaking = (data: Staking, t: TFunction) => [ + { + key: 'bondDenom', + label: t('bondDenom'), + detail: data.bondDenom, + }, + { + key: 'unbondingTime', + label: t('unbondingTime'), + detail: convertBySeconds(nanoToSeconds(data.unbondingTime), t), + }, + { + key: 'maxEntries', + label: t('maxEntries'), + detail: numeral(data.maxEntries).format('0,0'), + }, + { + key: 'historicalEntries', + label: t('historicalEntries'), + detail: numeral(data.historicalEntries).format('0,0'), + }, + { + key: 'maxValidators', + label: t('maxValidators'), + detail: numeral(data.maxValidators).format('0,0'), + }, +]; + +export const formatSlashing = (data: Slashing, t: TFunction) => [ + { + key: 'downtimeJailDuration', + label: t('downtimeJailDuration'), + detail: t('seconds', { + second: numeral(nanoToSeconds(data.downtimeJailDuration)).format('0,0'), + }), + }, + { + key: 'minSignedPerWindow', + label: t('minSignedPerWindow'), + detail: `${numeral(data.minSignedPerWindow * 100).format('0.[00]')}%`, + }, + { + key: 'signedBlockWindow', + label: t('signedBlockWindow'), + detail: numeral(data.signedBlockWindow).format('0,0'), + }, + { + key: 'slashFractionDoubleSign', + label: t('slashFractionDoubleSign'), + detail: `${data.slashFractionDoubleSign * 100} / 100`, + }, + { + key: 'slashFractionDowntime', + label: t('slashFractionDowntime'), + detail: `${data.slashFractionDowntime * 10000} / ${numeral(10000).format('0,0')}`, + }, +]; + +export const formatMinting = (data: Minting, t: TFunction) => [ + { + key: 'epochIdentifier', + label: t('epochIdentifier'), + detail: data.epochIdentifier, + }, + { + key: 'reductionFactor', + label: t('reductionFactor'), + detail: data.reductionFactor, + }, + { + key: 'genesisEpochProvisions', + label: t('genesisEpochProvisions'), + detail: data.genesisEpochProvisions, + }, + { + key: 'reductionPeriodInEpochs', + label: t('reductionPeriodInEpochs'), + detail: `${numeral(data.reductionPeriodInEpochs).format('0.[00]')}`, + }, + { + key: 'mintingRewardsDistributionStartEpoch', + label: t('mintingRewardsDistributionStartEpoch'), + detail: `${numeral(data.mintingRewardsDistributionStartEpoch).format('0.[00]')}`, + }, + { + key: 'mintDenom', + label: t('mintDenom'), + detail: data.mintDenom, + }, +]; + +export const formatDistribution = (data: Distribution, t: TFunction) => [ + { + key: 'baseProposerReward', + label: t('baseProposerReward'), + detail: `${numeral(data.baseProposerReward * 100).format('0.[00]')}%`, + }, + { + key: 'bonusProposerReward', + label: t('bonusProposerReward'), + detail: `${numeral(data.bonusProposerReward * 100).format('0.[00]')}%`, + }, + { + key: 'communityTax', + label: t('communityTax'), + detail: `${numeral(data.communityTax * 100).format('0.[00]')}%`, + }, + { + key: 'withdrawAddressEnabled', + label: t('withdrawAddressEnabled'), + detail: `${data.withdrawAddressEnabled}`.toUpperCase(), + }, +]; + +export const formatGov = (data: Gov, t: TFunction) => [ + { + key: 'minDeposit', + label: t('minDeposit'), + detail: `${data.minDeposit.value} ${data.minDeposit.displayDenom.toUpperCase()}`, + }, + { + key: 'maxDepositPeriod', + label: t('maxDepositPeriod'), + detail: convertBySeconds(nanoToSeconds(data.maxDepositPeriod), t), + }, + { + key: 'quorum', + label: t('quorum'), + detail: `${numeral(data.quorum * 100).format('0.[00]')}%`, + }, + { + key: 'threshold', + label: t('threshold'), + detail: `${numeral(data.threshold * 100).format('0.[00]')}%`, + }, + { + key: 'vetoThreshold', + label: t('vetoThreshold'), + detail: `${numeral(data.vetoThreshold * 100).format('0.[00]')}%`, + }, + { + key: 'votingPeriod', + label: t('votingPeriod'), + detail: convertBySeconds(nanoToSeconds(data.votingPeriod), t), + }, +]; diff --git a/apps/web-osmosis/src/screens/proposal_details/components/overview/index.tsx b/apps/web-osmosis/src/screens/proposal_details/components/overview/index.tsx new file mode 100644 index 0000000000..5aa355329b --- /dev/null +++ b/apps/web-osmosis/src/screens/proposal_details/components/overview/index.tsx @@ -0,0 +1,199 @@ +import Divider from '@mui/material/Divider'; +import Typography from '@mui/material/Typography'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import numeral from 'numeral'; +import * as R from 'ramda'; +import { FC, useCallback, useMemo } from 'react'; +import { useRecoilValue } from 'recoil'; +import Box from '@/components/box'; +import Markdown from '@/components/markdown'; +import Name from '@/components/name'; +import SingleProposal from '@/components/single_proposal'; +import { useProfileRecoil } from '@/recoil/profiles/hooks'; +import { readDate, readTimeFormat } from '@/recoil/settings'; +import CommunityPoolSpend from '@/screens/proposal_details/components/overview/components/community_pool_spend'; +import UpdateParams from '@/screens/proposal_details/components/overview/components/update_params'; +import ParamsChange from '@/screens/proposal_details/components/overview/components/params_change'; +import SoftwareUpgrade from '@/screens/proposal_details/components/overview/components/software_upgrade'; +import type { OverviewType } from '@/screens/proposal_details/types'; +import { getProposalType } from '@/screens/proposal_details/utils'; +import dayjs, { formatDayJs } from '@/utils/dayjs'; +import { formatNumber, formatToken } from '@/utils/format_token'; +import useStyles from './styles'; + +const Overview: FC<{ className?: string; overview: OverviewType }> = ({ className, overview }) => { + const dateFormat = useRecoilValue(readDate); + const timeFormat = useRecoilValue(readTimeFormat); + const { classes, cx } = useStyles(); + const { t } = useAppTranslation('proposals'); + + const types = useMemo(() => { + if (Array.isArray(overview.content)) { + const typeArray: string[] = []; + overview.content.forEach((type: { params: JSON; type: string }) => + typeArray.push(getProposalType(R.pathOr('', ['@type'], type))) + ); + return typeArray; + } + const typeArray: string[] = []; + typeArray.push(getProposalType(R.pathOr('', ['@type'], overview.content))); + return typeArray; + }, [overview.content]); + + const changes = useMemo(() => { + const changeList: any[] = []; + if (Array.isArray(overview.content)) { + overview.content.forEach((type: { params: JSON; type: string }) => { + changeList.push({ params: type.params, type: R.pathOr('', ['@type'], type) }); + }); + + return changeList; + } + return changeList; + }, [overview.content]); + + const { address: proposerAddress, name: proposerName } = useProfileRecoil(overview.proposer); + const { name: recipientName } = useProfileRecoil(overview?.content?.recipient); + const proposerMoniker = proposerName || overview.proposer; + const recipientMoniker = recipientName || overview?.content?.recipient; + const amountRequested = overview.content?.amount + ? formatToken(overview.content?.amount[0]?.amount, overview.content?.amount[0]?.denom) + : null; + const parsedAmountRequested = amountRequested + ? `${formatNumber( + amountRequested.value, + amountRequested.exponent + )} ${amountRequested.displayDenom.toUpperCase()}` + : ''; + + const getExtraDetails = useCallback(() => { + let extraDetails = null; + types.forEach((type: string) => { + if (type === 'parameterChangeProposal') { + extraDetails = ( + <> + + {t('changes')} + + + + ); + } + if (type === 'softwareUpgradeProposal') { + extraDetails = ( + <> + + {t('plan')} + + + + ); + } + if (type === 'communityPoolSpendProposal') { + extraDetails = ( + <> + + {t('content')} + + + + ); + } + + if (type.includes('MsgUpdateParams')) { + extraDetails = ( + <> + {changes.map((change) => ( + + ))} + + ); + } + }); + return extraDetails; + }, [changes, overview.content, parsedAmountRequested, recipientMoniker, t, types]); + + const extra = getExtraDetails(); + + return ( + + + +
+ + {t('type')} + + + {types.map((type: string) => ( + + {t(type)} + + ))} + + + {t('proposer')} + + + {!!overview.submitTime && ( + <> + + {t('submitTime')} + + + {formatDayJs(dayjs.utc(overview.submitTime), dateFormat, timeFormat)} + + + )} + {!!overview.depositEndTime && ( + <> + + {t('depositEndTime')} + + + {formatDayJs(dayjs.utc(overview.depositEndTime), dateFormat, timeFormat)} + + + )} + {!!overview.votingStartTime && ( + <> + + {t('votingStartTime')} + + + {formatDayJs(dayjs.utc(overview.votingStartTime), dateFormat, timeFormat)} + + + )} + {!!overview.votingEndTime && ( + <> + + {t('votingEndTime')} + + + {formatDayJs(dayjs.utc(overview.votingEndTime), dateFormat, timeFormat)} + + + )} + + {t('description')} + + + {extra} +
+
+ ); +}; + +export default Overview; diff --git a/apps/web-osmosis/src/screens/proposal_details/components/overview/styles.ts b/apps/web-osmosis/src/screens/proposal_details/components/overview/styles.ts new file mode 100644 index 0000000000..55ec30709d --- /dev/null +++ b/apps/web-osmosis/src/screens/proposal_details/components/overview/styles.ts @@ -0,0 +1,77 @@ +import { makeStyles } from 'tss-react/mui'; + +const useStyles = makeStyles()((theme) => ({ + root: { + '& .label': { + color: theme.palette.custom.fonts.fontThree, + }, + '& .content': { + marginBottom: theme.spacing(2), + display: 'block', + [theme.breakpoints.up('lg')]: { + display: 'flex', + }, + }, + '& .recipient': { + marginBottom: theme.spacing(2), + [theme.breakpoints.up('lg')]: { + display: 'block', + }, + }, + '& .amountRequested': { + marginBottom: theme.spacing(2), + display: 'block', + padding: '0', + [theme.breakpoints.up('lg')]: { + display: 'block', + paddingLeft: '30px', + }, + }, + '& .accordion': { + background: '#151519', + }, + }, + content: { + marginTop: theme.spacing(2), + display: 'grid', + p: { + lineHeight: 1.8, + }, + '& ul': { + padding: '0.25rem 0.5rem', + [theme.breakpoints.up('lg')]: { + padding: '0.5rem 1rem', + }, + }, + '& li': { + padding: '0.25rem 0.5rem', + [theme.breakpoints.up('lg')]: { + padding: '0.5rem 1rem', + }, + }, + '& > *': { + marginBottom: theme.spacing(1), + [theme.breakpoints.up('lg')]: { + marginBottom: theme.spacing(2), + }, + }, + [theme.breakpoints.up('lg')]: { + gridTemplateColumns: '200px auto', + }, + }, + time: { + marginTop: theme.spacing(2), + display: 'grid', + '& > *': { + marginBottom: theme.spacing(1), + [theme.breakpoints.up('md')]: { + marginBottom: theme.spacing(2), + }, + }, + [theme.breakpoints.up('md')]: { + gridTemplateColumns: 'repeat(2, 1fr)', + }, + }, +})); + +export default useStyles; diff --git a/apps/web-osmosis/src/screens/proposal_details/components/votes_graph/hooks.ts b/apps/web-osmosis/src/screens/proposal_details/components/votes_graph/hooks.ts new file mode 100644 index 0000000000..f086ae829d --- /dev/null +++ b/apps/web-osmosis/src/screens/proposal_details/components/votes_graph/hooks.ts @@ -0,0 +1,71 @@ +import Big from 'big.js'; +import { useRouter } from 'next/router'; +import * as R from 'ramda'; +import { useCallback, useState } from 'react'; +import chainConfig from '@/chainConfig'; +import { + ProposalDetailsTallyQuery, + useProposalDetailsTallyQuery, +} from '@/graphql/types/general_types'; +import type { VotesGraphState } from '@/screens/proposal_details/components/votes_graph/types'; +import { formatToken } from '@/utils/format_token'; + +const { votingPowerTokenUnit } = chainConfig(); + +const defaultTokenUnit: TokenUnit = { + value: '0', + baseDenom: '', + displayDenom: '', + exponent: 0, +}; + +export const useVotesGraph = () => { + const router = useRouter(); + const [state, setState] = useState({ + votes: { + yes: defaultTokenUnit, + no: defaultTokenUnit, + abstain: defaultTokenUnit, + veto: defaultTokenUnit, + }, + bonded: defaultTokenUnit, + quorum: '0', + }); + + const handleSetState = useCallback( + (stateChange: (prevState: VotesGraphState) => VotesGraphState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, + [] + ); + + useProposalDetailsTallyQuery({ + variables: { + proposalId: parseFloat((router?.query?.id as string) ?? '0'), + }, + onCompleted: (data) => { + handleSetState((prevState) => ({ ...prevState, ...foramtProposalTally(data) })); + }, + }); + + const foramtProposalTally = (data: ProposalDetailsTallyQuery) => { + const quorumRaw = data.quorum?.[0]?.tallyParams?.quorum ?? '0'; + return { + votes: { + yes: formatToken(data?.proposalTallyResult?.[0]?.yes ?? '0', votingPowerTokenUnit), + no: formatToken(data?.proposalTallyResult?.[0]?.no ?? '0', votingPowerTokenUnit), + veto: formatToken(data?.proposalTallyResult?.[0]?.noWithVeto ?? '0', votingPowerTokenUnit), + abstain: formatToken(data?.proposalTallyResult?.[0]?.abstain ?? '0', votingPowerTokenUnit), + }, + bonded: formatToken(data?.stakingPool?.[0]?.bondedTokens ?? '0', votingPowerTokenUnit), + quorum: Big(quorumRaw)?.times(100).toFixed(2), + }; + }; + + return { + state, + }; +}; diff --git a/apps/web-osmosis/src/screens/proposal_details/hooks.ts b/apps/web-osmosis/src/screens/proposal_details/hooks.ts new file mode 100644 index 0000000000..43de7d33f2 --- /dev/null +++ b/apps/web-osmosis/src/screens/proposal_details/hooks.ts @@ -0,0 +1,95 @@ +import { useRouter } from 'next/router'; +import * as R from 'ramda'; +import { useCallback, useState } from 'react'; +import type { ProposalState } from '@/screens/proposal_details/types'; +import { ProposalDetailsQuery, useProposalDetailsQuery } from '@/graphql/types/general_types'; + +// ========================= +// overview +// ========================= +const formatOverview = (data: ProposalDetailsQuery) => { + const DEFAULT_TIME = '0001-01-01T00:00:00'; + let votingStartTime = data?.proposal?.[0]?.votingStartTime ?? DEFAULT_TIME; + votingStartTime = votingStartTime === DEFAULT_TIME ? '' : votingStartTime; + let votingEndTime = data?.proposal?.[0]?.votingEndTime ?? DEFAULT_TIME; + votingEndTime = votingEndTime === DEFAULT_TIME ? '' : votingEndTime; + + const overview = { + proposer: data?.proposal?.[0]?.proposer ?? '', + content: data?.proposal?.[0]?.content ?? '', + title: data?.proposal?.[0]?.title ?? '', + id: data?.proposal?.[0]?.proposalId ?? '', + description: data?.proposal?.[0]?.description ?? '', + status: data?.proposal?.[0]?.status ?? '', + submitTime: data?.proposal?.[0]?.submitTime ?? '', + depositEndTime: data?.proposal?.[0]?.depositEndTime ?? '', + votingStartTime, + votingEndTime, + }; + + return overview; +}; + +// ========================== +// parsers +// ========================== +const formatProposalQuery = (data: ProposalDetailsQuery) => { + const stateChange: Partial = { + loading: false, + }; + + if (!data.proposal.length) { + stateChange.exists = false; + return stateChange; + } + + stateChange.overview = formatOverview(data); + + return stateChange; +}; + +export const useProposalDetails = () => { + const router = useRouter(); + const [state, setState] = useState({ + loading: true, + exists: true, + overview: { + proposer: '', + content: { + recipient: '', + amount: [], + }, + title: '', + id: 0, + description: '', + status: '', + submitTime: '', + depositEndTime: '', + votingStartTime: '', + votingEndTime: '', + }, + }); + + const handleSetState = useCallback((stateChange: (prevState: ProposalState) => ProposalState) => { + setState((prevState) => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, []); + + // ========================== + // fetch data + // ========================== + useProposalDetailsQuery({ + variables: { + proposalId: parseFloat((router?.query?.id as string) ?? '0'), + }, + onCompleted: (data) => { + handleSetState((prevState) => ({ ...prevState, ...formatProposalQuery(data) })); + }, + }); + + return { + state, + }; +}; diff --git a/apps/web-osmosis/src/screens/proposal_details/types.ts b/apps/web-osmosis/src/screens/proposal_details/types.ts new file mode 100644 index 0000000000..2055522c4b --- /dev/null +++ b/apps/web-osmosis/src/screens/proposal_details/types.ts @@ -0,0 +1,24 @@ +export interface OverviewType { + title: string; + id: number; + proposer: string; + description: string; + status: string; + submitTime: string; + depositEndTime: string; + votingStartTime: string | null; + votingEndTime: string | null; + content: { + recipient: string; + amount: Array<{ + amount: string; + denom: string; + }>; + }; +} + +export interface ProposalState { + loading: boolean; + exists: boolean; + overview: OverviewType; +} diff --git a/packages/ui/public/locales/en/params.json b/packages/ui/public/locales/en/params.json index 7a63b5706d..467728affe 100644 --- a/packages/ui/public/locales/en/params.json +++ b/packages/ui/public/locales/en/params.json @@ -32,5 +32,10 @@ "quorum": "Quorum", "threshold": "Threshold", "vetoThreshold": "Veto Threshold", - "votingPeriod": "Voting Period" + "votingPeriod": "Voting Period", + "epochIdentifier": "Epoch Identifier", + "reductionFactor": "Reduction Factor", + "genesisEpochProvisions": "Genesis Epoch Provisions", + "reductionPeriodInEpochs": "Reduction Period In Epochs", + "mintingRewardsDistributionStartEpoch": "Minting Rewards Distribution Start Epoch" } diff --git a/packages/ui/public/locales/it/params.json b/packages/ui/public/locales/it/params.json index 7ab24f4c35..f505b0bddd 100644 --- a/packages/ui/public/locales/it/params.json +++ b/packages/ui/public/locales/it/params.json @@ -32,5 +32,10 @@ "quorum": "Quorum", "threshold": "Soglia", "vetoThreshold": "Soglia di veto", - "votingPeriod": "Periodo di votazione" + "votingPeriod": "Periodo di votazione", + "epochIdentifier": "Identificatore dell'epoca", + "reductionFactor": "Fattore di riduzione", + "genesisEpochProvisions": "Disposizioni di Genesis Epoch", + "reductionPeriodInEpochs": "Periodo di riduzione in epoche", + "mintingRewardsDistributionStartEpoch": "Epoca iniziale distribuzione premi conio" } diff --git a/packages/ui/public/locales/pl/params.json b/packages/ui/public/locales/pl/params.json index 7da00e1280..4e003aa443 100644 --- a/packages/ui/public/locales/pl/params.json +++ b/packages/ui/public/locales/pl/params.json @@ -32,5 +32,10 @@ "quorum": "Kworum", "threshold": "Próg", "vetoThreshold": "Próg weta", - "votingPeriod": "Okres głosowania" + "votingPeriod": "Okres głosowania", + "epochIdentifier": "Identyfikator epoki", + "reductionFactor": "Współczynnik redukcji", + "genesisEpochProvisions": "Zaopatrzenie epoki genesis", + "reductionPeriodInEpochs": "Okres redukcji w epokach", + "mintingRewardsDistributionStartEpoch": "Epoka rozpoczęcia dystrybucji mint nagród" } diff --git a/packages/ui/public/locales/zhs/params.json b/packages/ui/public/locales/zhs/params.json index cf43d824ed..5e5d8ba072 100644 --- a/packages/ui/public/locales/zhs/params.json +++ b/packages/ui/public/locales/zhs/params.json @@ -32,5 +32,10 @@ "quorum": "法定人数", "threshold": "门槛", "vetoThreshold": "否决门槛", - "votingPeriod": "投票期" + "votingPeriod": "投票期", + "epochIdentifier": "纪元标识符", + "reductionFactor": "缩减因子", + "genesisEpochProvisions": "创世纪元规定", + "reductionPeriodInEpochs": "减少纪元的周期", + "mintingRewardsDistributionStartEpoch": "铸造奖励分配开始纪元" } diff --git a/packages/ui/public/locales/zht/params.json b/packages/ui/public/locales/zht/params.json index d842697b64..508af2f12a 100644 --- a/packages/ui/public/locales/zht/params.json +++ b/packages/ui/public/locales/zht/params.json @@ -32,5 +32,10 @@ "quorum": "法定人數", "threshold": "門檻", "vetoThreshold": "否決門檻", - "votingPeriod": "投票期" + "votingPeriod": "投票期", + "epochIdentifier": "紀元標識符", + "reductionFactor": "縮減因子", + "genesisEpochProvisions": "創世紀元規定", + "reductionPeriodInEpochs": "減少紀元的週期", + "mintingRewardsDistributionStartEpoch": "鑄造獎勵分配開始紀元" } From c5aaebc0f8d8d7754dc424148f5b4e1d041635cf Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Wed, 10 Jan 2024 17:23:30 +0700 Subject: [PATCH 17/20] fix: fix voting power display [web-kyve] (#1318) ## Description Closes: #XXXX --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [x] ran linting via `yarn lint` - [ ] wrote tests where necessary - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] targeted the correct branch - [ ] provided a link to the relevant issue or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed - [x] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) --- .changeset/gorgeous-parents-happen.md | 5 ++ apps/web-kyve/src/chain.json | 3 +- .../components/online_voting_power/hooks.ts | 54 +++++++++++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 .changeset/gorgeous-parents-happen.md create mode 100644 apps/web-kyve/src/screens/home/components/hero/components/online_voting_power/hooks.ts diff --git a/.changeset/gorgeous-parents-happen.md b/.changeset/gorgeous-parents-happen.md new file mode 100644 index 0000000000..2b89175e36 --- /dev/null +++ b/.changeset/gorgeous-parents-happen.md @@ -0,0 +1,5 @@ +--- +'web-kyve': major +--- + +fix voting power display diff --git a/apps/web-kyve/src/chain.json b/apps/web-kyve/src/chain.json index af7f7493a9..ab963914d7 100644 --- a/apps/web-kyve/src/chain.json +++ b/apps/web-kyve/src/chain.json @@ -3,7 +3,8 @@ "title": "Kyve Block Explorer", "extra": { "profile": false, - "graphqlWs": true + "graphqlWs": true, + "votingPowerExponent": 6 }, "previewImage": "https://s3.bigdipper.live/previews/kyve.png", "themes": { diff --git a/apps/web-kyve/src/screens/home/components/hero/components/online_voting_power/hooks.ts b/apps/web-kyve/src/screens/home/components/hero/components/online_voting_power/hooks.ts new file mode 100644 index 0000000000..4858cde565 --- /dev/null +++ b/apps/web-kyve/src/screens/home/components/hero/components/online_voting_power/hooks.ts @@ -0,0 +1,54 @@ +import * as R from 'ramda'; +import { useCallback, useState } from 'react'; +import { OnlineVotingPowerQuery, useOnlineVotingPowerQuery } from '@/graphql/types/general_types'; + +type OnlineVotingPowerState = { + votingPower: number; + totalVotingPower: number; + activeValidators: number; +}; + +const initialState: OnlineVotingPowerState = { + votingPower: 0, + totalVotingPower: 0, + activeValidators: 0, +}; + +const formatOnlineVotingPower = (data: OnlineVotingPowerQuery) => { + const votingPower = data?.validatorVotingPowerAggregate?.aggregate?.sum?.votingPower ?? 0; + const bonded = data?.stakingPool?.[0]?.bonded ?? 0; + const activeValidators = data?.activeTotal?.aggregate?.count ?? 0; + + return { + activeValidators, + votingPower, + totalVotingPower: Number(bonded), + }; +}; + +export const useOnlineVotingPower = () => { + const [state, setState] = useState(initialState); + + const handleSetState = useCallback( + (stateChange: (prevState: OnlineVotingPowerState) => OnlineVotingPowerState) => { + setState(prevState => { + const newState = stateChange(prevState); + return R.equals(prevState, newState) ? prevState : newState; + }); + }, + [] + ); + + useOnlineVotingPowerQuery({ + onCompleted: data => { + handleSetState(prevState => ({ + ...prevState, + ...formatOnlineVotingPower(data), + })); + }, + }); + + return { + state, + }; +}; From 15a4f088e6c6f9ee0a178a2a7e207410f3d5b9af Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Fri, 12 Jan 2024 18:12:43 +0700 Subject: [PATCH 18/20] fix: update tokenomics component and color scheme [web-neutron] (#1319) ## Description Closes: #XXXX --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [x] ran linting via `yarn lint` - [ ] wrote tests where necessary - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] targeted the correct branch - [ ] provided a link to the relevant issue or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed - [x] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) --- .changeset/tender-icons-flow.md | 5 ++ apps/web-neutron/src/chain.json | 88 +++++++++---------- .../home/components/tokenomics/index.tsx | 23 +++++ .../home/components/tokenomics/styles.ts | 25 ++++++ packages/ui/public/locales/en/home.json | 3 +- packages/ui/public/locales/it/home.json | 3 +- packages/ui/public/locales/pl/home.json | 3 +- packages/ui/public/locales/zhs/home.json | 3 +- packages/ui/public/locales/zht/home.json | 3 +- 9 files changed, 107 insertions(+), 49 deletions(-) create mode 100644 .changeset/tender-icons-flow.md create mode 100644 apps/web-neutron/src/screens/home/components/tokenomics/index.tsx create mode 100644 apps/web-neutron/src/screens/home/components/tokenomics/styles.ts diff --git a/.changeset/tender-icons-flow.md b/.changeset/tender-icons-flow.md new file mode 100644 index 0000000000..b90dcdb107 --- /dev/null +++ b/.changeset/tender-icons-flow.md @@ -0,0 +1,5 @@ +--- +'web-neutron': major +--- + +update tokenomics component and color scheme diff --git a/apps/web-neutron/src/chain.json b/apps/web-neutron/src/chain.json index d930acf451..a2d89ac4ec 100644 --- a/apps/web-neutron/src/chain.json +++ b/apps/web-neutron/src/chain.json @@ -16,47 +16,47 @@ ], "dark": { "primary": { - "main": "rgba(253,59,76,0.7)", + "main": "#FF835B", "contrastText": "#FFFFFF" }, "background": { - "default": "#0A0A0A", + "default": "#000000", "paper": "#131316" }, - "divider": "#3D3D43", + "divider": "#282828", "text": { "primary": "#E6E6E6", - "secondary": "#AAAAAB" + "secondary": "#C4C4C4" }, "custom": { "general": { - "background": "#0A0A0A", + "background": "#000000", "surfaceOne": "#131316", - "surfaceTwo": "#19191D", + "surfaceTwo": "#212123", "icon": "#999999" }, "fonts": { "fontOne": "#E6E6E6", - "fontTwo": "#AAAAAB", + "fontTwo": "#C4C4C4", "fontThree": "#818181", "fontFour": "#999999", "fontFive": "#FFFFFF", - "highlight": "#1D86FF" + "highlight": "#4092CD" }, "primaryData": { - "one": "#af2929", - "two": "#b44516", - "three": "#b14237", - "four": "#b16919" + "one": "#F87255", + "two": "#FA9147", + "three": "#43BE7C", + "four": "#43A1BE" }, "results": { - "pass": "#198a65", - "fail": "#b12a34" + "pass": "#1EC490", + "fail": "#FD3B4C" }, "tokenomics": { - "one": "#50B6D7", - "two": "#F4CD69", - "three": "#45A884" + "one": "#43A1BE", + "two": "#E3BB55", + "three": "#20D292" }, "condition": { "zero": "#E6E6E6", @@ -65,26 +65,26 @@ "three": "#FF608A" }, "charts": { - "zero": "#6D6D6C", - "one": "#45A884", - "two": "#50B6D7", - "three": "#F4CD69", - "four": "#F2A46B", - "five": "#C975F0" + "zero": "#E6E6E6", + "one": "#43BE7C", + "two": "#FA9147", + "three": "#F44747", + "four": "#43A1BE", + "five": "#C25396" }, "tags": { "zero": "#E8E8E8", "one": "#2460FA", - "two": "#2BA896", - "three": "#E79725", - "four": "#F17052", + "two": "#2BA897", + "three": "#E79726", + "four": "#F17053", "five": "#DA4B4B", "six": "#9438DC", "seven": "#1A869D", - "eight": "#2C9949", - "nine": "#B49F36", - "ten": "#E9A851", - "eleven": "#E94686", + "eight": "#2C9950", + "nine": "#B49F37", + "ten": "#E9A852", + "eleven": "#E94687", "twelve": "#C15EC4", "thirteen": "#C388D9", "fourteen": "#46AEE9", @@ -111,7 +111,7 @@ }, "light": { "primary": { - "main": "#488D98", + "main": "#FF835B", "contrastText": "#FFFFFF" }, "background": { @@ -136,22 +136,22 @@ "fontThree": "#777777", "fontFour": "#999999", "fontFive": "#FFFFFF", - "highlight": "#0075FF" + "highlight": "#4092CD" }, "primaryData": { - "one": "#488D98", - "two": "#45A884", - "three": "#48A2B0", - "four": "#47B0AA" + "one": "#F87255", + "two": "#FA9147", + "three": "#20D494", + "four": "#2FB6E0" }, "results": { "pass": "#1EC490", "fail": "#FD3B4C" }, "tokenomics": { - "one": "#50B6D7", - "two": "#F4CD69", - "three": "#45A884" + "one": "#2FB6E0", + "two": "#FFC93D", + "three": "#20D494" }, "condition": { "zero": "#E6E6E6", @@ -161,11 +161,11 @@ }, "charts": { "zero": "#E6E6E6", - "one": "#45A884", - "two": "#50B6D7", - "three": "#F4CD69", - "four": "#F2A46B", - "five": "#C975F0" + "one": "#20D494", + "two": "#FF8732", + "three": "#F44747", + "four": "#2FB6E0", + "five": "#E95EB1" }, "tags": { "zero": "#E8E8E8", diff --git a/apps/web-neutron/src/screens/home/components/tokenomics/index.tsx b/apps/web-neutron/src/screens/home/components/tokenomics/index.tsx new file mode 100644 index 0000000000..e14bb98c68 --- /dev/null +++ b/apps/web-neutron/src/screens/home/components/tokenomics/index.tsx @@ -0,0 +1,23 @@ +import Box from '@/components/box'; +import useStyles from '@/screens/home/components/tokenomics/styles'; +import Typography from '@mui/material/Typography'; +import useAppTranslation from '@/hooks/useAppTranslation'; +import { FC } from 'react'; + +const Tokenomics: FC = ({ className }) => { + const { t } = useAppTranslation('home'); + const { classes, cx } = useStyles(); + + return ( + + + {t('tokenomics')} + +
+ {t('notAvailable')} +
+
+ ); +}; + +export default Tokenomics; diff --git a/apps/web-neutron/src/screens/home/components/tokenomics/styles.ts b/apps/web-neutron/src/screens/home/components/tokenomics/styles.ts new file mode 100644 index 0000000000..48ca9b39d1 --- /dev/null +++ b/apps/web-neutron/src/screens/home/components/tokenomics/styles.ts @@ -0,0 +1,25 @@ +import { makeStyles } from 'tss-react/mui'; + +const useStyles = makeStyles()(theme => ({ + root: { + height: '100%', + display: 'flex', + justifyContent: 'center', + flexDirection: 'column', + }, + label: { + marginBottom: theme.spacing(2), + }, + content: { + flex: 1, + display: 'flex', + alignItems: 'center', + justifyContent: 'space-around', + color: theme.palette.custom.fonts.fontThree, + backgroundColor: theme.palette.custom.general.surfaceTwo, + borderRadius: '8px', + marginBottom: theme.spacing(3), + }, +})); + +export default useStyles; diff --git a/packages/ui/public/locales/en/home.json b/packages/ui/public/locales/en/home.json index 3b905700d0..f1a86143d2 100644 --- a/packages/ui/public/locales/en/home.json +++ b/packages/ui/public/locales/en/home.json @@ -31,5 +31,6 @@ "powerChange": "<0>{{change}} at block ", "validators": "Validators", "priceHistory": "Price (~48h)", - "dataFrom": "Data from" + "dataFrom": "Data from", + "notAvailable": "Not available" } diff --git a/packages/ui/public/locales/it/home.json b/packages/ui/public/locales/it/home.json index 4e2a899e45..75158e8665 100644 --- a/packages/ui/public/locales/it/home.json +++ b/packages/ui/public/locales/it/home.json @@ -31,5 +31,6 @@ "powerChange": "<0>{{change}} a blocco ", "validators": "Validatori", "priceHistory": "Prezzo (~48 ore)", - "dataFrom": "Dati da" + "dataFrom": "Dati da", + "notAvailable": "Non disponibile" } diff --git a/packages/ui/public/locales/pl/home.json b/packages/ui/public/locales/pl/home.json index 2ea1fd3c4a..1d9192ba18 100644 --- a/packages/ui/public/locales/pl/home.json +++ b/packages/ui/public/locales/pl/home.json @@ -31,5 +31,6 @@ "powerChange": "<0>{{change}} na wysokości ", "validators": "Walidatorzy", "priceHistory": "Cena (~48h)", - "dataFrom": "Dane z" + "dataFrom": "Dane z", + "notAvailable": "Niedostępne" } diff --git a/packages/ui/public/locales/zhs/home.json b/packages/ui/public/locales/zhs/home.json index 90de107cfe..75bd977fdd 100644 --- a/packages/ui/public/locales/zhs/home.json +++ b/packages/ui/public/locales/zhs/home.json @@ -31,5 +31,6 @@ "powerChange": "<0>{{change}} 在区块 ", "validators": "验证人", "priceHistory": "价格(~48 小时)", - "dataFrom": "数据来自" + "dataFrom": "数据来自", + "notAvailable": "不可用" } diff --git a/packages/ui/public/locales/zht/home.json b/packages/ui/public/locales/zht/home.json index bca42af4fb..69a965a0d2 100644 --- a/packages/ui/public/locales/zht/home.json +++ b/packages/ui/public/locales/zht/home.json @@ -31,5 +31,6 @@ "powerChange": "<0>{{change}} 在區塊 ", "validators": "驗證者", "priceHistory": "價格(~48 小時)", - "dataFrom": "數據來自" + "dataFrom": "數據來自", + "notAvailable": "不可用" } From f4640680eb618735d2850284e756d24ba9f0fac4 Mon Sep 17 00:00:00 2001 From: Magic Cat <37407870+MonikaCat@users.noreply.github.com> Date: Mon, 22 Jan 2024 09:25:01 +0700 Subject: [PATCH 19/20] feat: update neutron [web-neutron] (#1320) ## Description Closes: #XXXX --- ### Author Checklist _All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues._ I have... - [x] ran linting via `yarn lint` - [ ] wrote tests where necessary - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [x] targeted the correct branch - [x] provided a link to the relevant issue or specification - [x] reviewed "Files changed" and left comments if necessary - [x] confirmed all CI checks have passed - [x] added a changeset via [`yarn && yarn changeset`](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) --- .changeset/smooth-terms-stare.md | 5 + apps/web-neutron/src/chainConfig/types.ts | 2 +- .../src/components/layout/index.tsx | 54 ++++++++++ .../src/components/layout/styles.ts | 49 +++++++++ .../nav/components/title_bar/styles.ts | 76 +++++++++++++ apps/web-neutron/src/screens/params/hooks.ts | 79 +------------- apps/web-neutron/src/screens/params/index.tsx | 34 +----- apps/web-neutron/src/screens/params/types.ts | 28 ----- apps/web-neutron/src/screens/params/utils.tsx | 100 +----------------- .../components/blocks/hooks.ts | 42 -------- .../components/blocks/index.tsx | 20 ++++ .../components/blocks/styles.ts | 21 ++++ .../components/staking/hooks.ts | 8 +- .../src/screens/validator_details/index.tsx | 56 ++++++++++ .../src/utils/format_provider_token/index.ts | 4 +- .../ui/public/locales/en/web_neutron.json | 4 +- .../ui/public/locales/it/web_neutron.json | 3 +- .../ui/public/locales/pl/web_neutron.json | 3 +- .../ui/public/locales/zhs/web_neutron.json | 3 +- .../ui/public/locales/zht/web_neutron.json | 3 +- 20 files changed, 302 insertions(+), 292 deletions(-) create mode 100644 .changeset/smooth-terms-stare.md create mode 100644 apps/web-neutron/src/components/layout/index.tsx create mode 100644 apps/web-neutron/src/components/layout/styles.ts create mode 100644 apps/web-neutron/src/components/nav/components/title_bar/styles.ts delete mode 100644 apps/web-neutron/src/screens/validator_details/components/blocks/hooks.ts create mode 100644 apps/web-neutron/src/screens/validator_details/components/blocks/index.tsx create mode 100644 apps/web-neutron/src/screens/validator_details/components/blocks/styles.ts create mode 100644 apps/web-neutron/src/screens/validator_details/index.tsx diff --git a/.changeset/smooth-terms-stare.md b/.changeset/smooth-terms-stare.md new file mode 100644 index 0000000000..845148fadd --- /dev/null +++ b/.changeset/smooth-terms-stare.md @@ -0,0 +1,5 @@ +--- +'web-neutron': major +--- + +updated params page and token display in staking component diff --git a/apps/web-neutron/src/chainConfig/types.ts b/apps/web-neutron/src/chainConfig/types.ts index 45a4065b3d..eba5e2a6f5 100644 --- a/apps/web-neutron/src/chainConfig/types.ts +++ b/apps/web-neutron/src/chainConfig/types.ts @@ -147,7 +147,7 @@ export interface ChainConfig extends ChainSettings { keplr: string | undefined; provider: { primaryTokenUnit: string; - tokenunits: { + tokenUnits: { [token: string]: { display: string; exponent: number; diff --git a/apps/web-neutron/src/components/layout/index.tsx b/apps/web-neutron/src/components/layout/index.tsx new file mode 100644 index 0000000000..3a7e0aa70b --- /dev/null +++ b/apps/web-neutron/src/components/layout/index.tsx @@ -0,0 +1,54 @@ +import { motion, Transition, Variants } from 'framer-motion'; +import Banner, { getBannersLinks } from '@/components/banner'; +import Footer from '@/components/footer'; +import useStyles from '@/components/layout/styles'; +import type { LayoutProps } from '@/components/layout/types'; +import Nav from '@/components/nav'; +import Typography from '@mui/material/Typography'; +import useAppTranslation from '@/hooks/useAppTranslation'; + +const bannerLinks = getBannersLinks(); + +const variants: Variants = { + initial: { filter: 'blur(4px)' }, + animate: { filter: 'blur(0px)' }, + exit: { filter: 'blur(4px)' }, +}; + +const transition: Transition = { + duration: 1, +}; + +const Layout = (props: LayoutProps) => { + const { classes, cx } = useStyles(); + const { children, navTitle, className } = props; + const { t } = useAppTranslation('validators'); + + return ( + +
+