@mysten/graphql-transportThis package provides a SuiTransport that enables SuiClient to make requests using the RPC 2.0
(GraphQL) API instead of the JSON RPC API.
npm install --save @mysten/graphql-transport
import { SuiClientGraphQLTransport } from '@mysten/graphql-transport';
import { getFullnodeUrl, SuiClient } from '@mysten/sui/client';
const client = new SuiClient({
transport: new SuiClientGraphQLTransport({
url: 'https://sui-testnet.mystenlabs.com/graphql',
// When specified, the transport will fallback to JSON RPC for unsupported method and parameters
fallbackFullNodeUrl: getFullnodeUrl('testnet'),
}),
});
The following methods are currently unsupported in SuiClientGraphQLTransport, and will either error,
or fallback to the JSON RPC API if a fallbackFullNodeUrl is provided:
subscribeTransactionsubscribeEventscallgetNetworkMetricsgetMoveCallMetricsgetAddressMetricsgetEpochsdryRunTransactionBlockdevInspectTransactionBlockexecuteTransactionBlockSome supported methods in SuiClientGraphQLTransport do not support the full set of parameters
available in the JSON RPC API.
If an unsupported parameter is used, the request will error, or fallback to JSON RPC API if a
fallbackFullNodeUrl is provided.
getOwnedObjects:
MatchAll, MatchAny, MatchNone, and Version filtersqueryEvents:
MoveEventField, Module, TimeRange, All, Any, And, and Or filtersqueryTransactionBlocks, getTransactionBlock, and multiGetTransactionBlocks
messageVersion, eventsDigest, sharedObjects, unwrapped, wrapped, and
unwrappedThenDeleted in effectsid for eventsgetStakes and getStakesByIds
validatorAddressgetLatestSuiSystemState
stakingPoolMappingsId, inactivePoolsId, pendingActiveValidatorsId,
validatorCandidatesIdreportRecords on validatorsgetCurrentEpoch
reportRecords on validatorsqueryEvents
id for eventsgetCheckpoint and getCheckpoints
checkpointCommitmentsgetCurrentEpoch
epochTotalTransactionsgetDynamicFields
objectId, digest and version available for DynamicObject but not DynamicFieldSome may require multiple requests to properly resolve:
getDynamicFieldObject requires 2 requestsqueryTransactionBlocks, getTransactionBlock, and multiGetTransactionBlocks
objectChanges, balanceChanges, dependencies
and eventsgetNormalizedMoveModule and getNormalizedMoveModulesByPage
friends, functions, and structsgetCheckpoint and getCheckpoints,
transactionBlocks and validatorsgetLatestSuiSystemState, getCurrentEpoch, getValidatorsApy and getCommitteeInfo:
validatorsPage sizes and limits for paginated methods are based on the defaults and limits of the GraphQL API, so page sizes and limits may be different than those returned by the JSON RPC API