@mysten/sui
Version:
Sui TypeScript API(Work in Progress)
268 lines (267 loc) • 12.6 kB
TypeScript
import type { Signer } from '../cryptography/index.js';
import { Experimental_BaseClient } from '../experimental/client.js';
import { JSONRpcTransport } from '../experimental/transports/jsonRPC.js';
import type { Experimental_SuiClientTypes, SelfRegisteringClientExtension } from '../experimental/types.js';
import type { Transaction } from '../transactions/index.js';
import type { SuiTransport } from './http-transport.js';
import type { AddressMetrics, AllEpochsAddressMetrics, Checkpoint, CheckpointPage, CoinBalance, CoinMetadata, CoinSupply, CommitteeInfo, DelegatedStake, DevInspectResults, DevInspectTransactionBlockParams, DryRunTransactionBlockParams, DryRunTransactionBlockResponse, DynamicFieldPage, EpochInfo, EpochMetricsPage, EpochPage, ExecuteTransactionBlockParams, GetAllBalancesParams, GetAllCoinsParams, GetBalanceParams, GetCheckpointParams, GetCheckpointsParams, GetCoinMetadataParams, GetCoinsParams, GetCommitteeInfoParams, GetDynamicFieldObjectParams, GetDynamicFieldsParams, GetLatestCheckpointSequenceNumberParams, GetLatestSuiSystemStateParams, GetMoveFunctionArgTypesParams, GetNormalizedMoveFunctionParams, GetNormalizedMoveModuleParams, GetNormalizedMoveModulesByPackageParams, GetNormalizedMoveStructParams, GetObjectParams, GetOwnedObjectsParams, GetProtocolConfigParams, GetReferenceGasPriceParams, GetStakesByIdsParams, GetStakesParams, GetTotalSupplyParams, GetTransactionBlockParams, MoveCallMetrics, MultiGetObjectsParams, MultiGetTransactionBlocksParams, NetworkMetrics, ObjectRead, Order, PaginatedCoins, PaginatedEvents, PaginatedObjectsResponse, PaginatedTransactionResponse, ProtocolConfig, QueryEventsParams, QueryTransactionBlocksParams, ResolvedNameServiceNames, ResolveNameServiceAddressParams, ResolveNameServiceNamesParams, SubscribeEventParams, SubscribeTransactionParams, SuiEvent, SuiMoveFunctionArgType, SuiMoveNormalizedFunction, SuiMoveNormalizedModule, SuiMoveNormalizedModules, SuiMoveNormalizedStruct, SuiObjectResponse, SuiSystemStateSummary, SuiTransactionBlockResponse, TransactionEffects, TryGetPastObjectParams, Unsubscribe, ValidatorsApy, VerifyZkLoginSignatureParams, ZkLoginVerifyResult } from './types/index.js';
export interface PaginationArguments<Cursor> {
/** Optional paging cursor */
cursor?: Cursor;
/** Maximum item returned per page */
limit?: number | null;
}
export interface OrderArguments {
order?: Order | null;
}
/**
* Configuration options for the SuiClient
* You must provide either a `url` or a `transport`
*/
export type SuiClientOptions = NetworkOrTransport & {
network?: Experimental_SuiClientTypes.Network;
};
type NetworkOrTransport = {
url: string;
transport?: never;
} | {
transport: SuiTransport;
url?: never;
};
declare const SUI_CLIENT_BRAND: never;
export declare function isSuiClient(client: unknown): client is SuiClient;
export declare class SuiClient extends Experimental_BaseClient implements SelfRegisteringClientExtension {
[SUI_CLIENT_BRAND]: boolean;
core: JSONRpcTransport;
jsonRpc: this;
protected transport: SuiTransport;
/**
* Establish a connection to a Sui RPC endpoint
*
* @param options configuration options for the API Client
*/
constructor(options: SuiClientOptions);
getRpcApiVersion({ signal }?: {
signal?: AbortSignal;
}): Promise<string | undefined>;
/**
* Get all Coin<`coin_type`> objects owned by an address.
*/
getCoins(input: GetCoinsParams): Promise<PaginatedCoins>;
/**
* Get all Coin objects owned by an address.
*/
getAllCoins(input: GetAllCoinsParams): Promise<PaginatedCoins>;
/**
* Get the total coin balance for one coin type, owned by the address owner.
*/
getBalance(input: GetBalanceParams): Promise<CoinBalance>;
/**
* Get the total coin balance for all coin types, owned by the address owner.
*/
getAllBalances(input: GetAllBalancesParams): Promise<CoinBalance[]>;
/**
* Fetch CoinMetadata for a given coin type
*/
getCoinMetadata(input: GetCoinMetadataParams): Promise<CoinMetadata | null>;
/**
* Fetch total supply for a coin
*/
getTotalSupply(input: GetTotalSupplyParams): Promise<CoinSupply>;
/**
* Invoke any RPC method
* @param method the method to be invoked
* @param args the arguments to be passed to the RPC request
*/
call<T = unknown>(method: string, params: unknown[], { signal }?: {
signal?: AbortSignal;
}): Promise<T>;
/**
* Get Move function argument types like read, write and full access
*/
getMoveFunctionArgTypes(input: GetMoveFunctionArgTypesParams): Promise<SuiMoveFunctionArgType[]>;
/**
* Get a map from module name to
* structured representations of Move modules
*/
getNormalizedMoveModulesByPackage(input: GetNormalizedMoveModulesByPackageParams): Promise<SuiMoveNormalizedModules>;
/**
* Get a structured representation of Move module
*/
getNormalizedMoveModule(input: GetNormalizedMoveModuleParams): Promise<SuiMoveNormalizedModule>;
/**
* Get a structured representation of Move function
*/
getNormalizedMoveFunction(input: GetNormalizedMoveFunctionParams): Promise<SuiMoveNormalizedFunction>;
/**
* Get a structured representation of Move struct
*/
getNormalizedMoveStruct(input: GetNormalizedMoveStructParams): Promise<SuiMoveNormalizedStruct>;
/**
* Get all objects owned by an address
*/
getOwnedObjects(input: GetOwnedObjectsParams): Promise<PaginatedObjectsResponse>;
/**
* Get details about an object
*/
getObject(input: GetObjectParams): Promise<SuiObjectResponse>;
tryGetPastObject(input: TryGetPastObjectParams): Promise<ObjectRead>;
/**
* Batch get details about a list of objects. If any of the object ids are duplicates the call will fail
*/
multiGetObjects(input: MultiGetObjectsParams): Promise<SuiObjectResponse[]>;
/**
* Get transaction blocks for a given query criteria
*/
queryTransactionBlocks(input: QueryTransactionBlocksParams): Promise<PaginatedTransactionResponse>;
getTransactionBlock(input: GetTransactionBlockParams): Promise<SuiTransactionBlockResponse>;
multiGetTransactionBlocks(input: MultiGetTransactionBlocksParams): Promise<SuiTransactionBlockResponse[]>;
executeTransactionBlock({ transactionBlock, signature, options, requestType, signal, }: ExecuteTransactionBlockParams): Promise<SuiTransactionBlockResponse>;
signAndExecuteTransaction({ transaction, signer, ...input }: {
transaction: Uint8Array | Transaction;
signer: Signer;
} & Omit<ExecuteTransactionBlockParams, 'transactionBlock' | 'signature'>): Promise<SuiTransactionBlockResponse>;
/**
* Get total number of transactions
*/
getTotalTransactionBlocks({ signal }?: {
signal?: AbortSignal;
}): Promise<bigint>;
/**
* Getting the reference gas price for the network
*/
getReferenceGasPrice({ signal }?: GetReferenceGasPriceParams): Promise<bigint>;
/**
* Return the delegated stakes for an address
*/
getStakes(input: GetStakesParams): Promise<DelegatedStake[]>;
/**
* Return the delegated stakes queried by id.
*/
getStakesByIds(input: GetStakesByIdsParams): Promise<DelegatedStake[]>;
/**
* Return the latest system state content.
*/
getLatestSuiSystemState({ signal, }?: GetLatestSuiSystemStateParams): Promise<SuiSystemStateSummary>;
/**
* Get events for a given query criteria
*/
queryEvents(input: QueryEventsParams): Promise<PaginatedEvents>;
/**
* Subscribe to get notifications whenever an event matching the filter occurs
*
* @deprecated
*/
subscribeEvent(input: SubscribeEventParams & {
/** function to run when we receive a notification of a new event matching the filter */
onMessage: (event: SuiEvent) => void;
}): Promise<Unsubscribe>;
/**
* @deprecated
*/
subscribeTransaction(input: SubscribeTransactionParams & {
/** function to run when we receive a notification of a new event matching the filter */
onMessage: (event: TransactionEffects) => void;
}): Promise<Unsubscribe>;
/**
* Runs the transaction block in dev-inspect mode. Which allows for nearly any
* transaction (or Move call) with any arguments. Detailed results are
* provided, including both the transaction effects and any return values.
*/
devInspectTransactionBlock(input: DevInspectTransactionBlockParams): Promise<DevInspectResults>;
/**
* Dry run a transaction block and return the result.
*/
dryRunTransactionBlock(input: DryRunTransactionBlockParams): Promise<DryRunTransactionBlockResponse>;
/**
* Return the list of dynamic field objects owned by an object
*/
getDynamicFields(input: GetDynamicFieldsParams): Promise<DynamicFieldPage>;
/**
* Return the dynamic field object information for a specified object
*/
getDynamicFieldObject(input: GetDynamicFieldObjectParams): Promise<SuiObjectResponse>;
/**
* Get the sequence number of the latest checkpoint that has been executed
*/
getLatestCheckpointSequenceNumber({ signal, }?: GetLatestCheckpointSequenceNumberParams): Promise<string>;
/**
* Returns information about a given checkpoint
*/
getCheckpoint(input: GetCheckpointParams): Promise<Checkpoint>;
/**
* Returns historical checkpoints paginated
*/
getCheckpoints(input: PaginationArguments<CheckpointPage['nextCursor']> & GetCheckpointsParams): Promise<CheckpointPage>;
/**
* Return the committee information for the asked epoch
*/
getCommitteeInfo(input?: GetCommitteeInfoParams): Promise<CommitteeInfo>;
getNetworkMetrics({ signal }?: {
signal?: AbortSignal;
}): Promise<NetworkMetrics>;
getAddressMetrics({ signal }?: {
signal?: AbortSignal;
}): Promise<AddressMetrics>;
getEpochMetrics(input?: {
descendingOrder?: boolean;
signal?: AbortSignal;
} & PaginationArguments<EpochMetricsPage['nextCursor']>): Promise<EpochMetricsPage>;
getAllEpochAddressMetrics(input?: {
descendingOrder?: boolean;
signal?: AbortSignal;
}): Promise<AllEpochsAddressMetrics>;
/**
* Return the committee information for the asked epoch
*/
getEpochs(input?: {
descendingOrder?: boolean;
signal?: AbortSignal;
} & PaginationArguments<EpochPage['nextCursor']>): Promise<EpochPage>;
/**
* Returns list of top move calls by usage
*/
getMoveCallMetrics({ signal }?: {
signal?: AbortSignal;
}): Promise<MoveCallMetrics>;
/**
* Return the committee information for the asked epoch
*/
getCurrentEpoch({ signal }?: {
signal?: AbortSignal;
}): Promise<EpochInfo>;
/**
* Return the Validators APYs
*/
getValidatorsApy({ signal }?: {
signal?: AbortSignal;
}): Promise<ValidatorsApy>;
getChainIdentifier({ signal }?: {
signal?: AbortSignal;
}): Promise<string>;
resolveNameServiceAddress(input: ResolveNameServiceAddressParams): Promise<string | null>;
resolveNameServiceNames({ format, ...input }: ResolveNameServiceNamesParams & {
format?: 'at' | 'dot';
}): Promise<ResolvedNameServiceNames>;
getProtocolConfig(input?: GetProtocolConfigParams): Promise<ProtocolConfig>;
verifyZkLoginSignature(input: VerifyZkLoginSignatureParams): Promise<ZkLoginVerifyResult>;
/**
* Wait for a transaction block result to be available over the API.
* This can be used in conjunction with `executeTransactionBlock` to wait for the transaction to
* be available via the API.
* This currently polls the `getTransactionBlock` API to check for the transaction.
*/
waitForTransaction({ signal, timeout, pollInterval, ...input }: {
/** An optional abort signal that can be used to cancel */
signal?: AbortSignal;
/** The amount of time to wait for a transaction block. Defaults to one minute. */
timeout?: number;
/** The amount of time to wait between checks for the transaction block. Defaults to 2 seconds. */
pollInterval?: number;
} & Parameters<SuiClient['getTransactionBlock']>[0]): Promise<SuiTransactionBlockResponse>;
experimental_asClientExtension(this: SuiClient): {
readonly name: "jsonRPC";
readonly register: () => SuiClient;
};
}
export {};