+
+ )
+}
diff --git a/src/components/organisms/proposal-summary.tsx b/src/components/organisms/proposal-summary.tsx
index 1a7f3a1..cf586f8 100644
--- a/src/components/organisms/proposal-summary.tsx
+++ b/src/components/organisms/proposal-summary.tsx
@@ -36,16 +36,16 @@ export const ProposalSummary = ({
proposal,
userVote,
votes,
+ votingClosed,
}: {
group: UIGroup
- onVote: (option: VoteOptionType) => void
+ onVote?: (option: VoteOptionType) => void
proposal: UIProposal
userVote?: Vote
votes?: Vote[]
+ votingClosed?: boolean
}) => {
const cardBgDark = useColorModeValue('gray.100', 'gray.700')
- const now = new Date()
- const votingClosed = new Date(proposal.votingPeriodEnd || now).getTime() < now.getTime()
const proposalFinalized =
proposal.status.toString() === 'PROPOSAL_STATUS_ACCEPTED' ||
proposal.status.toString() === 'PROPOSAL_STATUS_REJECTED'
@@ -65,8 +65,8 @@ export const ProposalSummary = ({
{proposal.metadata.title}{proposal.metadata.summary}
- {proposal.messages.map((msg) =>
- renderMessage(msg, proposal.groupPolicyAddress),
+ {proposal.messages.map((msg, index) =>
+ renderMessage(msg, proposal.groupPolicyAddress, index),
)}
@@ -108,12 +108,13 @@ export const ProposalSummary = ({
// TODO: https://github.com/regen-network/regen-js/issues/71
// eslint-disable-next-line @typescript-eslint/no-explicit-any
-function renderMessage(msg: any, groupPolicyAddress: string) {
+function renderMessage(msg: any, groupPolicyAddress: string, index: number) {
if (!msg) return null
switch (msg.typeUrl) {
case '/cosmos.bank.v1beta1.MsgSend':
return (
)
default:
- return
+ return
}
}
diff --git a/src/gql/fragment-masking.ts b/src/gql/fragment-masking.ts
new file mode 100644
index 0000000..47151ff
--- /dev/null
+++ b/src/gql/fragment-masking.ts
@@ -0,0 +1,66 @@
+import { ResultOf, DocumentTypeDecoration, TypedDocumentNode } from '@graphql-typed-document-node/core';
+import { FragmentDefinitionNode } from 'graphql';
+import { Incremental } from './graphql';
+
+
+export type FragmentType> = TDocumentType extends DocumentTypeDecoration<
+ infer TType,
+ any
+>
+ ? [TType] extends [{ ' $fragmentName'?: infer TKey }]
+ ? TKey extends string
+ ? { ' $fragmentRefs'?: { [key in TKey]: TType } }
+ : never
+ : never
+ : never;
+
+// return non-nullable if `fragmentType` is non-nullable
+export function getFragmentData(
+ _documentNode: DocumentTypeDecoration,
+ fragmentType: FragmentType>
+): TType;
+// return nullable if `fragmentType` is nullable
+export function getFragmentData(
+ _documentNode: DocumentTypeDecoration,
+ fragmentType: FragmentType> | null | undefined
+): TType | null | undefined;
+// return array of non-nullable if `fragmentType` is array of non-nullable
+export function getFragmentData(
+ _documentNode: DocumentTypeDecoration,
+ fragmentType: ReadonlyArray>>
+): ReadonlyArray;
+// return array of nullable if `fragmentType` is array of nullable
+export function getFragmentData(
+ _documentNode: DocumentTypeDecoration,
+ fragmentType: ReadonlyArray>> | null | undefined
+): ReadonlyArray | null | undefined;
+export function getFragmentData(
+ _documentNode: DocumentTypeDecoration,
+ fragmentType: FragmentType> | ReadonlyArray>> | null | undefined
+): TType | ReadonlyArray | null | undefined {
+ return fragmentType as any;
+}
+
+
+export function makeFragmentData<
+ F extends DocumentTypeDecoration,
+ FT extends ResultOf
+>(data: FT, _fragment: F): FragmentType {
+ return data as FragmentType;
+}
+export function isFragmentReady(
+ queryNode: DocumentTypeDecoration,
+ fragmentNode: TypedDocumentNode,
+ data: FragmentType, any>> | null | undefined
+): data is FragmentType {
+ const deferredFields = (queryNode as { __meta__?: { deferredFields: Record } }).__meta__
+ ?.deferredFields;
+
+ if (!deferredFields) return true;
+
+ const fragDef = fragmentNode.definitions[0] as FragmentDefinitionNode | undefined;
+ const fragName = fragDef?.name?.value;
+
+ const fields = (fragName && deferredFields[fragName]) || [];
+ return fields.length > 0 && fields.every(field => data && field in data);
+}
diff --git a/src/gql/gql.ts b/src/gql/gql.ts
new file mode 100644
index 0000000..86ad4d8
--- /dev/null
+++ b/src/gql/gql.ts
@@ -0,0 +1,52 @@
+/* eslint-disable */
+import * as types from './graphql';
+import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
+
+/**
+ * Map of all GraphQL operations in the project.
+ *
+ * This map has several performance disadvantages:
+ * 1. It is not tree-shakeable, so it will include all operations in the project.
+ * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.
+ * 3. It does not support dead code elimination, so it will add unused operations.
+ *
+ * Therefore it is highly recommended to use the babel or swc plugin for production.
+ */
+const documents = {
+ "fragment ProposalItem on Proposal {\n type\n blockHeight\n txIdx\n msgIdx\n chainNum\n timestamp\n txHash\n id: proposalId\n status\n groupPolicyAddress\n groupPolicyVersion\n metadata\n proposers\n submitTime\n groupVersion\n groupPolicyAddress\n finalTallyResult\n votingPeriodEnd\n executorResult\n messages\n}": types.ProposalItemFragmentDoc,
+ "query ProposalsByGroupPolicyAddress($groupPolicyAddress: String!) {\n allProposals(condition: {groupPolicyAddress: $groupPolicyAddress}) {\n nodes {\n ...ProposalItem\n }\n }\n}": types.ProposalsByGroupPolicyAddressDocument,
+ "query ProposalsByProposalId($proposalId: BigInt!) {\n allProposals(condition: {proposalId: $proposalId}) {\n nodes {\n ...ProposalItem\n }\n }\n}": types.ProposalsByProposalIdDocument,
+};
+
+/**
+ * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
+ *
+ *
+ * @example
+ * ```ts
+ * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);
+ * ```
+ *
+ * The query argument is unknown!
+ * Please regenerate the types.
+ */
+export function graphql(source: string): unknown;
+
+/**
+ * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
+ */
+export function graphql(source: "fragment ProposalItem on Proposal {\n type\n blockHeight\n txIdx\n msgIdx\n chainNum\n timestamp\n txHash\n id: proposalId\n status\n groupPolicyAddress\n groupPolicyVersion\n metadata\n proposers\n submitTime\n groupVersion\n groupPolicyAddress\n finalTallyResult\n votingPeriodEnd\n executorResult\n messages\n}"): (typeof documents)["fragment ProposalItem on Proposal {\n type\n blockHeight\n txIdx\n msgIdx\n chainNum\n timestamp\n txHash\n id: proposalId\n status\n groupPolicyAddress\n groupPolicyVersion\n metadata\n proposers\n submitTime\n groupVersion\n groupPolicyAddress\n finalTallyResult\n votingPeriodEnd\n executorResult\n messages\n}"];
+/**
+ * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
+ */
+export function graphql(source: "query ProposalsByGroupPolicyAddress($groupPolicyAddress: String!) {\n allProposals(condition: {groupPolicyAddress: $groupPolicyAddress}) {\n nodes {\n ...ProposalItem\n }\n }\n}"): (typeof documents)["query ProposalsByGroupPolicyAddress($groupPolicyAddress: String!) {\n allProposals(condition: {groupPolicyAddress: $groupPolicyAddress}) {\n nodes {\n ...ProposalItem\n }\n }\n}"];
+/**
+ * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
+ */
+export function graphql(source: "query ProposalsByProposalId($proposalId: BigInt!) {\n allProposals(condition: {proposalId: $proposalId}) {\n nodes {\n ...ProposalItem\n }\n }\n}"): (typeof documents)["query ProposalsByProposalId($proposalId: BigInt!) {\n allProposals(condition: {proposalId: $proposalId}) {\n nodes {\n ...ProposalItem\n }\n }\n}"];
+
+export function graphql(source: string) {
+ return (documents as any)[source] ?? {};
+}
+
+export type DocumentType> = TDocumentNode extends DocumentNode< infer TType, any> ? TType : never;
\ No newline at end of file
diff --git a/src/gql/graphql.ts b/src/gql/graphql.ts
new file mode 100644
index 0000000..573aa37
--- /dev/null
+++ b/src/gql/graphql.ts
@@ -0,0 +1,2757 @@
+/* eslint-disable */
+import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
+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 };
+export type MakeEmpty = { [_ in K]?: never };
+export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };
+/** All built-in and custom scalars, mapped to their actual values */
+export type Scalars = {
+ ID: { input: string; output: string; }
+ String: { input: string; output: string; }
+ Boolean: { input: boolean; output: boolean; }
+ Int: { input: number; output: number; }
+ Float: { input: number; output: number; }
+ /**
+ * A signed eight-byte integer. The upper big integer values are greater than the
+ * max value for a JavaScript number. Therefore all big integers will be output as
+ * strings and not numbers.
+ */
+ BigInt: { input: any; output: any; }
+ /** A location in a connection that can be used for resuming pagination. */
+ Cursor: { input: any; output: any; }
+ /**
+ * A point in time as described by the [ISO
+ * 8601](https://en.wikipedia.org/wiki/ISO_8601) standard. May or may not include a timezone.
+ */
+ Datetime: { input: any; output: any; }
+ /** The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */
+ JSON: { input: any; output: any; }
+};
+
+export type Block = Node & {
+ __typename?: 'Block';
+ /** Reads a single `Chain` that is related to this `Block`. */
+ chainByChainNum?: Maybe;
+ chainNum: Scalars['Int']['output'];
+ data: Scalars['JSON']['output'];
+ height: Scalars['BigInt']['output'];
+ /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */
+ nodeId: Scalars['ID']['output'];
+ time: Scalars['Datetime']['output'];
+ /** Reads and enables pagination through a set of `Tx`. */
+ txesByChainNumAndBlockHeight: TxesConnection;
+};
+
+
+export type BlockTxesByChainNumAndBlockHeightArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ condition?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+ offset?: InputMaybe;
+ orderBy?: InputMaybe>;
+};
+
+/** A condition to be used against `Block` object types. All fields are tested for equality and combined with a logical ‘and.’ */
+export type BlockCondition = {
+ /** Checks for equality with the object’s `chainNum` field. */
+ chainNum?: InputMaybe;
+ /** Checks for equality with the object’s `data` field. */
+ data?: InputMaybe;
+ /** Checks for equality with the object’s `height` field. */
+ height?: InputMaybe;
+ /** Checks for equality with the object’s `time` field. */
+ time?: InputMaybe;
+};
+
+/** An input for mutations affecting `Block` */
+export type BlockInput = {
+ chainNum: Scalars['Int']['input'];
+ data: Scalars['JSON']['input'];
+ height: Scalars['BigInt']['input'];
+ time: Scalars['Datetime']['input'];
+};
+
+/** Represents an update to a `Block`. Fields that are set will be updated. */
+export type BlockPatch = {
+ chainNum?: InputMaybe;
+ data?: InputMaybe;
+ height?: InputMaybe;
+ time?: InputMaybe;
+};
+
+/** A connection to a list of `Block` values. */
+export type BlocksConnection = {
+ __typename?: 'BlocksConnection';
+ /** A list of edges which contains the `Block` and cursor to aid in pagination. */
+ edges: Array;
+ /** A list of `Block` objects. */
+ nodes: Array>;
+ /** Information to aid in pagination. */
+ pageInfo: PageInfo;
+ /** The count of *all* `Block` you could get from the connection. */
+ totalCount: Scalars['Int']['output'];
+};
+
+/** A `Block` edge in the connection. */
+export type BlocksEdge = {
+ __typename?: 'BlocksEdge';
+ /** A cursor for use in pagination. */
+ cursor?: Maybe;
+ /** The `Block` at the end of the edge. */
+ node?: Maybe;
+};
+
+/** Methods to use when ordering `Block`. */
+export enum BlocksOrderBy {
+ ChainNumAsc = 'CHAIN_NUM_ASC',
+ ChainNumDesc = 'CHAIN_NUM_DESC',
+ DataAsc = 'DATA_ASC',
+ DataDesc = 'DATA_DESC',
+ HeightAsc = 'HEIGHT_ASC',
+ HeightDesc = 'HEIGHT_DESC',
+ Natural = 'NATURAL',
+ PrimaryKeyAsc = 'PRIMARY_KEY_ASC',
+ PrimaryKeyDesc = 'PRIMARY_KEY_DESC',
+ TimeAsc = 'TIME_ASC',
+ TimeDesc = 'TIME_DESC'
+}
+
+export type Chain = Node & {
+ __typename?: 'Chain';
+ /** Reads and enables pagination through a set of `Block`. */
+ blocksByChainNum: BlocksConnection;
+ chainId: Scalars['String']['output'];
+ /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */
+ nodeId: Scalars['ID']['output'];
+ num: Scalars['Int']['output'];
+};
+
+
+export type ChainBlocksByChainNumArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ condition?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+ offset?: InputMaybe;
+ orderBy?: InputMaybe>;
+};
+
+/** A condition to be used against `Chain` object types. All fields are tested for equality and combined with a logical ‘and.’ */
+export type ChainCondition = {
+ /** Checks for equality with the object’s `chainId` field. */
+ chainId?: InputMaybe;
+ /** Checks for equality with the object’s `num` field. */
+ num?: InputMaybe;
+};
+
+/** An input for mutations affecting `Chain` */
+export type ChainInput = {
+ chainId: Scalars['String']['input'];
+ num?: InputMaybe;
+};
+
+/** Represents an update to a `Chain`. Fields that are set will be updated. */
+export type ChainPatch = {
+ chainId?: InputMaybe;
+ num?: InputMaybe;
+};
+
+/** A connection to a list of `Chain` values. */
+export type ChainsConnection = {
+ __typename?: 'ChainsConnection';
+ /** A list of edges which contains the `Chain` and cursor to aid in pagination. */
+ edges: Array;
+ /** A list of `Chain` objects. */
+ nodes: Array>;
+ /** Information to aid in pagination. */
+ pageInfo: PageInfo;
+ /** The count of *all* `Chain` you could get from the connection. */
+ totalCount: Scalars['Int']['output'];
+};
+
+/** A `Chain` edge in the connection. */
+export type ChainsEdge = {
+ __typename?: 'ChainsEdge';
+ /** A cursor for use in pagination. */
+ cursor?: Maybe;
+ /** The `Chain` at the end of the edge. */
+ node?: Maybe;
+};
+
+/** Methods to use when ordering `Chain`. */
+export enum ChainsOrderBy {
+ ChainIdAsc = 'CHAIN_ID_ASC',
+ ChainIdDesc = 'CHAIN_ID_DESC',
+ Natural = 'NATURAL',
+ NumAsc = 'NUM_ASC',
+ NumDesc = 'NUM_DESC',
+ PrimaryKeyAsc = 'PRIMARY_KEY_ASC',
+ PrimaryKeyDesc = 'PRIMARY_KEY_DESC'
+}
+
+/** All input for the create `Block` mutation. */
+export type CreateBlockInput = {
+ /** The `Block` to be created by this mutation. */
+ block: BlockInput;
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+};
+
+/** The output of our create `Block` mutation. */
+export type CreateBlockPayload = {
+ __typename?: 'CreateBlockPayload';
+ /** The `Block` that was created by this mutation. */
+ block?: Maybe;
+ /** An edge for our `Block`. May be used by Relay 1. */
+ blockEdge?: Maybe;
+ /** Reads a single `Chain` that is related to this `Block`. */
+ chainByChainNum?: Maybe;
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+};
+
+
+/** The output of our create `Block` mutation. */
+export type CreateBlockPayloadBlockEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the create `Chain` mutation. */
+export type CreateChainInput = {
+ /** The `Chain` to be created by this mutation. */
+ chain: ChainInput;
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+};
+
+/** The output of our create `Chain` mutation. */
+export type CreateChainPayload = {
+ __typename?: 'CreateChainPayload';
+ /** The `Chain` that was created by this mutation. */
+ chain?: Maybe;
+ /** An edge for our `Chain`. May be used by Relay 1. */
+ chainEdge?: Maybe;
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+};
+
+
+/** The output of our create `Chain` mutation. */
+export type CreateChainPayloadChainEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the create `MsgEventAttr` mutation. */
+export type CreateMsgEventAttrInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ /** The `MsgEventAttr` to be created by this mutation. */
+ msgEventAttr: MsgEventAttrInput;
+};
+
+/** The output of our create `MsgEventAttr` mutation. */
+export type CreateMsgEventAttrPayload = {
+ __typename?: 'CreateMsgEventAttrPayload';
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ /** Reads a single `Msg` that is related to this `MsgEventAttr`. */
+ msgByChainNumAndBlockHeightAndTxIdxAndMsgIdx?: Maybe;
+ /** The `MsgEventAttr` that was created by this mutation. */
+ msgEventAttr?: Maybe;
+ /** An edge for our `MsgEventAttr`. May be used by Relay 1. */
+ msgEventAttrEdge?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+};
+
+
+/** The output of our create `MsgEventAttr` mutation. */
+export type CreateMsgEventAttrPayloadMsgEventAttrEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the create `MsgEvent` mutation. */
+export type CreateMsgEventInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ /** The `MsgEvent` to be created by this mutation. */
+ msgEvent: MsgEventInput;
+};
+
+/** The output of our create `MsgEvent` mutation. */
+export type CreateMsgEventPayload = {
+ __typename?: 'CreateMsgEventPayload';
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ /** Reads a single `Msg` that is related to this `MsgEvent`. */
+ msgByChainNumAndBlockHeightAndTxIdxAndMsgIdx?: Maybe;
+ /** The `MsgEvent` that was created by this mutation. */
+ msgEvent?: Maybe;
+ /** An edge for our `MsgEvent`. May be used by Relay 1. */
+ msgEventEdge?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+};
+
+
+/** The output of our create `MsgEvent` mutation. */
+export type CreateMsgEventPayloadMsgEventEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the create `Msg` mutation. */
+export type CreateMsgInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ /** The `Msg` to be created by this mutation. */
+ msg: MsgInput;
+};
+
+/** The output of our create `Msg` mutation. */
+export type CreateMsgPayload = {
+ __typename?: 'CreateMsgPayload';
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ /** The `Msg` that was created by this mutation. */
+ msg?: Maybe;
+ /** An edge for our `Msg`. May be used by Relay 1. */
+ msgEdge?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+ /** Reads a single `Tx` that is related to this `Msg`. */
+ txByChainNumAndBlockHeightAndTxIdx?: Maybe;
+};
+
+
+/** The output of our create `Msg` mutation. */
+export type CreateMsgPayloadMsgEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the create `Proposal` mutation. */
+export type CreateProposalInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ /** The `Proposal` to be created by this mutation. */
+ proposal: ProposalInput;
+};
+
+/** The output of our create `Proposal` mutation. */
+export type CreateProposalPayload = {
+ __typename?: 'CreateProposalPayload';
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ /** Reads a single `MsgEvent` that is related to this `Proposal`. */
+ msgEventByChainNumAndBlockHeightAndTxIdxAndMsgIdxAndType?: Maybe;
+ /** The `Proposal` that was created by this mutation. */
+ proposal?: Maybe;
+ /** An edge for our `Proposal`. May be used by Relay 1. */
+ proposalEdge?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+};
+
+
+/** The output of our create `Proposal` mutation. */
+export type CreateProposalPayloadProposalEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the create `Retirement` mutation. */
+export type CreateRetirementInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ /** The `Retirement` to be created by this mutation. */
+ retirement: RetirementInput;
+};
+
+/** The output of our create `Retirement` mutation. */
+export type CreateRetirementPayload = {
+ __typename?: 'CreateRetirementPayload';
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ /** Reads a single `MsgEvent` that is related to this `Retirement`. */
+ msgEventByChainNumAndBlockHeightAndTxIdxAndMsgIdxAndType?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+ /** The `Retirement` that was created by this mutation. */
+ retirement?: Maybe;
+ /** An edge for our `Retirement`. May be used by Relay 1. */
+ retirementEdge?: Maybe;
+};
+
+
+/** The output of our create `Retirement` mutation. */
+export type CreateRetirementPayloadRetirementEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the create `Tx` mutation. */
+export type CreateTxInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ /** The `Tx` to be created by this mutation. */
+ tx: TxInput;
+};
+
+/** The output of our create `Tx` mutation. */
+export type CreateTxPayload = {
+ __typename?: 'CreateTxPayload';
+ /** Reads a single `Block` that is related to this `Tx`. */
+ blockByChainNumAndBlockHeight?: Maybe;
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+ /** The `Tx` that was created by this mutation. */
+ tx?: Maybe;
+ /** An edge for our `Tx`. May be used by Relay 1. */
+ txEdge?: Maybe;
+};
+
+
+/** The output of our create `Tx` mutation. */
+export type CreateTxPayloadTxEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the `deleteBlockByChainNumAndHeight` mutation. */
+export type DeleteBlockByChainNumAndHeightInput = {
+ chainNum: Scalars['Int']['input'];
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ height: Scalars['BigInt']['input'];
+};
+
+/** All input for the `deleteBlock` mutation. */
+export type DeleteBlockInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ /** The globally unique `ID` which will identify a single `Block` to be deleted. */
+ nodeId: Scalars['ID']['input'];
+};
+
+/** The output of our delete `Block` mutation. */
+export type DeleteBlockPayload = {
+ __typename?: 'DeleteBlockPayload';
+ /** The `Block` that was deleted by this mutation. */
+ block?: Maybe;
+ /** An edge for our `Block`. May be used by Relay 1. */
+ blockEdge?: Maybe;
+ /** Reads a single `Chain` that is related to this `Block`. */
+ chainByChainNum?: Maybe;
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ deletedBlockId?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+};
+
+
+/** The output of our delete `Block` mutation. */
+export type DeleteBlockPayloadBlockEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the `deleteChainByChainId` mutation. */
+export type DeleteChainByChainIdInput = {
+ chainId: Scalars['String']['input'];
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+};
+
+/** All input for the `deleteChainByNum` mutation. */
+export type DeleteChainByNumInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ num: Scalars['Int']['input'];
+};
+
+/** All input for the `deleteChain` mutation. */
+export type DeleteChainInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ /** The globally unique `ID` which will identify a single `Chain` to be deleted. */
+ nodeId: Scalars['ID']['input'];
+};
+
+/** The output of our delete `Chain` mutation. */
+export type DeleteChainPayload = {
+ __typename?: 'DeleteChainPayload';
+ /** The `Chain` that was deleted by this mutation. */
+ chain?: Maybe;
+ /** An edge for our `Chain`. May be used by Relay 1. */
+ chainEdge?: Maybe;
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ deletedChainId?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+};
+
+
+/** The output of our delete `Chain` mutation. */
+export type DeleteChainPayloadChainEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the `deleteMsgByChainNumAndBlockHeightAndTxIdxAndMsgIdx` mutation. */
+export type DeleteMsgByChainNumAndBlockHeightAndTxIdxAndMsgIdxInput = {
+ blockHeight: Scalars['BigInt']['input'];
+ chainNum: Scalars['Int']['input'];
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ msgIdx: Scalars['Int']['input'];
+ txIdx: Scalars['Int']['input'];
+};
+
+/** All input for the `deleteMsgEventAttrByChainNumAndBlockHeightAndTxIdxAndMsgIdxAndTypeAndKeyAndValueHash` mutation. */
+export type DeleteMsgEventAttrByChainNumAndBlockHeightAndTxIdxAndMsgIdxAndTypeAndKeyAndValueHashInput = {
+ blockHeight: Scalars['BigInt']['input'];
+ chainNum: Scalars['Int']['input'];
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ key: Scalars['String']['input'];
+ msgIdx: Scalars['Int']['input'];
+ txIdx: Scalars['Int']['input'];
+ type: Scalars['String']['input'];
+ valueHash: Scalars['String']['input'];
+};
+
+/** All input for the `deleteMsgEventAttr` mutation. */
+export type DeleteMsgEventAttrInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ /** The globally unique `ID` which will identify a single `MsgEventAttr` to be deleted. */
+ nodeId: Scalars['ID']['input'];
+};
+
+/** The output of our delete `MsgEventAttr` mutation. */
+export type DeleteMsgEventAttrPayload = {
+ __typename?: 'DeleteMsgEventAttrPayload';
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ deletedMsgEventAttrId?: Maybe;
+ /** Reads a single `Msg` that is related to this `MsgEventAttr`. */
+ msgByChainNumAndBlockHeightAndTxIdxAndMsgIdx?: Maybe;
+ /** The `MsgEventAttr` that was deleted by this mutation. */
+ msgEventAttr?: Maybe;
+ /** An edge for our `MsgEventAttr`. May be used by Relay 1. */
+ msgEventAttrEdge?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+};
+
+
+/** The output of our delete `MsgEventAttr` mutation. */
+export type DeleteMsgEventAttrPayloadMsgEventAttrEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the `deleteMsgEventByChainNumAndBlockHeightAndTxIdxAndMsgIdxAndType` mutation. */
+export type DeleteMsgEventByChainNumAndBlockHeightAndTxIdxAndMsgIdxAndTypeInput = {
+ blockHeight: Scalars['BigInt']['input'];
+ chainNum: Scalars['Int']['input'];
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ msgIdx: Scalars['Int']['input'];
+ txIdx: Scalars['Int']['input'];
+ type: Scalars['String']['input'];
+};
+
+/** All input for the `deleteMsgEvent` mutation. */
+export type DeleteMsgEventInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ /** The globally unique `ID` which will identify a single `MsgEvent` to be deleted. */
+ nodeId: Scalars['ID']['input'];
+};
+
+/** The output of our delete `MsgEvent` mutation. */
+export type DeleteMsgEventPayload = {
+ __typename?: 'DeleteMsgEventPayload';
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ deletedMsgEventId?: Maybe;
+ /** Reads a single `Msg` that is related to this `MsgEvent`. */
+ msgByChainNumAndBlockHeightAndTxIdxAndMsgIdx?: Maybe;
+ /** The `MsgEvent` that was deleted by this mutation. */
+ msgEvent?: Maybe;
+ /** An edge for our `MsgEvent`. May be used by Relay 1. */
+ msgEventEdge?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+};
+
+
+/** The output of our delete `MsgEvent` mutation. */
+export type DeleteMsgEventPayloadMsgEventEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the `deleteMsg` mutation. */
+export type DeleteMsgInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ /** The globally unique `ID` which will identify a single `Msg` to be deleted. */
+ nodeId: Scalars['ID']['input'];
+};
+
+/** The output of our delete `Msg` mutation. */
+export type DeleteMsgPayload = {
+ __typename?: 'DeleteMsgPayload';
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ deletedMsgId?: Maybe;
+ /** The `Msg` that was deleted by this mutation. */
+ msg?: Maybe;
+ /** An edge for our `Msg`. May be used by Relay 1. */
+ msgEdge?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+ /** Reads a single `Tx` that is related to this `Msg`. */
+ txByChainNumAndBlockHeightAndTxIdx?: Maybe;
+};
+
+
+/** The output of our delete `Msg` mutation. */
+export type DeleteMsgPayloadMsgEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the `deleteProposalByChainNumAndBlockHeightAndTxIdxAndMsgIdx` mutation. */
+export type DeleteProposalByChainNumAndBlockHeightAndTxIdxAndMsgIdxInput = {
+ blockHeight: Scalars['BigInt']['input'];
+ chainNum: Scalars['Int']['input'];
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ msgIdx: Scalars['Int']['input'];
+ txIdx: Scalars['Int']['input'];
+};
+
+/** All input for the `deleteProposal` mutation. */
+export type DeleteProposalInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ /** The globally unique `ID` which will identify a single `Proposal` to be deleted. */
+ nodeId: Scalars['ID']['input'];
+};
+
+/** The output of our delete `Proposal` mutation. */
+export type DeleteProposalPayload = {
+ __typename?: 'DeleteProposalPayload';
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ deletedProposalId?: Maybe;
+ /** Reads a single `MsgEvent` that is related to this `Proposal`. */
+ msgEventByChainNumAndBlockHeightAndTxIdxAndMsgIdxAndType?: Maybe;
+ /** The `Proposal` that was deleted by this mutation. */
+ proposal?: Maybe;
+ /** An edge for our `Proposal`. May be used by Relay 1. */
+ proposalEdge?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+};
+
+
+/** The output of our delete `Proposal` mutation. */
+export type DeleteProposalPayloadProposalEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the `deleteRetirementByChainNumAndBlockHeightAndTxIdxAndMsgIdx` mutation. */
+export type DeleteRetirementByChainNumAndBlockHeightAndTxIdxAndMsgIdxInput = {
+ blockHeight: Scalars['BigInt']['input'];
+ chainNum: Scalars['Int']['input'];
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ msgIdx: Scalars['Int']['input'];
+ txIdx: Scalars['Int']['input'];
+};
+
+/** All input for the `deleteRetirement` mutation. */
+export type DeleteRetirementInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ /** The globally unique `ID` which will identify a single `Retirement` to be deleted. */
+ nodeId: Scalars['ID']['input'];
+};
+
+/** The output of our delete `Retirement` mutation. */
+export type DeleteRetirementPayload = {
+ __typename?: 'DeleteRetirementPayload';
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ deletedRetirementId?: Maybe;
+ /** Reads a single `MsgEvent` that is related to this `Retirement`. */
+ msgEventByChainNumAndBlockHeightAndTxIdxAndMsgIdxAndType?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+ /** The `Retirement` that was deleted by this mutation. */
+ retirement?: Maybe;
+ /** An edge for our `Retirement`. May be used by Relay 1. */
+ retirementEdge?: Maybe;
+};
+
+
+/** The output of our delete `Retirement` mutation. */
+export type DeleteRetirementPayloadRetirementEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+/** All input for the `deleteTxByChainNumAndBlockHeightAndTxIdx` mutation. */
+export type DeleteTxByChainNumAndBlockHeightAndTxIdxInput = {
+ blockHeight: Scalars['BigInt']['input'];
+ chainNum: Scalars['Int']['input'];
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ txIdx: Scalars['Int']['input'];
+};
+
+/** All input for the `deleteTxByHash` mutation. */
+export type DeleteTxByHashInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ hash: Scalars['String']['input'];
+};
+
+/** All input for the `deleteTx` mutation. */
+export type DeleteTxInput = {
+ /**
+ * An arbitrary string value with no semantic meaning. Will be included in the
+ * payload verbatim. May be used to track mutations by the client.
+ */
+ clientMutationId?: InputMaybe;
+ /** The globally unique `ID` which will identify a single `Tx` to be deleted. */
+ nodeId: Scalars['ID']['input'];
+};
+
+/** The output of our delete `Tx` mutation. */
+export type DeleteTxPayload = {
+ __typename?: 'DeleteTxPayload';
+ /** Reads a single `Block` that is related to this `Tx`. */
+ blockByChainNumAndBlockHeight?: Maybe;
+ /**
+ * The exact same `clientMutationId` that was provided in the mutation input,
+ * unchanged and unused. May be used by a client to track mutations.
+ */
+ clientMutationId?: Maybe;
+ deletedTxId?: Maybe;
+ /** Our root query field type. Allows us to run any query from our mutation payload. */
+ query?: Maybe;
+ /** The `Tx` that was deleted by this mutation. */
+ tx?: Maybe;
+ /** An edge for our `Tx`. May be used by Relay 1. */
+ txEdge?: Maybe;
+};
+
+
+/** The output of our delete `Tx` mutation. */
+export type DeleteTxPayloadTxEdgeArgs = {
+ orderBy?: InputMaybe>;
+};
+
+export type Msg = Node & {
+ __typename?: 'Msg';
+ blockHeight: Scalars['BigInt']['output'];
+ chainNum: Scalars['Int']['output'];
+ data: Scalars['JSON']['output'];
+ /** Reads and enables pagination through a set of `MsgEventAttr`. */
+ msgEventAttrsByChainNumAndBlockHeightAndTxIdxAndMsgIdx: MsgEventAttrsConnection;
+ /** Reads and enables pagination through a set of `MsgEvent`. */
+ msgEventsByChainNumAndBlockHeightAndTxIdxAndMsgIdx: MsgEventsConnection;
+ msgIdx: Scalars['Int']['output'];
+ /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */
+ nodeId: Scalars['ID']['output'];
+ /** Reads a single `Tx` that is related to this `Msg`. */
+ txByChainNumAndBlockHeightAndTxIdx?: Maybe;
+ txIdx: Scalars['Int']['output'];
+};
+
+
+export type MsgMsgEventAttrsByChainNumAndBlockHeightAndTxIdxAndMsgIdxArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ condition?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+ offset?: InputMaybe;
+ orderBy?: InputMaybe>;
+};
+
+
+export type MsgMsgEventsByChainNumAndBlockHeightAndTxIdxAndMsgIdxArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ condition?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+ offset?: InputMaybe;
+ orderBy?: InputMaybe>;
+};
+
+/** A condition to be used against `Msg` object types. All fields are tested for equality and combined with a logical ‘and.’ */
+export type MsgCondition = {
+ /** Checks for equality with the object’s `blockHeight` field. */
+ blockHeight?: InputMaybe;
+ /** Checks for equality with the object’s `chainNum` field. */
+ chainNum?: InputMaybe;
+ /** Checks for equality with the object’s `data` field. */
+ data?: InputMaybe;
+ /** Checks for equality with the object’s `msgIdx` field. */
+ msgIdx?: InputMaybe;
+ /** Checks for equality with the object’s `txIdx` field. */
+ txIdx?: InputMaybe;
+};
+
+export type MsgEvent = Node & {
+ __typename?: 'MsgEvent';
+ blockHeight: Scalars['BigInt']['output'];
+ chainNum: Scalars['Int']['output'];
+ /** Reads a single `Msg` that is related to this `MsgEvent`. */
+ msgByChainNumAndBlockHeightAndTxIdxAndMsgIdx?: Maybe;
+ msgIdx: Scalars['Int']['output'];
+ /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */
+ nodeId: Scalars['ID']['output'];
+ /** Reads and enables pagination through a set of `Proposal`. */
+ proposalsByChainNumAndBlockHeightAndTxIdxAndMsgIdxAndType: ProposalsConnection;
+ /** Reads and enables pagination through a set of `Retirement`. */
+ retirementsByChainNumAndBlockHeightAndTxIdxAndMsgIdxAndType: RetirementsConnection;
+ txIdx: Scalars['Int']['output'];
+ type: Scalars['String']['output'];
+};
+
+
+export type MsgEventProposalsByChainNumAndBlockHeightAndTxIdxAndMsgIdxAndTypeArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ condition?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+ offset?: InputMaybe;
+ orderBy?: InputMaybe>;
+};
+
+
+export type MsgEventRetirementsByChainNumAndBlockHeightAndTxIdxAndMsgIdxAndTypeArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ condition?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+ offset?: InputMaybe;
+ orderBy?: InputMaybe>;
+};
+
+export type MsgEventAttr = Node & {
+ __typename?: 'MsgEventAttr';
+ blockHeight: Scalars['BigInt']['output'];
+ chainNum: Scalars['Int']['output'];
+ key: Scalars['String']['output'];
+ /** Reads a single `Msg` that is related to this `MsgEventAttr`. */
+ msgByChainNumAndBlockHeightAndTxIdxAndMsgIdx?: Maybe;
+ msgIdx: Scalars['Int']['output'];
+ /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */
+ nodeId: Scalars['ID']['output'];
+ txIdx: Scalars['Int']['output'];
+ type: Scalars['String']['output'];
+ value: Scalars['String']['output'];
+ valueHash: Scalars['String']['output'];
+};
+
+/**
+ * A condition to be used against `MsgEventAttr` object types. All fields are
+ * tested for equality and combined with a logical ‘and.’
+ */
+export type MsgEventAttrCondition = {
+ /** Checks for equality with the object’s `blockHeight` field. */
+ blockHeight?: InputMaybe;
+ /** Checks for equality with the object’s `chainNum` field. */
+ chainNum?: InputMaybe;
+ /** Checks for equality with the object’s `key` field. */
+ key?: InputMaybe;
+ /** Checks for equality with the object’s `msgIdx` field. */
+ msgIdx?: InputMaybe;
+ /** Checks for equality with the object’s `txIdx` field. */
+ txIdx?: InputMaybe;
+ /** Checks for equality with the object’s `type` field. */
+ type?: InputMaybe;
+ /** Checks for equality with the object’s `value` field. */
+ value?: InputMaybe;
+ /** Checks for equality with the object’s `valueHash` field. */
+ valueHash?: InputMaybe;
+};
+
+/** An input for mutations affecting `MsgEventAttr` */
+export type MsgEventAttrInput = {
+ blockHeight: Scalars['BigInt']['input'];
+ chainNum: Scalars['Int']['input'];
+ key: Scalars['String']['input'];
+ msgIdx: Scalars['Int']['input'];
+ txIdx: Scalars['Int']['input'];
+ type: Scalars['String']['input'];
+ value: Scalars['String']['input'];
+ valueHash: Scalars['String']['input'];
+};
+
+/** Represents an update to a `MsgEventAttr`. Fields that are set will be updated. */
+export type MsgEventAttrPatch = {
+ blockHeight?: InputMaybe;
+ chainNum?: InputMaybe;
+ key?: InputMaybe;
+ msgIdx?: InputMaybe