UNPKG

@mysten/sui

Version:

Sui TypeScript API(Work in Progress)

272 lines (271 loc) 9.1 kB
import type { Experimental_BaseClient } from './client.js'; export type SuiClientRegistration<T extends Experimental_BaseClient = Experimental_BaseClient, Name extends string = string, Extension = unknown> = { readonly name: Name; readonly register: (client: T) => Extension; } | SelfRegisteringClientExtension<T, Name, Extension>; export interface SelfRegisteringClientExtension<T extends Experimental_BaseClient = Experimental_BaseClient, Name extends string = string, Extension = unknown> { experimental_asClientExtension: () => { readonly name: Name; readonly register: (client: T) => Extension; }; } export type ClientWithExtensions<T, Base extends Experimental_BaseClient = Experimental_BaseClient> = Base & T; export declare namespace Experimental_SuiClientTypes { type Network = 'mainnet' | 'testnet' | 'devnet' | 'localnet' | (string & {}); interface SuiClientOptions { network: Network; } interface CoreClientMethodOptions { signal?: AbortSignal; } /** Object methods */ interface TransportMethods { getObjects: (options: GetObjectsOptions) => Promise<GetObjectsResponse>; getOwnedObjects: (options: GetOwnedObjectsOptions) => Promise<GetOwnedObjectsResponse>; getCoins: (options: GetCoinsOptions) => Promise<GetCoinsResponse>; getDynamicFields: (options: GetDynamicFieldsOptions) => Promise<GetDynamicFieldsResponse>; getDynamicField: (options: GetDynamicFieldOptions) => Promise<GetDynamicFieldResponse>; } interface GetObjectsOptions extends CoreClientMethodOptions { objectIds: string[]; } interface GetObjectOptions extends CoreClientMethodOptions { objectId: string; } interface GetOwnedObjectsOptions extends CoreClientMethodOptions { address: string; limit?: number; cursor?: string | null; type?: string; } interface GetCoinsOptions extends CoreClientMethodOptions { address: string; coinType: string; limit?: number; cursor?: string | null; } interface GetDynamicFieldsOptions extends CoreClientMethodOptions { parentId: string; limit?: number; cursor?: string | null; } interface GetDynamicFieldOptions extends CoreClientMethodOptions { parentId: string; name: DynamicFieldName; } interface GetObjectsResponse { objects: (ObjectResponse | Error)[]; } interface GetObjectResponse { object: ObjectResponse; } interface GetOwnedObjectsResponse { objects: ObjectResponse[]; hasNextPage: boolean; cursor: string | null; } interface GetCoinsResponse { objects: CoinResponse[]; hasNextPage: boolean; cursor: string | null; } interface ObjectResponse { id: string; version: string; digest: string; owner: ObjectOwner; type: string; content: Uint8Array; } interface CoinResponse extends ObjectResponse { balance: string; } interface GetDynamicFieldsResponse { hasNextPage: boolean; cursor: string | null; dynamicFields: { id: string; type: string; name: DynamicFieldName; }[]; } interface GetDynamicFieldResponse { dynamicField: { name: DynamicFieldName; value: DynamicFieldValue; id: string; version: string; digest: string; type: string; }; } interface DynamicFieldName { type: string; bcs: Uint8Array; } interface DynamicFieldValue { type: string; bcs: Uint8Array; } /** Balance methods */ interface TransportMethods { getBalance: (options: GetBalanceOptions) => Promise<GetBalanceResponse>; getAllBalances: (options: GetAllBalancesOptions) => Promise<GetAllBalancesResponse>; } interface GetBalanceOptions extends CoreClientMethodOptions { address: string; coinType: string; } interface CoinBalance { coinType: string; balance: string; } interface GetBalanceResponse { balance: CoinBalance; } interface GetAllBalancesOptions extends CoreClientMethodOptions { address: string; limit?: number; cursor?: string | null; } interface GetAllBalancesResponse { balances: CoinBalance[]; hasNextPage: boolean; cursor: string | null; } /** Transaction methods */ interface TransportMethods { getTransaction: (options: GetTransactionOptions) => Promise<GetTransactionResponse>; executeTransaction: (options: ExecuteTransactionOptions) => Promise<ExecuteTransactionResponse>; dryRunTransaction: (options: DryRunTransactionOptions) => Promise<DryRunTransactionResponse>; } interface TransactionResponse { digest: string; signatures: string[]; effects: TransactionEffects; bcs: Uint8Array; } interface GetTransactionOptions extends CoreClientMethodOptions { digest: string; } interface GetTransactionResponse { transaction: TransactionResponse; } interface ExecuteTransactionOptions extends CoreClientMethodOptions { transaction: Uint8Array; signatures: string[]; } interface DryRunTransactionOptions extends CoreClientMethodOptions { transaction: Uint8Array; } interface DryRunTransactionResponse { transaction: TransactionResponse; } interface ExecuteTransactionResponse { transaction: TransactionResponse; } interface GetReferenceGasPriceOptions extends CoreClientMethodOptions { } interface TransportMethods { getReferenceGasPrice?: (options?: GetReferenceGasPriceOptions) => Promise<GetReferenceGasPriceResponse>; } interface GetReferenceGasPriceResponse { referenceGasPrice: string; } /** ZkLogin methods */ interface VerifyZkLoginSignatureOptions extends CoreClientMethodOptions { bytes: string; signature: string; intentScope: 'TransactionData' | 'PersonalMessage'; author: string; } interface ZkLoginVerifyResponse { success: boolean; errors: string[]; } interface TransportMethods { verifyZkLoginSignature?: (options: VerifyZkLoginSignatureOptions) => Promise<ZkLoginVerifyResponse>; } /** ObjectOwner types */ interface AddressOwner { $kind: 'AddressOwner'; AddressOwner: string; } interface ParentOwner { $kind: 'ObjectOwner'; ObjectOwner: string; } interface SharedOwner { $kind: 'Shared'; Shared: { initialSharedVersion: string; }; } interface ImmutableOwner { $kind: 'Immutable'; Immutable: true; } interface ConsensusV2 { $kind: 'ConsensusV2'; ConsensusV2: { authenticator: ConsensusV2Authenticator; startVersion: string; }; } interface SingleOwnerAuthenticator { $kind: 'SingleOwner'; SingleOwner: string; } type ConsensusV2Authenticator = SingleOwnerAuthenticator; type ObjectOwner = AddressOwner | ParentOwner | SharedOwner | ImmutableOwner | ConsensusV2; /** Effects */ interface TransactionEffects { bcs: Uint8Array | null; digest: string; version: number; status: ExecutionStatus; epoch: string | null; gasUsed: GasCostSummary; transactionDigest: string; gasObject: ChangedObject | null; eventsDigest: string | null; dependencies: string[]; lamportVersion: string | null; changedObjects: ChangedObject[]; unchangedSharedObjects: UnchangedSharedObject[]; auxiliaryDataDigest: string | null; } interface ChangedObject { id: string; inputState: 'Unknown' | 'DoesNotExist' | 'Exists'; inputVersion: string | null; inputDigest: string | null; inputOwner: ObjectOwner | null; outputState: 'Unknown' | 'DoesNotExist' | 'ObjectWrite' | 'PackageWrite'; outputVersion: string | null; outputDigest: string | null; outputOwner: ObjectOwner | null; idOperation: 'Unknown' | 'None' | 'Created' | 'Deleted'; objectType: string | null; } interface GasCostSummary { computationCost: string; storageCost: string; storageRebate: string; nonRefundableStorageFee: string; } type ExecutionStatus = { success: true; error: null; } | { success: false; error: string; }; interface UnchangedSharedObject { kind: 'Unknown' | 'ReadOnlyRoot' | 'MutateDeleted' | 'ReadDeleted' | 'Cancelled' | 'PerEpochConfig'; objectId: string; version: string | null; digest: string | null; objectType: string | null; } }