@mysten/sui
Version:
Sui TypeScript API(Work in Progress)
1,288 lines (1,168 loc) • 236 kB
text/typescript
// Copyright (c) Mysten Labs, Inc.
// SPDX-License-Identifier: Apache-2.0
/* eslint-disable */
import { DocumentTypeDecoration } from '@graphql-typed-document-node/core';
export type Maybe<T> = T | null;
export type InputMaybe<T> = Maybe<T>;
export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };
export type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };
export type Incremental<T> = 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; }
/** String containing Base64-encoded binary data. */
Base64: { input: any; output: any; }
/** String representation of an arbitrary width, possibly signed integer. */
BigInt: { input: any; output: any; }
/** ISO-8601 Date and Time: RFC3339 in UTC with format: YYYY-MM-DDTHH:MM:SS.mmmZ. Note that the milliseconds part is optional, and it may be omitted if its value is 0. */
DateTime: { input: any; output: any; }
/** Arbitrary JSON data. */
JSON: { input: any; output: any; }
/**
* The contents of a Move Value, corresponding to the following recursive type:
*
* type MoveData =
* { Address: SuiAddress }
* | { UID: SuiAddress }
* | { ID: SuiAddress }
* | { Bool: bool }
* | { Number: BigInt }
* | { String: string }
* | { Vector: [MoveData] }
* | { Option: MoveData? }
* | { Struct: [{ name: string , value: MoveData }] }
* | { Variant: {
* name: string,
* fields: [{ name: string, value: MoveData }],
* }
*/
MoveData: { input: any; output: any; }
/**
* The shape of a concrete Move Type (a type with all its type parameters instantiated with concrete types), corresponding to the following recursive type:
*
* type MoveTypeLayout =
* "address"
* | "bool"
* | "u8" | "u16" | ... | "u256"
* | { vector: MoveTypeLayout }
* | {
* struct: {
* type: string,
* fields: [{ name: string, layout: MoveTypeLayout }],
* }
* }
* | { enum: [{
* type: string,
* variants: [{
* name: string,
* fields: [{ name: string, layout: MoveTypeLayout }],
* }]
* }]
* }
*/
MoveTypeLayout: { input: any; output: any; }
/**
* The signature of a concrete Move Type (a type with all its type parameters instantiated with concrete types, that contains no references), corresponding to the following recursive type:
*
* type MoveTypeSignature =
* "address"
* | "bool"
* | "u8" | "u16" | ... | "u256"
* | { vector: MoveTypeSignature }
* | {
* datatype: {
* package: string,
* module: string,
* type: string,
* typeParameters: [MoveTypeSignature],
* }
* }
*/
MoveTypeSignature: { input: any; output: any; }
/**
* The shape of an abstract Move Type (a type that can contain free type parameters, and can optionally be taken by reference), corresponding to the following recursive type:
*
* type OpenMoveTypeSignature = {
* ref: ("&" | "&mut")?,
* body: OpenMoveTypeSignatureBody,
* }
*
* type OpenMoveTypeSignatureBody =
* "address"
* | "bool"
* | "u8" | "u16" | ... | "u256"
* | { vector: OpenMoveTypeSignatureBody }
* | {
* datatype {
* package: string,
* module: string,
* type: string,
* typeParameters: [OpenMoveTypeSignatureBody]
* }
* }
* | { typeParameter: number }
*/
OpenMoveTypeSignature: { input: any; output: any; }
/** String containing 32B hex-encoded address, with a leading "0x". Leading zeroes can be omitted on input but will always appear in outputs (SuiAddress in output is guaranteed to be 66 characters long). */
SuiAddress: { input: any; output: any; }
/**
* An unsigned integer that can hold values up to 2^53 - 1. This can be treated similarly to `Int`,
* but it is guaranteed to be non-negative, and it may be larger than 2^32 - 1.
*/
UInt53: { input: any; output: any; }
};
export type ActiveJwk = {
__typename?: 'ActiveJwk';
/** The JWK algorithm parameter, (RFC 7517, Section 4.4). */
alg: Scalars['String']['output'];
/** The JWK RSA public exponent, (RFC 7517, Section 9.3). */
e: Scalars['String']['output'];
/** The most recent epoch in which the JWK was validated. */
epoch?: Maybe<Epoch>;
/** The string (Issuing Authority) that identifies the OIDC provider. */
iss: Scalars['String']['output'];
/** The string (Key ID) that identifies the JWK among a set of JWKs, (RFC 7517, Section 4.5). */
kid: Scalars['String']['output'];
/** The JWK key type parameter, (RFC 7517, Section 4.1). */
kty: Scalars['String']['output'];
/** The JWK RSA modulus, (RFC 7517, Section 9.3). */
n: Scalars['String']['output'];
};
export type ActiveJwkConnection = {
__typename?: 'ActiveJwkConnection';
/** A list of edges. */
edges: Array<ActiveJwkEdge>;
/** A list of nodes. */
nodes: Array<ActiveJwk>;
/** Information to aid in pagination. */
pageInfo: PageInfo;
};
/** An edge in a connection. */
export type ActiveJwkEdge = {
__typename?: 'ActiveJwkEdge';
/** A cursor for use in pagination */
cursor: Scalars['String']['output'];
/** The item at the end of the edge */
node: ActiveJwk;
};
/** The 32-byte address that is an account address (corresponding to a public key). */
export type Address = IOwner & {
__typename?: 'Address';
address: Scalars['SuiAddress']['output'];
/**
* Total balance of all coins with marker type owned by this address. If type is not supplied,
* it defaults to `0x2::sui::SUI`.
*/
balance?: Maybe<Balance>;
/** The balances of all coin types owned by this address. */
balances: BalanceConnection;
/**
* The coin objects for this address.
*
* `type` is a filter on the coin's type parameter, defaulting to `0x2::sui::SUI`.
*/
coins: CoinConnection;
/** The domain explicitly configured as the default domain pointing to this address. */
defaultSuinsName?: Maybe<Scalars['String']['output']>;
/** Objects owned by this address, optionally `filter`-ed. */
objects: MoveObjectConnection;
/** The `0x3::staking_pool::StakedSui` objects owned by this address. */
stakedSuis: StakedSuiConnection;
/**
* The SuinsRegistration NFTs owned by this address. These grant the owner the capability to
* manage the associated domain.
*/
suinsRegistrations: SuinsRegistrationConnection;
/**
* Similar behavior to the `transactionBlocks` in Query but supporting the additional
* `AddressTransactionBlockRelationship` filter, which defaults to `SENT`.
*
* `scanLimit` restricts the number of candidate transactions scanned when gathering a page of
* results. It is required for queries that apply more than two complex filters (on function,
* kind, sender, recipient, input object, changed object, or ids), and can be at most
* `serviceConfig.maxScanLimit`.
*
* When the scan limit is reached the page will be returned even if it has fewer than `first`
* results when paginating forward (`last` when paginating backwards). If there are more
* transactions to scan, `pageInfo.hasNextPage` (or `pageInfo.hasPreviousPage`) will be set to
* `true`, and `PageInfo.endCursor` (or `PageInfo.startCursor`) will be set to the last
* transaction that was scanned as opposed to the last (or first) transaction in the page.
*
* Requesting the next (or previous) page after this cursor will resume the search, scanning
* the next `scanLimit` many transactions in the direction of pagination, and so on until all
* transactions in the scanning range have been visited.
*
* By default, the scanning range includes all transactions known to GraphQL, but it can be
* restricted by the `after` and `before` cursors, and the `beforeCheckpoint`,
* `afterCheckpoint` and `atCheckpoint` filters.
*/
transactionBlocks: TransactionBlockConnection;
};
/** The 32-byte address that is an account address (corresponding to a public key). */
export type AddressBalanceArgs = {
type?: InputMaybe<Scalars['String']['input']>;
};
/** The 32-byte address that is an account address (corresponding to a public key). */
export type AddressBalancesArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/** The 32-byte address that is an account address (corresponding to a public key). */
export type AddressCoinsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
type?: InputMaybe<Scalars['String']['input']>;
};
/** The 32-byte address that is an account address (corresponding to a public key). */
export type AddressDefaultSuinsNameArgs = {
format?: InputMaybe<DomainFormat>;
};
/** The 32-byte address that is an account address (corresponding to a public key). */
export type AddressObjectsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
filter?: InputMaybe<ObjectFilter>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/** The 32-byte address that is an account address (corresponding to a public key). */
export type AddressStakedSuisArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/** The 32-byte address that is an account address (corresponding to a public key). */
export type AddressSuinsRegistrationsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/** The 32-byte address that is an account address (corresponding to a public key). */
export type AddressTransactionBlocksArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
filter?: InputMaybe<TransactionBlockFilter>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
relation?: InputMaybe<AddressTransactionBlockRelationship>;
scanLimit?: InputMaybe<Scalars['Int']['input']>;
};
export type AddressConnection = {
__typename?: 'AddressConnection';
/** A list of edges. */
edges: Array<AddressEdge>;
/** A list of nodes. */
nodes: Array<Address>;
/** Information to aid in pagination. */
pageInfo: PageInfo;
};
/** An edge in a connection. */
export type AddressEdge = {
__typename?: 'AddressEdge';
/** A cursor for use in pagination */
cursor: Scalars['String']['output'];
/** The item at the end of the edge */
node: Address;
};
/**
* An address-owned object is owned by a specific 32-byte address that is
* either an account address (derived from a particular signature scheme) or
* an object ID. An address-owned object is accessible only to its owner and no others.
*/
export type AddressOwner = {
__typename?: 'AddressOwner';
owner?: Maybe<Owner>;
};
/** The possible relationship types for a transaction block: sent, or received. */
export enum AddressTransactionBlockRelationship {
/**
* Transactions that this address was involved in, either as the sender, sponsor, or as the
* owner of some object that was created, modified or transfered.
*/
Affected = 'AFFECTED',
/** Transactions this address has sent. */
Sent = 'SENT'
}
/** An Authenticator represents the access control rules for a ConsensusV2 object. */
export type Authenticator = Address;
/** System transaction for creating the on-chain state used by zkLogin. */
export type AuthenticatorStateCreateTransaction = {
__typename?: 'AuthenticatorStateCreateTransaction';
/** A workaround to define an empty variant of a GraphQL union. */
_?: Maybe<Scalars['Boolean']['output']>;
};
export type AuthenticatorStateExpireTransaction = {
__typename?: 'AuthenticatorStateExpireTransaction';
/** The initial version that the AuthenticatorStateUpdate was shared at. */
authenticatorObjInitialSharedVersion: Scalars['UInt53']['output'];
/** Expire JWKs that have a lower epoch than this. */
minEpoch?: Maybe<Epoch>;
};
/** System transaction for updating the on-chain state used by zkLogin. */
export type AuthenticatorStateUpdateTransaction = {
__typename?: 'AuthenticatorStateUpdateTransaction';
/** The initial version of the authenticator object that it was shared at. */
authenticatorObjInitialSharedVersion: Scalars['UInt53']['output'];
/** Epoch of the authenticator state update transaction. */
epoch?: Maybe<Epoch>;
/** Newly active JWKs (JSON Web Keys). */
newActiveJwks: ActiveJwkConnection;
/** Consensus round of the authenticator state update. */
round: Scalars['UInt53']['output'];
};
/** System transaction for updating the on-chain state used by zkLogin. */
export type AuthenticatorStateUpdateTransactionNewActiveJwksArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/** Range of checkpoints that the RPC is guaranteed to produce a consistent response for. */
export type AvailableRange = {
__typename?: 'AvailableRange';
first?: Maybe<Checkpoint>;
last?: Maybe<Checkpoint>;
};
/** The total balance for a particular coin type. */
export type Balance = {
__typename?: 'Balance';
/** How many coins of this type constitute the balance */
coinObjectCount?: Maybe<Scalars['UInt53']['output']>;
/** Coin type for the balance, such as 0x2::sui::SUI */
coinType: MoveType;
/** Total balance across all coin objects of the coin type */
totalBalance?: Maybe<Scalars['BigInt']['output']>;
};
/** Effects to the balance (sum of coin values per coin type) owned by an address or object. */
export type BalanceChange = {
__typename?: 'BalanceChange';
/** The signed balance change. */
amount?: Maybe<Scalars['BigInt']['output']>;
/** The inner type of the coin whose balance has changed (e.g. `0x2::sui::SUI`). */
coinType?: Maybe<MoveType>;
/** The address or object whose balance has changed. */
owner?: Maybe<Owner>;
};
export type BalanceChangeConnection = {
__typename?: 'BalanceChangeConnection';
/** A list of edges. */
edges: Array<BalanceChangeEdge>;
/** A list of nodes. */
nodes: Array<BalanceChange>;
/** Information to aid in pagination. */
pageInfo: PageInfo;
};
/** An edge in a connection. */
export type BalanceChangeEdge = {
__typename?: 'BalanceChangeEdge';
/** A cursor for use in pagination */
cursor: Scalars['String']['output'];
/** The item at the end of the edge */
node: BalanceChange;
};
export type BalanceConnection = {
__typename?: 'BalanceConnection';
/** A list of edges. */
edges: Array<BalanceEdge>;
/** A list of nodes. */
nodes: Array<Balance>;
/** Information to aid in pagination. */
pageInfo: PageInfo;
};
/** An edge in a connection. */
export type BalanceEdge = {
__typename?: 'BalanceEdge';
/** A cursor for use in pagination */
cursor: Scalars['String']['output'];
/** The item at the end of the edge */
node: Balance;
};
export type BridgeCommitteeInitTransaction = {
__typename?: 'BridgeCommitteeInitTransaction';
bridgeObjInitialSharedVersion: Scalars['UInt53']['output'];
};
export type BridgeStateCreateTransaction = {
__typename?: 'BridgeStateCreateTransaction';
chainId: Scalars['String']['output'];
};
/**
* A system transaction that updates epoch information on-chain (increments the current epoch).
* Executed by the system once per epoch, without using gas. Epoch change transactions cannot be
* submitted by users, because validators will refuse to sign them.
*
* This transaction kind is deprecated in favour of `EndOfEpochTransaction`.
*/
export type ChangeEpochTransaction = {
__typename?: 'ChangeEpochTransaction';
/** The total amount of gas charged for computation during the previous epoch (in MIST). */
computationCharge: Scalars['BigInt']['output'];
/** The next (to become) epoch. */
epoch?: Maybe<Epoch>;
/**
* The total gas retained from storage fees, that will not be returned by storage rebates when
* the relevant objects are cleaned up (in MIST).
*/
nonRefundableStorageFee: Scalars['BigInt']['output'];
/** The protocol version in effect in the new epoch. */
protocolVersion: Scalars['UInt53']['output'];
/** Time at which the next epoch will start. */
startTimestamp: Scalars['DateTime']['output'];
/** The total amount of gas charged for storage during the previous epoch (in MIST). */
storageCharge: Scalars['BigInt']['output'];
/** The SUI returned to transaction senders for cleaning up objects (in MIST). */
storageRebate: Scalars['BigInt']['output'];
/**
* System packages (specifically framework and move stdlib) that are written before the new
* epoch starts, to upgrade them on-chain. Validators write these packages out when running the
* transaction.
*/
systemPackages: MovePackageConnection;
};
/**
* A system transaction that updates epoch information on-chain (increments the current epoch).
* Executed by the system once per epoch, without using gas. Epoch change transactions cannot be
* submitted by users, because validators will refuse to sign them.
*
* This transaction kind is deprecated in favour of `EndOfEpochTransaction`.
*/
export type ChangeEpochTransactionSystemPackagesArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/**
* Checkpoints contain finalized transactions and are used for node synchronization
* and global transaction ordering.
*/
export type Checkpoint = {
__typename?: 'Checkpoint';
/** The Base64 serialized BCS bytes of CheckpointSummary for this checkpoint. */
bcs?: Maybe<Scalars['Base64']['output']>;
/**
* A 32-byte hash that uniquely identifies the checkpoint contents, encoded in Base58. This
* hash can be used to verify checkpoint contents by checking signatures against the committee,
* Hashing contents to match digest, and checking that the previous checkpoint digest matches.
*/
digest: Scalars['String']['output'];
/** The epoch this checkpoint is part of. */
epoch?: Maybe<Epoch>;
/** The total number of transaction blocks in the network by the end of this checkpoint. */
networkTotalTransactions?: Maybe<Scalars['UInt53']['output']>;
/** The digest of the checkpoint at the previous sequence number. */
previousCheckpointDigest?: Maybe<Scalars['String']['output']>;
/**
* The computation cost, storage cost, storage rebate, and non-refundable storage fee
* accumulated during this epoch, up to and including this checkpoint. These values increase
* monotonically across checkpoints in the same epoch, and reset on epoch boundaries.
*/
rollingGasSummary?: Maybe<GasCostSummary>;
/**
* This checkpoint's position in the total order of finalized checkpoints, agreed upon by
* consensus.
*/
sequenceNumber: Scalars['UInt53']['output'];
/**
* The timestamp at which the checkpoint is agreed to have happened according to consensus.
* Transactions that access time in this checkpoint will observe this timestamp.
*/
timestamp: Scalars['DateTime']['output'];
/**
* Transactions in this checkpoint.
*
* `scanLimit` restricts the number of candidate transactions scanned when gathering a page of
* results. It is required for queries that apply more than two complex filters (on function,
* kind, sender, recipient, input object, changed object, or ids), and can be at most
* `serviceConfig.maxScanLimit`.
*
* When the scan limit is reached the page will be returned even if it has fewer than `first`
* results when paginating forward (`last` when paginating backwards). If there are more
* transactions to scan, `pageInfo.hasNextPage` (or `pageInfo.hasPreviousPage`) will be set to
* `true`, and `PageInfo.endCursor` (or `PageInfo.startCursor`) will be set to the last
* transaction that was scanned as opposed to the last (or first) transaction in the page.
*
* Requesting the next (or previous) page after this cursor will resume the search, scanning
* the next `scanLimit` many transactions in the direction of pagination, and so on until all
* transactions in the scanning range have been visited.
*
* By default, the scanning range consists of all transactions in this checkpoint.
*/
transactionBlocks: TransactionBlockConnection;
/**
* This is an aggregation of signatures from a quorum of validators for the checkpoint
* proposal.
*/
validatorSignatures: Scalars['Base64']['output'];
};
/**
* Checkpoints contain finalized transactions and are used for node synchronization
* and global transaction ordering.
*/
export type CheckpointTransactionBlocksArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
filter?: InputMaybe<TransactionBlockFilter>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
scanLimit?: InputMaybe<Scalars['Int']['input']>;
};
export type CheckpointConnection = {
__typename?: 'CheckpointConnection';
/** A list of edges. */
edges: Array<CheckpointEdge>;
/** A list of nodes. */
nodes: Array<Checkpoint>;
/** Information to aid in pagination. */
pageInfo: PageInfo;
};
/** An edge in a connection. */
export type CheckpointEdge = {
__typename?: 'CheckpointEdge';
/** A cursor for use in pagination */
cursor: Scalars['String']['output'];
/** The item at the end of the edge */
node: Checkpoint;
};
/** Filter either by the digest, or the sequence number, or neither, to get the latest checkpoint. */
export type CheckpointId = {
digest?: InputMaybe<Scalars['String']['input']>;
sequenceNumber?: InputMaybe<Scalars['UInt53']['input']>;
};
/** Some 0x2::coin::Coin Move object. */
export type Coin = IMoveObject & IObject & IOwner & {
__typename?: 'Coin';
address: Scalars['SuiAddress']['output'];
/**
* Total balance of all coins with marker type owned by this object. If type is not supplied,
* it defaults to `0x2::sui::SUI`.
*/
balance?: Maybe<Balance>;
/** The balances of all coin types owned by this object. */
balances: BalanceConnection;
/** The Base64-encoded BCS serialization of the object's content. */
bcs?: Maybe<Scalars['Base64']['output']>;
/** Balance of this coin object. */
coinBalance?: Maybe<Scalars['BigInt']['output']>;
/**
* The coin objects for this object.
*
* `type` is a filter on the coin's type parameter, defaulting to `0x2::sui::SUI`.
*/
coins: CoinConnection;
/**
* Displays the contents of the Move object in a JSON string and through GraphQL types. Also
* provides the flat representation of the type signature, and the BCS of the corresponding
* data.
*/
contents?: Maybe<MoveValue>;
/** The domain explicitly configured as the default domain pointing to this object. */
defaultSuinsName?: Maybe<Scalars['String']['output']>;
/** 32-byte hash that identifies the object's contents, encoded as a Base58 string. */
digest?: Maybe<Scalars['String']['output']>;
/**
* The set of named templates defined on-chain for the type of this object, to be handled
* off-chain. The server substitutes data from the object into these templates to generate a
* display string per template.
*/
display?: Maybe<Array<DisplayEntry>>;
/**
* Access a dynamic field on an object using its name. Names are arbitrary Move values whose
* type have `copy`, `drop`, and `store`, and are specified using their type, and their BCS
* contents, Base64 encoded.
*
* Dynamic fields on wrapped objects can be accessed by using the same API under the Owner
* type.
*/
dynamicField?: Maybe<DynamicField>;
/**
* The dynamic fields and dynamic object fields on an object.
*
* Dynamic fields on wrapped objects can be accessed by using the same API under the Owner
* type.
*/
dynamicFields: DynamicFieldConnection;
/**
* Access a dynamic object field on an object using its name. Names are arbitrary Move values
* whose type have `copy`, `drop`, and `store`, and are specified using their type, and their
* BCS contents, Base64 encoded. The value of a dynamic object field can also be accessed
* off-chain directly via its address (e.g. using `Query.object`).
*
* Dynamic fields on wrapped objects can be accessed by using the same API under the Owner
* type.
*/
dynamicObjectField?: Maybe<DynamicField>;
/**
* Determines whether a transaction can transfer this object, using the TransferObjects
* transaction command or `sui::transfer::public_transfer`, both of which require the object to
* have the `key` and `store` abilities.
*/
hasPublicTransfer: Scalars['Boolean']['output'];
/** Objects owned by this object, optionally `filter`-ed. */
objects: MoveObjectConnection;
/** The owner type of this object: Immutable, Shared, Parent, Address */
owner?: Maybe<ObjectOwner>;
/** The transaction block that created this version of the object. */
previousTransactionBlock?: Maybe<TransactionBlock>;
/**
* The transaction blocks that sent objects to this object.
*
* `scanLimit` restricts the number of candidate transactions scanned when gathering a page of
* results. It is required for queries that apply more than two complex filters (on function,
* kind, sender, recipient, input object, changed object, or ids), and can be at most
* `serviceConfig.maxScanLimit`.
*
* When the scan limit is reached the page will be returned even if it has fewer than `first`
* results when paginating forward (`last` when paginating backwards). If there are more
* transactions to scan, `pageInfo.hasNextPage` (or `pageInfo.hasPreviousPage`) will be set to
* `true`, and `PageInfo.endCursor` (or `PageInfo.startCursor`) will be set to the last
* transaction that was scanned as opposed to the last (or first) transaction in the page.
*
* Requesting the next (or previous) page after this cursor will resume the search, scanning
* the next `scanLimit` many transactions in the direction of pagination, and so on until all
* transactions in the scanning range have been visited.
*
* By default, the scanning range includes all transactions known to GraphQL, but it can be
* restricted by the `after` and `before` cursors, and the `beforeCheckpoint`,
* `afterCheckpoint` and `atCheckpoint` filters.
*/
receivedTransactionBlocks: TransactionBlockConnection;
/** The `0x3::staking_pool::StakedSui` objects owned by this object. */
stakedSuis: StakedSuiConnection;
/**
* The current status of the object as read from the off-chain store. The possible states are:
* NOT_INDEXED, the object is loaded from serialized data, such as the contents of a genesis or
* system package upgrade transaction. LIVE, the version returned is the most recent for the
* object, and it is not deleted or wrapped at that version. HISTORICAL, the object was
* referenced at a specific version or checkpoint, so is fetched from historical tables and may
* not be the latest version of the object. WRAPPED_OR_DELETED, the object is deleted or
* wrapped and only partial information can be loaded."
*/
status: ObjectKind;
/**
* The amount of SUI we would rebate if this object gets deleted or mutated. This number is
* recalculated based on the present storage gas price.
*/
storageRebate?: Maybe<Scalars['BigInt']['output']>;
/**
* The SuinsRegistration NFTs owned by this object. These grant the owner the capability to
* manage the associated domain.
*/
suinsRegistrations: SuinsRegistrationConnection;
version: Scalars['UInt53']['output'];
};
/** Some 0x2::coin::Coin Move object. */
export type CoinBalanceArgs = {
type?: InputMaybe<Scalars['String']['input']>;
};
/** Some 0x2::coin::Coin Move object. */
export type CoinBalancesArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/** Some 0x2::coin::Coin Move object. */
export type CoinCoinsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
type?: InputMaybe<Scalars['String']['input']>;
};
/** Some 0x2::coin::Coin Move object. */
export type CoinDefaultSuinsNameArgs = {
format?: InputMaybe<DomainFormat>;
};
/** Some 0x2::coin::Coin Move object. */
export type CoinDynamicFieldArgs = {
name: DynamicFieldName;
};
/** Some 0x2::coin::Coin Move object. */
export type CoinDynamicFieldsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/** Some 0x2::coin::Coin Move object. */
export type CoinDynamicObjectFieldArgs = {
name: DynamicFieldName;
};
/** Some 0x2::coin::Coin Move object. */
export type CoinObjectsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
filter?: InputMaybe<ObjectFilter>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/** Some 0x2::coin::Coin Move object. */
export type CoinReceivedTransactionBlocksArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
filter?: InputMaybe<TransactionBlockFilter>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
scanLimit?: InputMaybe<Scalars['Int']['input']>;
};
/** Some 0x2::coin::Coin Move object. */
export type CoinStakedSuisArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/** Some 0x2::coin::Coin Move object. */
export type CoinSuinsRegistrationsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
export type CoinConnection = {
__typename?: 'CoinConnection';
/** A list of edges. */
edges: Array<CoinEdge>;
/** A list of nodes. */
nodes: Array<Coin>;
/** Information to aid in pagination. */
pageInfo: PageInfo;
};
export type CoinDenyListStateCreateTransaction = {
__typename?: 'CoinDenyListStateCreateTransaction';
/** A workaround to define an empty variant of a GraphQL union. */
_?: Maybe<Scalars['Boolean']['output']>;
};
/** An edge in a connection. */
export type CoinEdge = {
__typename?: 'CoinEdge';
/** A cursor for use in pagination */
cursor: Scalars['String']['output'];
/** The item at the end of the edge */
node: Coin;
};
/** The metadata for a coin type. */
export type CoinMetadata = IMoveObject & IObject & IOwner & {
__typename?: 'CoinMetadata';
address: Scalars['SuiAddress']['output'];
/**
* Total balance of all coins with marker type owned by this object. If type is not supplied,
* it defaults to `0x2::sui::SUI`.
*/
balance?: Maybe<Balance>;
/** The balances of all coin types owned by this object. */
balances: BalanceConnection;
/** The Base64-encoded BCS serialization of the object's content. */
bcs?: Maybe<Scalars['Base64']['output']>;
/**
* The coin objects for this object.
*
* `type` is a filter on the coin's type parameter, defaulting to `0x2::sui::SUI`.
*/
coins: CoinConnection;
/**
* Displays the contents of the Move object in a JSON string and through GraphQL types. Also
* provides the flat representation of the type signature, and the BCS of the corresponding
* data.
*/
contents?: Maybe<MoveValue>;
/** The number of decimal places used to represent the token. */
decimals?: Maybe<Scalars['Int']['output']>;
/** The domain explicitly configured as the default domain pointing to this object. */
defaultSuinsName?: Maybe<Scalars['String']['output']>;
/** Optional description of the token, provided by the creator of the token. */
description?: Maybe<Scalars['String']['output']>;
/** 32-byte hash that identifies the object's contents, encoded as a Base58 string. */
digest?: Maybe<Scalars['String']['output']>;
/**
* The set of named templates defined on-chain for the type of this object, to be handled
* off-chain. The server substitutes data from the object into these templates to generate a
* display string per template.
*/
display?: Maybe<Array<DisplayEntry>>;
/**
* Access a dynamic field on an object using its name. Names are arbitrary Move values whose
* type have `copy`, `drop`, and `store`, and are specified using their type, and their BCS
* contents, Base64 encoded.
*
* Dynamic fields on wrapped objects can be accessed by using the same API under the Owner
* type.
*/
dynamicField?: Maybe<DynamicField>;
/**
* The dynamic fields and dynamic object fields on an object.
*
* Dynamic fields on wrapped objects can be accessed by using the same API under the Owner
* type.
*/
dynamicFields: DynamicFieldConnection;
/**
* Access a dynamic object field on an object using its name. Names are arbitrary Move values
* whose type have `copy`, `drop`, and `store`, and are specified using their type, and their
* BCS contents, Base64 encoded. The value of a dynamic object field can also be accessed
* off-chain directly via its address (e.g. using `Query.object`).
*
* Dynamic fields on wrapped objects can be accessed by using the same API under the Owner
* type.
*/
dynamicObjectField?: Maybe<DynamicField>;
/**
* Determines whether a transaction can transfer this object, using the TransferObjects
* transaction command or `sui::transfer::public_transfer`, both of which require the object to
* have the `key` and `store` abilities.
*/
hasPublicTransfer: Scalars['Boolean']['output'];
iconUrl?: Maybe<Scalars['String']['output']>;
/** Full, official name of the token. */
name?: Maybe<Scalars['String']['output']>;
/** Objects owned by this object, optionally `filter`-ed. */
objects: MoveObjectConnection;
/** The owner type of this object: Immutable, Shared, Parent, Address */
owner?: Maybe<ObjectOwner>;
/** The transaction block that created this version of the object. */
previousTransactionBlock?: Maybe<TransactionBlock>;
/**
* The transaction blocks that sent objects to this object.
*
* `scanLimit` restricts the number of candidate transactions scanned when gathering a page of
* results. It is required for queries that apply more than two complex filters (on function,
* kind, sender, recipient, input object, changed object, or ids), and can be at most
* `serviceConfig.maxScanLimit`.
*
* When the scan limit is reached the page will be returned even if it has fewer than `first`
* results when paginating forward (`last` when paginating backwards). If there are more
* transactions to scan, `pageInfo.hasNextPage` (or `pageInfo.hasPreviousPage`) will be set to
* `true`, and `PageInfo.endCursor` (or `PageInfo.startCursor`) will be set to the last
* transaction that was scanned as opposed to the last (or first) transaction in the page.
*
* Requesting the next (or previous) page after this cursor will resume the search, scanning
* the next `scanLimit` many transactions in the direction of pagination, and so on until all
* transactions in the scanning range have been visited.
*
* By default, the scanning range includes all transactions known to GraphQL, but it can be
* restricted by the `after` and `before` cursors, and the `beforeCheckpoint`,
* `afterCheckpoint` and `atCheckpoint` filters.
*/
receivedTransactionBlocks: TransactionBlockConnection;
/** The `0x3::staking_pool::StakedSui` objects owned by this object. */
stakedSuis: StakedSuiConnection;
/**
* The current status of the object as read from the off-chain store. The possible states are:
* NOT_INDEXED, the object is loaded from serialized data, such as the contents of a genesis or
* system package upgrade transaction. LIVE, the version returned is the most recent for the
* object, and it is not deleted or wrapped at that version. HISTORICAL, the object was
* referenced at a specific version or checkpoint, so is fetched from historical tables and may
* not be the latest version of the object. WRAPPED_OR_DELETED, the object is deleted or
* wrapped and only partial information can be loaded."
*/
status: ObjectKind;
/**
* The amount of SUI we would rebate if this object gets deleted or mutated. This number is
* recalculated based on the present storage gas price.
*/
storageRebate?: Maybe<Scalars['BigInt']['output']>;
/**
* The SuinsRegistration NFTs owned by this object. These grant the owner the capability to
* manage the associated domain.
*/
suinsRegistrations: SuinsRegistrationConnection;
/** The overall quantity of tokens that will be issued. */
supply?: Maybe<Scalars['BigInt']['output']>;
/** The token's identifying abbreviation. */
symbol?: Maybe<Scalars['String']['output']>;
version: Scalars['UInt53']['output'];
};
/** The metadata for a coin type. */
export type CoinMetadataBalanceArgs = {
type?: InputMaybe<Scalars['String']['input']>;
};
/** The metadata for a coin type. */
export type CoinMetadataBalancesArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/** The metadata for a coin type. */
export type CoinMetadataCoinsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
type?: InputMaybe<Scalars['String']['input']>;
};
/** The metadata for a coin type. */
export type CoinMetadataDefaultSuinsNameArgs = {
format?: InputMaybe<DomainFormat>;
};
/** The metadata for a coin type. */
export type CoinMetadataDynamicFieldArgs = {
name: DynamicFieldName;
};
/** The metadata for a coin type. */
export type CoinMetadataDynamicFieldsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/** The metadata for a coin type. */
export type CoinMetadataDynamicObjectFieldArgs = {
name: DynamicFieldName;
};
/** The metadata for a coin type. */
export type CoinMetadataObjectsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
filter?: InputMaybe<ObjectFilter>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/** The metadata for a coin type. */
export type CoinMetadataReceivedTransactionBlocksArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
filter?: InputMaybe<TransactionBlockFilter>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
scanLimit?: InputMaybe<Scalars['Int']['input']>;
};
/** The metadata for a coin type. */
export type CoinMetadataStakedSuisArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/** The metadata for a coin type. */
export type CoinMetadataSuinsRegistrationsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
/**
* System transaction that runs at the beginning of a checkpoint, and is responsible for setting
* the current value of the clock, based on the timestamp from consensus.
*/
export type ConsensusCommitPrologueTransaction = {
__typename?: 'ConsensusCommitPrologueTransaction';
/** Unix timestamp from consensus. */
commitTimestamp: Scalars['DateTime']['output'];
/**
* Digest of consensus output, encoded as a Base58 string (only available from V2 of the
* transaction).
*/
consensusCommitDigest?: Maybe<Scalars['String']['output']>;
/** Epoch of the commit prologue transaction. */
epoch?: Maybe<Epoch>;
/** Consensus round of the commit. */
round: Scalars['UInt53']['output'];
};
/**
* A ConsensusV2 object is an object that is automatically versioned by the consensus protocol
* and allows different authentication modes based on the chosen authenticator.
* (Initially, only single-owner authentication is supported.)
*/
export type ConsensusV2 = {
__typename?: 'ConsensusV2';
authenticator?: Maybe<Authenticator>;
startVersion: Scalars['UInt53']['output'];
};
export type DependencyConnection = {
__typename?: 'DependencyConnection';
/** A list of edges. */
edges: Array<DependencyEdge>;
/** A list of nodes. */
nodes: Array<TransactionBlock>;
/** Information to aid in pagination. */
pageInfo: PageInfo;
};
/** An edge in a connection. */
export type DependencyEdge = {
__typename?: 'DependencyEdge';
/** A cursor for use in pagination */
cursor: Scalars['String']['output'];
/** The item at the end of the edge */
node?: Maybe<TransactionBlock>;
};
/**
* The set of named templates defined on-chain for the type of this object,
* to be handled off-chain. The server substitutes data from the object
* into these templates to generate a display string per template.
*/
export type DisplayEntry = {
__typename?: 'DisplayEntry';
/** An error string describing why the template could not be rendered. */
error?: Maybe<Scalars['String']['output']>;
/** The identifier for a particular template string of the Display object. */
key: Scalars['String']['output'];
/** The template string for the key with placeholder values substituted. */
value?: Maybe<Scalars['String']['output']>;
};
export enum DomainFormat {
At = 'AT',
Dot = 'DOT'
}
export type DryRunEffect = {
__typename?: 'DryRunEffect';
/** Changes made to arguments that were mutably borrowed by each command in this transaction. */
mutatedReferences?: Maybe<Array<DryRunMutation>>;
/** Return results of each command in this transaction. */
returnValues?: Maybe<Array<DryRunReturn>>;
};
export type DryRunMutation = {
__typename?: 'DryRunMutation';
bcs: Scalars['Base64']['output'];
input: TransactionArgument;
type: MoveType;
};
export type DryRunResult = {
__typename?: 'DryRunResult';
/** The error that occurred during dry run execution, if any. */
error?: Maybe<Scalars['String']['output']>;
/**
* The intermediate results for each command of the dry run execution, including
* contents of mutated references and return values.
*/
results?: Maybe<Array<DryRunEffect>>;
/** The transaction block representing the dry run execution. */
transaction?: Maybe<TransactionBlock>;
};
export type DryRunReturn = {
__typename?: 'DryRunReturn';
bcs: Scalars['Base64']['output'];
type: MoveType;
};
/**
* Dynamic fields are heterogeneous fields that can be added or removed at runtime,
* and can have arbitrary user-assigned names. There are two sub-types of dynamic
* fields:
*
* 1) Dynamic Fields can store any value that has the `store` ability, however an object
* stored in this kind of field will be considered wrapped and will not be accessible
* directly via its ID by external tools (explorers, wallets, etc) accessing storage.
* 2) Dynamic Object Fields values must be Sui objects (have the `key` and `store`
* abilities, and id: UID as the first field), but will still be directly accessible off-chain
* via their object ID after being attached.
*/
export type DynamicField = {
__typename?: 'DynamicField';
/**
* The string type, data, and serialized value of the DynamicField's 'name' field.
* This field is used to uniquely identify a child of the parent object.
*/
name?: Maybe<MoveValue>;
/**
* The returned dynamic field is an object if its return type is `MoveObject`,
* in which case it is also accessible off-chain via its address. Its contents
* will be from the latest version that is at most equal to its parent object's
* version
*/
value?: Maybe<DynamicFieldValue>;
};
export type DynamicFieldConnection = {
__typename?: 'DynamicFieldConnection';
/** A list of edges. */
edges: Array<DynamicFieldEdge>;
/** A list of nodes. */
nodes: Array<DynamicField>;
/** Information to aid in pagination. */
pageInfo: PageInfo;
};
/** An edge in a connection. */
export type DynamicFieldEdge = {
__typename?: 'DynamicFieldEdge';
/** A cursor for use in pagination */
cursor: Scalars['String']['output'];
/** The item at the end of the edge */
node: DynamicField;
};
export type DynamicFieldName = {
/** The Base64 encoded bcs serialization of the DynamicField's 'name' field. */
bcs: Scalars['Base64']['input'];
/**
* The string type of the DynamicField's 'name' field.
* A string representation of a Move primitive like 'u64', or a struct type like '0x2::kiosk::Listing'
*/
type: Scalars['String']['input'];
};
export type DynamicFieldValue = MoveObject | MoveValue;
/**
* System transaction that supersedes `ChangeEpochTransaction` as the new way to run transactions
* at the end of an epoch. Behaves similarly to `ChangeEpochTransaction` but can accommodate other
* optional transactions to run at the end of the epoch.
*/
export type EndOfEpochTransaction = {
__typename?: 'EndOfEpochTransaction';
/** The list of system transactions that are allowed to run at the end of the epoch. */
transactions: EndOfEpochTransactionKindConnection;
};
/**
* System transaction that supersedes `ChangeEpochTransaction` as the new way to run transactions
* at the end of an epoch. Behaves similarly to `ChangeEpochTransaction` but can accommodate other
* optional transactions to run at the end of the epoch.
*/
export type EndOfEpochTransactionTransactionsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
last?: InputMaybe<Scalars['Int']['input']>;
};
export type EndOfEpochTransactionKind = AuthenticatorStateCreateTransaction | AuthenticatorStateExpireTransaction | BridgeCommitteeInitTransaction | BridgeStateCreateTransaction | ChangeEpochTransaction | CoinDenyListStateCreateTransaction | RandomnessStateCreateTransaction | StoreExecutionTimeObservationsTransaction;
export type EndOfEpochTransactionKindConnection = {
__typename?: 'EndOfEpochTransactionKindConnection';
/** A list of edges. */
edges: Array<EndOfEpochTransactionKindEdge>;
/** A list of nodes. */
nodes: Array<EndOfEpochTransactionKind>;
/** Information to aid in pagination. */
pageInfo: PageInfo;
};
/** An edge in a connection. */
export type EndOfEpochTransactionKindEdge = {
__typename?: 'EndOfEpochTransactionKindEdge';
/** A cursor for use in pagination */
cursor: Scalars['String']['output'];
/** The item at the end of the edge */
node: EndOfEpochTransactionKind;
};
/**
* Operation of the Sui network is temporally partitioned into non-overlapping epochs,
* and the network aims to keep epochs roughly the same duration as each other.
* During a particular epoch the following data is fixed:
*
* - the protocol version
* - the reference gas price
* - the set of participating validators
*/
export type Epoch = {
__typename?: 'Epoch';
/** The epoch's corresponding checkpoints. */
checkpoints: CheckpointConnection;
/** The epoch's ending timestamp. */
endTimestamp?: Maybe<Scalars['DateTime']['output']>;
/** The epoch's id as a sequence number that starts at 0 and is incremented by one at every epoch change. */
epochId: Scalars['UInt53']['output'];
/** The storage fees paid for transactions executed during the epoch. */
fundInflow?: Maybe<Scalars['BigInt']['output']>;
/**
* The storage fee rebates paid to users who deleted the data associated with past
* transactions.
*/
fundOutflow?: Maybe<Scalars['BigInt']['output']>;
/**
* The storage fund available in this epoch.
* This fund is used to redistribute storag