@iota/graphql-transport 0.2.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/cjs/generated/queries.d.ts +348 -7
- package/dist/cjs/generated/queries.js +78 -10
- package/dist/cjs/generated/queries.js.map +2 -2
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mappers/{checkpint.js → checkpoint.js} +7 -7
- package/dist/cjs/mappers/checkpoint.js.map +7 -0
- package/dist/cjs/mappers/transaction-block.d.ts +1 -1
- package/dist/cjs/mappers/transaction-block.js +8 -7
- package/dist/cjs/mappers/transaction-block.js.map +2 -2
- package/dist/cjs/methods.js +100 -27
- package/dist/cjs/methods.js.map +2 -2
- package/dist/esm/generated/queries.d.ts +348 -7
- package/dist/esm/generated/queries.js +78 -10
- package/dist/esm/generated/queries.js.map +2 -2
- package/dist/esm/mappers/{checkpint.js → checkpoint.js} +4 -4
- package/dist/esm/mappers/checkpoint.js.map +7 -0
- package/dist/esm/mappers/transaction-block.d.ts +1 -1
- package/dist/esm/mappers/transaction-block.js +8 -7
- package/dist/esm/mappers/transaction-block.js.map +2 -2
- package/dist/esm/methods.js +99 -26
- package/dist/esm/methods.js.map +2 -2
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -4
- package/dist/cjs/mappers/checkpint.js.map +0 -7
- package/dist/esm/mappers/checkpint.js.map +0 -7
- /package/dist/cjs/mappers/{checkpint.d.ts → checkpoint.d.ts} +0 -0
- /package/dist/esm/mappers/{checkpint.d.ts → checkpoint.d.ts} +0 -0
package/dist/esm/methods.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/methods.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromB64, toB58 } from '@iota/bcs';\nimport type {\n MoveValue,\n ProtocolConfigValue,\n IotaArgument,\n IotaClient,\n IotaMoveNormalizedModule,\n} from '@iota/iota-sdk/client';\nimport { Transaction } from '@iota/iota-sdk/transactions';\nimport { normalizeStructTag, normalizeIotaAddress, parseStructTag } from '@iota/iota-sdk/utils';\n\nimport type {\n ObjectFilter,\n QueryEventsQueryVariables,\n QueryTransactionBlocksQueryVariables,\n Rpc_Checkpoint_FieldsFragment,\n Rpc_Transaction_FieldsFragment,\n} from './generated/queries.js';\nimport {\n DevInspectTransactionBlockDocument,\n DryRunTransactionBlockDocument,\n ExecuteTransactionBlockDocument,\n GetAllBalancesDocument,\n GetBalanceDocument,\n GetChainIdentifierDocument,\n GetCheckpointDocument,\n GetCheckpointsDocument,\n GetCoinMetadataDocument,\n GetCoinsDocument,\n GetCommitteeInfoDocument,\n GetCurrentEpochDocument,\n GetDynamicFieldObjectDocument,\n GetDynamicFieldsDocument,\n GetLatestCheckpointSequenceNumberDocument,\n GetLatestIotaSystemStateDocument,\n GetMoveFunctionArgTypesDocument,\n GetNormalizedMoveFunctionDocument,\n GetNormalizedMoveModuleDocument,\n GetNormalizedMoveModulesByPackageDocument,\n GetNormalizedMoveStructDocument,\n GetObjectDocument,\n GetOwnedObjectsDocument,\n GetProtocolConfigDocument,\n GetReferenceGasPriceDocument,\n GetStakesByIdsDocument,\n GetStakesDocument,\n GetTotalSupplyDocument,\n GetTotalTransactionBlocksDocument,\n GetTransactionBlockDocument,\n GetTypeLayoutDocument,\n GetValidatorsApyDocument,\n MultiGetObjectsDocument,\n MultiGetTransactionBlocksDocument,\n PaginateCheckpointTransactionBlocksDocument,\n PaginateEpochValidatorsDocument,\n PaginateMoveModuleListsDocument,\n PaginateTransactionBlockListsDocument,\n QueryEventsDocument,\n QueryTransactionBlocksDocument,\n TransactionBlockKindInput,\n TryGetPastObjectDocument,\n} from './generated/queries.js';\nimport { mapJsonToBcs } from './mappers/bcs.js';\nimport { mapGraphQLCheckpointToRpcCheckpoint } from './mappers/checkpint.js';\nimport {\n mapNormalizedMoveFunction,\n mapNormalizedMoveModule,\n mapNormalizedMoveStruct,\n moveDataToRpcContent,\n} from './mappers/move.js';\nimport { mapGraphQLMoveObjectToRpcObject, mapGraphQLObjectToRpcObject } from './mappers/object.js';\nimport { mapGraphQLStakeToRpcStake } from './mappers/stakes.js';\nimport { mapGraphQLTransactionBlockToRpcTransactionBlock } from './mappers/transaction-block.js';\nimport { isNumericString, toShortTypeString } from './mappers/util.js';\nimport { mapGraphQlValidatorToRpcValidator } from './mappers/validator.js';\nimport type { IotaClientGraphQLTransport } from './transport.js';\n\ninterface ResponseTypes {\n getRpcApiVersion: {\n info: { version?: string };\n };\n}\n\nexport const RPC_METHODS: {\n [K in keyof IotaClient as IotaClient[K] extends (...args: any[]) => Promise<any>\n ? K\n : never]?: IotaClient[K] extends (...args: any[]) => infer R\n ? (\n transport: IotaClientGraphQLTransport,\n inputs: any[],\n ) => K extends keyof ResponseTypes ? Promise<ResponseTypes[K]> : R\n : never;\n} = {\n async getRpcApiVersion(transport) {\n const res = await transport.graphqlRequest({\n query: 'query { __typename }',\n variables: {},\n });\n\n if (!res.ok) {\n throw new Error('Failed to fetch');\n }\n\n return {\n info: {\n version: res.headers.get('x-iota-rpc-version') ?? undefined,\n },\n };\n },\n\n async getCoins(transport, [owner, coinType, cursor, limit]) {\n const { nodes: coins, pageInfo } = await transport.graphqlQuery(\n {\n query: GetCoinsDocument,\n variables: {\n owner,\n type: coinType,\n cursor: cursor,\n first: limit,\n },\n },\n (data) => data.address?.coins,\n );\n\n return {\n data: coins.map((coin) => ({\n balance: coin.coinBalance,\n coinObjectId: coin.address,\n coinType: toShortTypeString(\n normalizeStructTag(parseStructTag(coin.contents?.type.repr!).typeParams[0]),\n ),\n digest: coin.digest!,\n previousTransaction: coin.previousTransactionBlock?.digest!,\n version: String(coin.version!),\n })),\n nextCursor: pageInfo.endCursor,\n hasNextPage: pageInfo.hasNextPage,\n };\n },\n\n async getAllCoins(transport, inputs) {\n const { nodes: coins, pageInfo } = await transport.graphqlQuery(\n {\n query: GetCoinsDocument,\n variables: {\n owner: inputs[0],\n cursor: inputs[1],\n first: inputs[2],\n },\n },\n (data) => data.address?.coins,\n );\n\n return {\n data: coins.map((coin) => ({\n balance: coin.coinBalance,\n coinObjectId: coin.address,\n coinType: toShortTypeString(\n normalizeStructTag(parseStructTag(coin.contents?.type.repr!).typeParams[0]),\n ),\n digest: coin.digest!,\n previousTransaction: coin.previousTransactionBlock?.digest!,\n version: String(coin.version!),\n })),\n nextCursor: pageInfo.endCursor,\n hasNextPage: pageInfo.hasNextPage,\n };\n },\n\n async getBalance(transport, inputs) {\n const balance = await transport.graphqlQuery(\n {\n query: GetBalanceDocument,\n variables: {\n owner: inputs[0],\n type: inputs[1],\n },\n },\n (data) => data.address?.balance,\n );\n\n return {\n coinType: toShortTypeString(balance.coinType?.repr!),\n coinObjectCount: balance.coinObjectCount!,\n totalBalance: balance.totalBalance,\n };\n },\n\n async getAllBalances(transport, inputs) {\n const balances = await transport.graphqlQuery(\n {\n query: GetAllBalancesDocument,\n variables: {\n owner: inputs[0],\n },\n },\n (data) => data.address?.balances?.nodes,\n );\n\n return balances.map((balance) => ({\n coinType: toShortTypeString(balance.coinType?.repr!),\n coinObjectCount: balance.coinObjectCount!,\n totalBalance: balance.totalBalance,\n }));\n },\n async getCoinMetadata(transport, inputs) {\n const metadata = await transport.graphqlQuery(\n {\n query: GetCoinMetadataDocument,\n variables: {\n coinType: inputs[0],\n },\n },\n (data) => data.coinMetadata,\n );\n\n return {\n decimals: metadata.decimals!,\n name: metadata.name!,\n symbol: metadata.symbol!,\n description: metadata.description!,\n iconUrl: metadata.iconUrl,\n id: metadata.address,\n };\n },\n async getTotalSupply(transport, inputs) {\n const metadata = await transport.graphqlQuery(\n {\n query: GetTotalSupplyDocument,\n variables: {\n coinType: inputs[0],\n },\n },\n (data) => data.coinMetadata,\n );\n\n return {\n value: BigInt(metadata.supply!).toString(),\n };\n },\n async getMoveFunctionArgTypes(transport, [pkg, module, fn]) {\n const moveModule = await transport.graphqlQuery(\n {\n query: GetMoveFunctionArgTypesDocument,\n variables: {\n module: module,\n packageId: pkg,\n function: fn,\n },\n },\n (data) => data.object?.asMovePackage?.module?.function?.parameters,\n );\n\n return moveModule.map((parameter) => {\n if (!parameter.signature.body.datatype) {\n return 'Pure';\n }\n\n return {\n Object:\n parameter.signature.ref === '&'\n ? 'ByImmutableReference'\n : parameter.signature.ref === '&mut'\n ? 'ByMutableReference'\n : 'ByValue',\n };\n });\n },\n async getNormalizedMoveFunction(transport, [pkg, module, fn]) {\n const moveFunction = await transport.graphqlQuery(\n {\n query: GetNormalizedMoveFunctionDocument,\n variables: {\n module: module,\n packageId: pkg,\n function: fn,\n },\n },\n (data) => data.object?.asMovePackage?.module?.function,\n );\n\n return mapNormalizedMoveFunction(moveFunction);\n },\n async getNormalizedMoveModulesByPackage(transport, [pkg]) {\n const movePackage = await transport.graphqlQuery(\n {\n query: GetNormalizedMoveModulesByPackageDocument,\n variables: {\n packageId: pkg,\n },\n },\n (data) => data.object?.asMovePackage,\n );\n\n let hasNextPage = movePackage.modules?.pageInfo.hasNextPage ?? false;\n let cursor = movePackage.modules?.pageInfo.endCursor;\n while (hasNextPage) {\n const page = await transport.graphqlQuery(\n {\n query: GetNormalizedMoveModulesByPackageDocument,\n variables: {\n packageId: pkg,\n cursor,\n },\n },\n (data) => data.object?.asMovePackage,\n );\n\n movePackage.modules?.nodes.push(...(page.modules?.nodes ?? []));\n hasNextPage = page.modules?.pageInfo.hasNextPage ?? false;\n cursor = page.modules?.pageInfo.endCursor;\n }\n\n const address = toShortTypeString(movePackage.address);\n const modules: Record<string, IotaMoveNormalizedModule> = {};\n\n for (const moveModule of movePackage.modules?.nodes ?? []) {\n let hasMoreFriends = moveModule.friends?.pageInfo.hasNextPage ?? false;\n let hasMoreFunctions = moveModule.functions?.pageInfo.hasNextPage ?? false;\n let hasMoreStructs = moveModule.structs?.pageInfo.hasNextPage ?? false;\n let afterFriends = moveModule.friends?.pageInfo.endCursor;\n let afterFunctions = moveModule.functions?.pageInfo.endCursor;\n let afterStructs = moveModule.structs?.pageInfo.endCursor;\n\n while (hasMoreFriends || hasMoreStructs || hasMoreFunctions) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateMoveModuleListsDocument,\n variables: {\n module: moveModule.name,\n packageId: pkg,\n hasMoreFriends,\n hasMoreFunctions,\n hasMoreStructs,\n afterFriends,\n afterFunctions,\n afterStructs,\n },\n },\n (data) => data.object?.asMovePackage?.module,\n );\n\n moveModule.friends.nodes.push(...(page.friends?.nodes ?? []));\n moveModule.functions?.nodes.push(...(page.functions?.nodes ?? []));\n moveModule.structs?.nodes.push(...(page.structs?.nodes ?? []));\n hasMoreFriends = page.friends?.pageInfo.hasNextPage ?? false;\n hasMoreFunctions = page.functions?.pageInfo.hasNextPage ?? false;\n hasMoreStructs = page.structs?.pageInfo.hasNextPage ?? false;\n afterFriends = page.friends?.pageInfo.endCursor;\n afterFunctions = page.functions?.pageInfo.endCursor;\n afterStructs = page.structs?.pageInfo.endCursor;\n }\n }\n\n movePackage.modules?.nodes.forEach((module) => {\n modules[module.name] = mapNormalizedMoveModule(module, address);\n });\n\n return modules;\n },\n async getNormalizedMoveModule(transport, [pkg, module]) {\n const moveModule = await transport.graphqlQuery(\n {\n query: GetNormalizedMoveModuleDocument,\n variables: {\n module,\n packageId: pkg,\n },\n },\n (data) => data.object?.asMovePackage?.module,\n );\n\n let hasMoreFriends = moveModule.friends?.pageInfo.hasNextPage ?? false;\n let hasMoreFunctions = moveModule.functions?.pageInfo.hasNextPage ?? false;\n let hasMoreStructs = moveModule.structs?.pageInfo.hasNextPage ?? false;\n let afterFriends = moveModule.friends?.pageInfo.endCursor;\n let afterFunctions = moveModule.functions?.pageInfo.endCursor;\n let afterStructs = moveModule.structs?.pageInfo.endCursor;\n\n while (hasMoreFriends || hasMoreStructs || hasMoreFunctions) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateMoveModuleListsDocument,\n variables: {\n module,\n packageId: pkg,\n hasMoreFriends,\n hasMoreFunctions,\n hasMoreStructs,\n afterFriends,\n afterFunctions,\n afterStructs,\n },\n },\n (data) => data.object?.asMovePackage?.module,\n );\n\n moveModule.friends.nodes.push(...(page.friends?.nodes ?? []));\n moveModule.functions?.nodes.push(...(page.functions?.nodes ?? []));\n moveModule.structs?.nodes.push(...(page.structs?.nodes ?? []));\n hasMoreFriends = page.friends?.pageInfo.hasNextPage ?? false;\n hasMoreFunctions = page.functions?.pageInfo.hasNextPage ?? false;\n hasMoreStructs = page.structs?.pageInfo.hasNextPage ?? false;\n afterFriends = page.friends?.pageInfo.endCursor;\n afterFunctions = page.functions?.pageInfo.endCursor;\n afterStructs = page.structs?.pageInfo.endCursor;\n }\n\n return mapNormalizedMoveModule(moveModule, normalizeIotaAddress(pkg));\n },\n async getNormalizedMoveStruct(transport, [pkg, module, struct]) {\n const moveStruct = await transport.graphqlQuery(\n {\n query: GetNormalizedMoveStructDocument,\n variables: {\n packageId: pkg,\n module,\n struct,\n },\n },\n (data) => data.object?.asMovePackage?.module?.struct,\n );\n\n return mapNormalizedMoveStruct(moveStruct);\n },\n async getOwnedObjects(transport, [owner, { filter: inputFilter, options }, cursor, limit]) {\n let filter: ObjectFilter | undefined;\n let typeFilter: string | undefined;\n\n if (inputFilter) {\n if ('Package' in inputFilter) {\n typeFilter = inputFilter.Package;\n } else if ('MoveModule' in inputFilter) {\n typeFilter = `${inputFilter.MoveModule.package}::${inputFilter.MoveModule.module}`;\n } else if ('StructType' in inputFilter) {\n typeFilter = inputFilter.StructType;\n }\n\n filter = {\n objectIds:\n 'ObjectIds' in inputFilter\n ? inputFilter.ObjectIds\n : 'ObjectId' in inputFilter\n ? [inputFilter.ObjectId]\n : undefined,\n type: typeFilter,\n owner:\n 'ObjectOwner' in inputFilter\n ? inputFilter.ObjectOwner\n : 'AddressOwner' in inputFilter\n ? inputFilter.AddressOwner\n : undefined,\n };\n const unsupportedFilters = ['MatchAll', 'MatchAny', 'MatchNone', 'Version'];\n\n for (const unsupportedFilter of unsupportedFilters) {\n if (unsupportedFilter in inputFilter) {\n throw new UnsupportedParamError('getOwnedObjects', unsupportedFilter);\n }\n }\n }\n\n const { nodes: objects, pageInfo } = await transport.graphqlQuery(\n {\n query: GetOwnedObjectsDocument,\n variables: {\n owner,\n limit,\n cursor,\n showBcs: options?.showBcs,\n showContent: options?.showContent,\n showOwner: options?.showOwner,\n showPreviousTransaction: options?.showPreviousTransaction,\n showStorageRebate: options?.showStorageRebate,\n showType: options?.showType,\n filter,\n },\n },\n (data) => data.address?.objects,\n );\n\n return {\n hasNextPage: pageInfo.hasNextPage,\n nextCursor: pageInfo.endCursor,\n data: objects.map((object) => ({\n data: mapGraphQLMoveObjectToRpcObject(object, options ?? {}),\n })),\n };\n },\n async getObject(transport, [id, options]) {\n const object = await transport.graphqlQuery(\n {\n query: GetObjectDocument,\n variables: {\n id,\n showBcs: options?.showBcs,\n showContent: options?.showContent,\n showOwner: options?.showOwner,\n showPreviousTransaction: options?.showPreviousTransaction,\n showStorageRebate: options?.showStorageRebate,\n showType: options?.showType,\n },\n },\n (data) => data.object,\n );\n\n return {\n data: mapGraphQLObjectToRpcObject(object, options ?? {}),\n };\n },\n async tryGetPastObject(transport, [id, version, options]) {\n const data = await transport.graphqlQuery({\n query: TryGetPastObjectDocument,\n variables: {\n id,\n version,\n showBcs: options?.showBcs,\n showContent: options?.showContent,\n showOwner: options?.showOwner,\n showPreviousTransaction: options?.showPreviousTransaction,\n showStorageRebate: options?.showStorageRebate,\n showType: options?.showType,\n },\n });\n\n if (!data.current) {\n return {\n details: 'Could not find the referenced object',\n status: 'ObjectNotExists',\n };\n }\n\n if (!data.object) {\n return data.current.version < Number(version)\n ? {\n status: 'VersionTooHigh',\n details: {\n asked_version: String(version),\n latest_version: String(data.current.version),\n object_id: data.current.address,\n },\n }\n : {\n status: 'VersionNotFound',\n details: [data.current.address, String(version)],\n };\n }\n\n return {\n status: 'VersionFound',\n details: mapGraphQLObjectToRpcObject(data.object, options ?? {}),\n };\n },\n async multiGetObjects(transport, [ids, options]) {\n const objects = await transport.graphqlQuery(\n {\n query: MultiGetObjectsDocument,\n variables: {\n ids,\n showBcs: options?.showBcs,\n showContent: options?.showContent,\n showOwner: options?.showOwner,\n showPreviousTransaction: options?.showPreviousTransaction,\n showStorageRebate: options?.showStorageRebate,\n showType: options?.showType,\n limit: ids.length,\n },\n },\n (data) => data.objects?.nodes,\n );\n\n return objects.map((object) => ({\n data: mapGraphQLObjectToRpcObject(object, options ?? {}),\n }));\n },\n async queryTransactionBlocks(transport, [{ filter, options }, cursor, limit = 20, descending]) {\n const pagination: Partial<QueryTransactionBlocksQueryVariables> = descending\n ? {\n last: limit,\n before: cursor,\n }\n : {\n first: limit,\n after: cursor,\n };\n\n const unsupportedFilters = ['FromOrToAddress', 'FromAndToAddress', 'TransactionKindIn'];\n\n if (filter) {\n for (const unsupportedFilter of unsupportedFilters) {\n if (unsupportedFilter in filter) {\n throw new UnsupportedParamError('queryTransactionBlocks', unsupportedFilter);\n }\n }\n }\n\n const { nodes: transactionBlocks, pageInfo } = await transport.graphqlQuery(\n {\n query: QueryTransactionBlocksDocument,\n variables: {\n ...pagination,\n showBalanceChanges: options?.showBalanceChanges,\n showEffects: options?.showEffects,\n showRawEffects: options?.showRawEffects,\n showObjectChanges: options?.showObjectChanges,\n showRawInput: options?.showRawInput,\n showInput: options?.showInput,\n filter: filter\n ? {\n atCheckpoint:\n 'Checkpoint' in filter\n ? Number.parseInt(filter.Checkpoint)\n : undefined,\n function:\n 'MoveFunction' in filter\n ? `${filter.MoveFunction.package}::${filter.MoveFunction.module}::${filter.MoveFunction.function}`\n : undefined,\n inputObject: 'InputObject' in filter ? filter.InputObject : undefined,\n changedObject:\n 'ChangedObject' in filter ? filter.ChangedObject : undefined,\n signAddress: 'FromAddress' in filter ? filter.FromAddress : undefined,\n recvAddress: 'ToAddress' in filter ? filter.ToAddress : undefined,\n kind:\n 'TransactionKind' in filter\n ? filter.TransactionKind === 'ProgrammableTransaction'\n ? TransactionBlockKindInput.ProgrammableTx\n : TransactionBlockKindInput.SystemTx\n : undefined,\n }\n : {},\n },\n },\n (data) => data.transactionBlocks,\n );\n\n for (const transactionBlock of transactionBlocks) {\n await paginateTransactionBlockLists(transport, transactionBlock);\n }\n\n if (pagination.last) {\n transactionBlocks.reverse();\n }\n\n return {\n hasNextPage: pagination.last ? pageInfo.hasPreviousPage : pageInfo.hasNextPage,\n nextCursor: pagination.last ? pageInfo.startCursor : pageInfo.endCursor,\n data: transactionBlocks.map((transactionBlock) =>\n mapGraphQLTransactionBlockToRpcTransactionBlock(transactionBlock, options ?? {}),\n ),\n };\n },\n async getTransactionBlock(transport, [digest, options]) {\n const transactionBlock = await transport.graphqlQuery(\n {\n query: GetTransactionBlockDocument,\n variables: {\n digest,\n showBalanceChanges: options?.showBalanceChanges,\n showEffects: options?.showEffects,\n showRawEffects: options?.showRawEffects,\n showObjectChanges: options?.showObjectChanges,\n showRawInput: options?.showRawInput,\n showInput: options?.showInput,\n },\n },\n (data) => data.transactionBlock,\n );\n\n await paginateTransactionBlockLists(transport, transactionBlock);\n\n return mapGraphQLTransactionBlockToRpcTransactionBlock(transactionBlock, options);\n },\n\n async multiGetTransactionBlocks(transport, [digests, options]) {\n const transactionBlocks = await transport.graphqlQuery(\n {\n query: MultiGetTransactionBlocksDocument,\n variables: {\n digests: digests,\n showBalanceChanges: options?.showBalanceChanges,\n showEffects: options?.showEffects,\n showRawEffects: options?.showEffects,\n showObjectChanges: options?.showObjectChanges,\n showRawInput: options?.showRawInput,\n showInput: options?.showInput,\n limit: digests.length,\n },\n },\n (data) => data.transactionBlocks?.nodes,\n );\n\n for (const transactionBlock of transactionBlocks) {\n await paginateTransactionBlockLists(transport, transactionBlock);\n }\n\n return transactionBlocks.map((transactionBlock) =>\n mapGraphQLTransactionBlockToRpcTransactionBlock(transactionBlock, options),\n );\n },\n async getTotalTransactionBlocks(transport): Promise<bigint> {\n return transport.graphqlQuery(\n {\n query: GetTotalTransactionBlocksDocument,\n },\n (data) => BigInt(data.checkpoint?.networkTotalTransactions!),\n );\n },\n async getReferenceGasPrice(transport) {\n const epoch = await transport.graphqlQuery(\n {\n query: GetReferenceGasPriceDocument,\n variables: {},\n },\n (data) => data.epoch,\n );\n\n return BigInt(epoch.referenceGasPrice);\n },\n async getStakes(transport, [owner]) {\n const stakes = await transport.graphqlQuery(\n {\n query: GetStakesDocument,\n variables: {\n owner,\n },\n },\n (data) => data.address?.stakedIotas?.nodes,\n );\n\n return mapGraphQLStakeToRpcStake(stakes);\n },\n async getStakesByIds(transport, [stakedIotaIds]) {\n const stakes = await transport.graphqlQuery(\n {\n query: GetStakesByIdsDocument,\n variables: {\n ids: stakedIotaIds,\n },\n },\n (data) =>\n data.objects?.nodes\n .map((node) => node?.asMoveObject?.asStakedIota!)\n .filter(Boolean),\n );\n\n return mapGraphQLStakeToRpcStake(stakes);\n },\n async getLatestIotaSystemState(transport) {\n const systemState = await transport.graphqlQuery(\n {\n query: GetLatestIotaSystemStateDocument,\n },\n (data) => data.epoch,\n );\n\n let hasMoreValidators =\n systemState.validatorSet?.activeValidators?.pageInfo.hasNextPage ?? false;\n let afterValidators = systemState.validatorSet?.activeValidators?.pageInfo.endCursor;\n\n while (hasMoreValidators) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateEpochValidatorsDocument,\n variables: {\n id: systemState.epochId,\n after: afterValidators,\n },\n },\n (data) => data.epoch,\n );\n\n systemState.validatorSet?.activeValidators?.nodes.push(\n ...(page.validatorSet?.activeValidators?.nodes ?? []),\n );\n hasMoreValidators = page.validatorSet?.activeValidators?.pageInfo.hasNextPage ?? false;\n afterValidators = page.validatorSet?.activeValidators?.pageInfo.endCursor;\n }\n\n return {\n activeValidators: systemState.validatorSet?.activeValidators?.nodes.map(\n mapGraphQlValidatorToRpcValidator,\n )!,\n atRiskValidators: systemState.validatorSet?.activeValidators.nodes\n ?.filter((validator) => validator.atRisk)\n .map((validator) => [validator.address.address!, validator.atRisk!.toString()])!,\n epoch: String(systemState.epochId),\n epochDurationMs: String(\n new Date(systemState.endTimestamp).getTime() -\n new Date(systemState.startTimestamp).getTime(),\n ),\n epochStartTimestampMs: String(new Date(systemState.startTimestamp).getTime()),\n inactivePoolsSize: String(systemState.validatorSet?.inactivePoolsSize),\n iotaTotalSupply: String(systemState.iotaTotalSupply),\n iotaTreasuryCapId: String(systemState.iotaTreasuryCapId),\n maxValidatorCount: String(systemState.systemParameters?.maxValidatorCount),\n minValidatorCount: String(systemState.systemParameters?.minValidatorCount),\n minValidatorJoiningStake: String(\n systemState.systemParameters?.minValidatorJoiningStake,\n ),\n pendingActiveValidatorsSize: String(\n systemState.validatorSet?.pendingActiveValidatorsSize,\n ),\n pendingRemovals:\n systemState.validatorSet?.pendingRemovals?.map((idx) => String(idx)) ?? [],\n protocolVersion: String(systemState.protocolConfigs?.protocolVersion),\n referenceGasPrice: String(systemState.referenceGasPrice),\n safeMode: systemState.safeMode?.enabled!,\n safeModeComputationRewards: String(systemState.safeMode?.gasSummary?.computationCost),\n safeModeNonRefundableStorageFee: String(\n systemState.safeMode?.gasSummary?.nonRefundableStorageFee,\n ),\n safeModeStorageRebates: String(systemState.safeMode?.gasSummary?.storageRebate),\n safeModeStorageCharges: String(systemState.safeMode?.gasSummary?.storageCost),\n stakingPoolMappingsSize: String(systemState.validatorSet?.stakingPoolMappingsSize),\n storageFundNonRefundableBalance: String(systemState.storageFund?.nonRefundableBalance),\n storageFundTotalObjectStorageRebates: String(\n systemState.storageFund?.totalObjectStorageRebates,\n ),\n systemStateVersion: String(systemState.systemStateVersion),\n totalStake: systemState.validatorSet?.totalStake,\n validatorCandidatesSize: systemState.validatorSet?.validatorCandidatesSize?.toString()!,\n validatorLowStakeGracePeriod:\n systemState.systemParameters?.validatorLowStakeGracePeriod,\n validatorLowStakeThreshold: systemState.systemParameters?.validatorLowStakeThreshold,\n validatorReportRecords: [], // TODO\n validatorVeryLowStakeThreshold:\n systemState.systemParameters?.validatorVeryLowStakeThreshold,\n validatorCandidatesId: systemState.validatorSet?.validatorCandidatesId,\n inactivePoolsId: systemState.validatorSet?.inactivePoolsId,\n pendingActiveValidatorsId: systemState.validatorSet?.pendingActiveValidatorsId,\n stakingPoolMappingsId: systemState.validatorSet?.stakingPoolMappingsId,\n };\n },\n async queryEvents(transport, [query, cursor, limit, descending]) {\n const pagination: Partial<QueryEventsQueryVariables> = descending\n ? { last: limit, before: cursor as never }\n : { first: limit, after: cursor as never };\n\n const filter: QueryEventsQueryVariables['filter'] = {\n sender: 'Sender' in query ? query.Sender : undefined,\n transactionDigest: 'Transaction' in query ? query.Transaction : undefined,\n eventType: 'MoveEventType' in query ? query.MoveEventType : undefined,\n emittingModule:\n 'MoveModule' in query\n ? `${query.MoveModule.package}::${query.MoveModule.module}`\n : undefined,\n };\n\n if ('MoveEventType' in query) {\n filter.eventType = query.MoveEventType;\n } else if ('MoveEventModule' in query) {\n filter.eventType = `${query.MoveEventModule.package}::${query.MoveEventModule.module}`;\n }\n\n const unsupportedFilters = [\n 'Package',\n 'MoveEventField',\n 'Any',\n 'All',\n 'And',\n 'Or',\n 'TimeRange',\n ];\n\n if (query) {\n for (const unsupportedFilter of unsupportedFilters) {\n if (unsupportedFilter in query) {\n throw new UnsupportedParamError('queryEvents', unsupportedFilter);\n }\n }\n }\n\n const { nodes: events, pageInfo } = await transport.graphqlQuery(\n {\n query: QueryEventsDocument,\n variables: {\n ...pagination,\n filter,\n },\n },\n (data) => data.events,\n );\n\n if (pagination.last) {\n events.reverse();\n }\n\n return {\n hasNextPage: pagination.last ? pageInfo.hasPreviousPage : pageInfo.hasNextPage,\n nextCursor: (pagination.last ? pageInfo.startCursor : pageInfo.endCursor) as never,\n data: events.map((event) => ({\n bcs: event.bcs,\n id: {\n eventSeq: '', // TODO\n txDigest: '', // TODO\n },\n packageId: event.sendingModule?.package.address!,\n parsedJson: event.json ? JSON.parse(event.json) : undefined,\n sender: event.sender?.address,\n timestampMs: new Date(event.timestamp).getTime().toString(),\n transactionModule: `${event.sendingModule?.package.address}::${event.sendingModule?.name}`,\n type: toShortTypeString(event.type?.repr)!,\n })),\n };\n },\n async devInspectTransactionBlock(transport, [sender, devInspectTxBytes, gasPrice]) {\n const { transaction, error, results } = await transport.graphqlQuery(\n {\n query: DevInspectTransactionBlockDocument,\n variables: {\n txBytes: devInspectTxBytes,\n txMeta: {\n gasPrice: Number.parseInt(gasPrice),\n sender: sender,\n },\n showEffects: true,\n showEvents: true,\n },\n },\n (data) => data.dryRunTransactionBlock,\n );\n\n if (!transaction) {\n throw new Error('Unexpected error during dry run');\n }\n\n const result = mapGraphQLTransactionBlockToRpcTransactionBlock(transaction, {\n showEffects: true,\n showEvents: true,\n });\n\n return {\n error,\n effects: result.effects!,\n events: result.events!,\n results: results?.map((result) => ({\n mutableReferenceOutputs: result.mutatedReferences?.map(\n (ref): [IotaArgument, number[], string] => [\n ref.input.__typename === 'GasCoin'\n ? 'GasCoin'\n : ref.input.__typename === 'Input'\n ? {\n Input: ref.input.inputIndex,\n }\n : typeof ref.input.resultIndex === 'number'\n ? {\n NestedResult: [ref.input.cmd, ref.input.resultIndex!] as [\n number,\n number,\n ],\n }\n : {\n Result: ref.input.cmd,\n },\n Array.from(fromB64(ref.bcs)),\n toShortTypeString(ref.type.repr),\n ],\n ),\n returnValues: result.returnValues?.map((value) => [\n Array.from(fromB64(value.bcs)),\n toShortTypeString(value.type.repr),\n ]),\n })),\n };\n },\n async getDynamicFields(transport, [parentId, cursor, limit]) {\n const { nodes: fields, pageInfo } = await transport.graphqlQuery(\n {\n query: GetDynamicFieldsDocument,\n variables: {\n parentId,\n first: limit,\n cursor,\n },\n },\n (data) => data.owner?.dynamicFields,\n );\n\n return {\n data: fields.map((field) => ({\n bcsName: field.name?.bcs && toB58(fromB64(field.name.bcs)),\n digest: (field.value?.__typename === 'MoveObject'\n ? field.value.digest\n : undefined)!,\n name: {\n type: toShortTypeString(field.name?.type.repr)!,\n value: field.name?.json,\n },\n objectId:\n field.value?.__typename === 'MoveObject' ? field.value.address : undefined,\n objectType: (field.value?.__typename === 'MoveObject'\n ? field.value.contents?.type.repr\n : field.value?.type.repr)!,\n type: field.value?.__typename === 'MoveObject' ? 'DynamicObject' : 'DynamicField',\n version: (field.value?.__typename === 'MoveObject'\n ? field.value.version\n : undefined) as unknown as string,\n })),\n nextCursor: pageInfo.endCursor ?? null,\n hasNextPage: pageInfo.hasNextPage,\n };\n },\n async getDynamicFieldObject(transport, [parentId, name]) {\n const nameLayout = await transport.graphqlQuery(\n {\n query: GetTypeLayoutDocument,\n variables: {\n type: name.type,\n },\n },\n (data) => data.type.layout,\n );\n\n const bcsName = mapJsonToBcs(name.value, nameLayout);\n\n const parent = await transport.graphqlQuery(\n {\n query: GetDynamicFieldObjectDocument,\n variables: {\n parentId: parentId,\n name: {\n type: name.type,\n bcs: bcsName,\n },\n },\n },\n (data) => {\n return data.owner?.dynamicObjectField?.value?.__typename === 'MoveObject'\n ? data.owner.dynamicObjectField.value.owner?.__typename === 'Parent'\n ? data.owner.dynamicObjectField.value.owner.parent\n : undefined\n : undefined;\n },\n );\n\n return {\n data: {\n content: {\n dataType: 'moveObject' as const,\n ...(moveDataToRpcContent(\n parent?.asMoveObject?.contents?.data!,\n parent?.asMoveObject?.contents?.type.layout!,\n ) as {\n fields: {\n [key: string]: MoveValue;\n };\n type: string;\n }),\n },\n digest: parent?.digest!,\n objectId: parent?.address,\n type: toShortTypeString(parent?.asMoveObject?.contents?.type.repr),\n version: parent?.version.toString()!,\n storageRebate: parent.storageRebate,\n previousTransaction: parent.previousTransactionBlock?.digest,\n owner:\n parent.owner?.__typename === 'Parent'\n ? {\n ObjectOwner: parent.owner.parent?.address,\n }\n : undefined,\n },\n };\n },\n async executeTransactionBlock(transport, [txBytes, signatures, options]) {\n const { effects, errors } = await transport.graphqlQuery(\n {\n query: ExecuteTransactionBlockDocument,\n variables: {\n txBytes,\n signatures,\n showBalanceChanges: options?.showBalanceChanges,\n showEffects: options?.showEffects,\n showRawEffects: options?.showRawEffects,\n showInput: options?.showInput,\n showEvents: options?.showEvents,\n showObjectChanges: options?.showObjectChanges,\n showRawInput: options?.showRawInput,\n },\n },\n (data) => data.executeTransactionBlock,\n );\n\n if (!effects?.transactionBlock) {\n const tx = Transaction.from(fromB64(txBytes));\n return { errors: errors ?? undefined, digest: await tx.getDigest() };\n }\n\n await paginateTransactionBlockLists(transport, effects.transactionBlock);\n\n return mapGraphQLTransactionBlockToRpcTransactionBlock(\n effects.transactionBlock,\n options,\n errors,\n );\n },\n async dryRunTransactionBlock(transport, [txBytes]) {\n const tx = Transaction.from(fromB64(txBytes));\n const { transaction, error } = await transport.graphqlQuery(\n {\n query: DryRunTransactionBlockDocument,\n variables: {\n txBytes,\n showBalanceChanges: true,\n showEffects: true,\n showEvents: true,\n showObjectChanges: true,\n showInput: true,\n },\n },\n (data) => data.dryRunTransactionBlock,\n );\n\n if (error || !transaction) {\n throw new Error(error ?? 'Unexpected error during dry run');\n }\n\n const result = mapGraphQLTransactionBlockToRpcTransactionBlock(\n { ...transaction, digest: await tx.getDigest() },\n {\n showBalanceChanges: true,\n showEffects: true,\n showEvents: true,\n showObjectChanges: true,\n showInput: true,\n },\n );\n\n return {\n input: result.transaction?.data!,\n balanceChanges: result.balanceChanges!,\n effects: result.effects!,\n events: result.events!,\n objectChanges: result.objectChanges!,\n };\n },\n async getLatestCheckpointSequenceNumber(transport) {\n const sequenceNumber = await transport.graphqlQuery(\n {\n query: GetLatestCheckpointSequenceNumberDocument,\n },\n (data) => data.checkpoint?.sequenceNumber,\n );\n\n return sequenceNumber.toString();\n },\n async getCheckpoint(transport, [id]) {\n const checkpoint = await transport.graphqlQuery(\n {\n query: GetCheckpointDocument,\n variables: {\n id:\n typeof id === 'number' || isNumericString(id)\n ? {\n sequenceNumber: Number.parseInt(id.toString(), 10),\n }\n : {\n digest: id,\n },\n },\n },\n (data) => data.checkpoint,\n );\n\n await paginateCheckpointLists(transport, checkpoint);\n return mapGraphQLCheckpointToRpcCheckpoint(checkpoint);\n },\n async getCheckpoints(transport, [cursor, limit, descendingOrder]) {\n const pagination: Partial<QueryEventsQueryVariables> = descendingOrder\n ? { last: limit, before: cursor as never }\n : { first: limit, after: cursor as never };\n\n const { nodes: checkpoints, pageInfo } = await transport.graphqlQuery(\n {\n query: GetCheckpointsDocument,\n variables: {\n ...pagination,\n },\n },\n (data) => data.checkpoints,\n );\n\n for (const checkpoint of checkpoints) {\n await paginateCheckpointLists(transport, checkpoint);\n }\n\n if (pagination.last) {\n checkpoints.reverse();\n }\n\n return {\n hasNextPage: pagination.last ? pageInfo.hasPreviousPage : pageInfo.hasNextPage,\n nextCursor: (pagination.last ? pageInfo.startCursor : pageInfo.endCursor) as never,\n data: checkpoints.map((checkpoint) => mapGraphQLCheckpointToRpcCheckpoint(checkpoint)),\n };\n },\n async getCommitteeInfo(transport, [epoch]) {\n const { validatorSet, epochId } = await transport.graphqlQuery(\n {\n query: GetCommitteeInfoDocument,\n variables: {\n epochId: epoch ? Number.parseInt(epoch) : undefined,\n },\n },\n (data) => data.epoch,\n );\n\n let hasNextPage = validatorSet?.activeValidators?.pageInfo.hasNextPage;\n let after = validatorSet?.activeValidators?.pageInfo.endCursor;\n\n while (hasNextPage) {\n const page = await transport.graphqlQuery(\n {\n query: GetCommitteeInfoDocument,\n variables: {\n epochId: epoch ? Number.parseInt(epoch) : undefined,\n after,\n },\n },\n (data) => data.epoch?.validatorSet?.activeValidators,\n );\n\n validatorSet?.activeValidators.nodes.push(...page.nodes);\n hasNextPage = page.pageInfo.hasNextPage;\n after = page.pageInfo.endCursor;\n }\n\n return {\n epoch: epochId.toString(),\n validators: validatorSet?.activeValidators?.nodes.map((val) => [\n val.credentials?.authorityPubKey!,\n String(val.votingPower),\n ])!,\n };\n },\n async getCurrentEpoch(transport) {\n const epoch = await transport.graphqlQuery(\n {\n query: GetCurrentEpochDocument,\n },\n (data) => data.epoch,\n );\n\n let hasNextPage = epoch.validatorSet?.activeValidators?.pageInfo.hasNextPage;\n let after = epoch.validatorSet?.activeValidators?.pageInfo.endCursor;\n\n while (hasNextPage) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateEpochValidatorsDocument,\n variables: {\n id: epoch.epochId,\n after,\n },\n },\n (data) => data.epoch?.validatorSet?.activeValidators,\n );\n\n epoch.validatorSet?.activeValidators?.nodes.push(...page.nodes);\n hasNextPage = page.pageInfo.hasNextPage;\n after = page.pageInfo.endCursor;\n }\n\n return {\n epoch: String(epoch.epochId),\n validators: epoch.validatorSet?.activeValidators?.nodes.map(\n mapGraphQlValidatorToRpcValidator,\n )!,\n epochTotalTransactions: '0', // TODO\n firstCheckpointId: epoch.firstCheckpoint?.nodes[0]?.sequenceNumber.toString()!,\n endOfEpochInfo: null,\n referenceGasPrice: epoch.referenceGasPrice,\n epochStartTimestamp: new Date(epoch.startTimestamp).getTime().toString(),\n };\n },\n async getValidatorsApy(transport) {\n const epoch = await transport.graphqlQuery(\n {\n query: GetValidatorsApyDocument,\n },\n (data) => data.epoch,\n );\n\n let hasNextPage = epoch.validatorSet?.activeValidators?.pageInfo.hasNextPage;\n let after = epoch.validatorSet?.activeValidators?.pageInfo.endCursor;\n\n while (hasNextPage) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateEpochValidatorsDocument,\n variables: {\n id: epoch.epochId,\n after,\n },\n },\n (data) => data.epoch,\n );\n\n epoch.validatorSet?.activeValidators?.nodes.push(\n ...(page.validatorSet?.activeValidators?.nodes ?? []),\n );\n hasNextPage = page.validatorSet?.activeValidators?.pageInfo.hasNextPage;\n after = page.validatorSet?.activeValidators?.pageInfo.endCursor;\n }\n\n return {\n epoch: String(epoch.epochId),\n apys: epoch.validatorSet?.activeValidators?.nodes.map((validator) => ({\n address: validator.address.address!,\n apy: (typeof validator.apy === 'number' ? validator.apy / 100 : null) as number,\n }))!,\n };\n },\n async getChainIdentifier(transport): Promise<string> {\n const identifier = await transport.graphqlQuery(\n {\n query: GetChainIdentifierDocument,\n },\n (data) => data.chainIdentifier,\n );\n\n return identifier;\n },\n async getProtocolConfig(transport, [version]) {\n const protocolConfig = await transport.graphqlQuery(\n {\n query: GetProtocolConfigDocument,\n variables: {\n protocolVersion: version ? Number.parseInt(version) : undefined,\n },\n },\n (data) => data.protocolConfig,\n );\n\n const featureFlags: Record<string, boolean> = {};\n const attributes: Record<string, ProtocolConfigValue | null> = {};\n\n const configTypeMap: Record<string, string> = {\n max_arguments: 'u32',\n max_gas_payment_objects: 'u32',\n max_modules_in_publish: 'u32',\n max_programmable_tx_commands: 'u32',\n max_pure_argument_size: 'u32',\n max_type_argument_depth: 'u32',\n max_type_arguments: 'u32',\n move_binary_format_version: 'u32',\n min_move_binary_format_version: 'u32',\n random_beacon_reduction_allowed_delta: 'u16',\n random_beacon_dkg_timeout_round: 'u32',\n random_beacon_reduction_lower_bound: 'u32',\n scoring_decision_cutoff_value: 'f64',\n scoring_decision_mad_divisor: 'f64',\n group_ops_bls12381_msm_max_len: 'u32',\n binary_module_handles: 'u16',\n binary_struct_handles: 'u16',\n binary_function_handles: 'u16',\n binary_function_instantiations: 'u16',\n binary_signatures: 'u16',\n binary_constant_pool: 'u16',\n binary_identifiers: 'u16',\n binary_address_identifiers: 'u16',\n binary_struct_defs: 'u16',\n binary_struct_def_instantiations: 'u16',\n binary_function_defs: 'u16',\n binary_field_handles: 'u16',\n binary_field_instantiations: 'u16',\n binary_friend_decls: 'u16',\n max_package_dependencies: 'u32',\n bridge_should_try_to_finalize_committee: 'bool',\n };\n\n for (const { key, value } of protocolConfig.configs) {\n attributes[key] =\n value === null\n ? null\n : ({\n [configTypeMap[key] ?? 'u64']: value,\n } as ProtocolConfigValue);\n }\n\n for (const { key, value } of protocolConfig.featureFlags) {\n featureFlags[key] = value;\n }\n\n return {\n maxSupportedProtocolVersion: protocolConfig.protocolVersion?.toString(),\n minSupportedProtocolVersion: '1',\n protocolVersion: protocolConfig.protocolVersion?.toString(),\n attributes,\n featureFlags,\n };\n },\n};\n\nexport class UnsupportedParamError extends Error {\n constructor(method: string, param: string) {\n super(`Parameter ${param} is not supported for ${method} in the GraphQL API`);\n }\n}\n\nexport class UnsupportedMethodError extends Error {\n constructor(method: string) {\n super(`Method ${method} is not supported in the GraphQL API`);\n }\n}\n\nasync function paginateTransactionBlockLists(\n transport: IotaClientGraphQLTransport,\n transactionBlock: Rpc_Transaction_FieldsFragment,\n) {\n let hasMoreEvents = transactionBlock.effects?.events?.pageInfo.hasNextPage ?? false;\n let hasMoreBalanceChanges =\n transactionBlock.effects?.balanceChanges?.pageInfo.hasNextPage ?? false;\n let hasMoreObjectChanges =\n transactionBlock.effects?.objectChanges?.pageInfo.hasNextPage ?? false;\n let afterEvents = transactionBlock.effects?.events?.pageInfo.endCursor;\n let afterBalanceChanges = transactionBlock.effects?.balanceChanges?.pageInfo.endCursor;\n let afterObjectChanges = transactionBlock.effects?.objectChanges?.pageInfo.endCursor;\n\n while (hasMoreEvents || hasMoreBalanceChanges || hasMoreObjectChanges) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateTransactionBlockListsDocument,\n variables: {\n digest: transactionBlock.digest!,\n afterEvents,\n afterBalanceChanges,\n afterObjectChanges,\n hasMoreEvents,\n hasMoreBalanceChanges,\n hasMoreObjectChanges,\n },\n },\n (data) => data.transactionBlock?.effects,\n );\n\n transactionBlock.effects?.events?.nodes.push(...(page.events?.nodes ?? []));\n transactionBlock.effects?.balanceChanges?.nodes.push(...(page.balanceChanges?.nodes ?? []));\n transactionBlock.effects?.objectChanges?.nodes.push(...(page.objectChanges?.nodes ?? []));\n hasMoreEvents = page.events?.pageInfo.hasNextPage ?? false;\n hasMoreBalanceChanges = page.balanceChanges?.pageInfo.hasNextPage ?? false;\n hasMoreObjectChanges = page.objectChanges?.pageInfo.hasNextPage ?? false;\n afterEvents = page.events?.pageInfo.endCursor;\n afterBalanceChanges = page.balanceChanges?.pageInfo.endCursor;\n afterObjectChanges = page.objectChanges?.pageInfo.endCursor;\n }\n}\n\nasync function paginateCheckpointLists(\n transport: IotaClientGraphQLTransport,\n checkpoint: Rpc_Checkpoint_FieldsFragment,\n) {\n let hasNextPage = checkpoint.transactionBlocks.pageInfo.hasNextPage;\n let after = checkpoint.transactionBlocks.pageInfo.endCursor;\n while (hasNextPage) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateCheckpointTransactionBlocksDocument,\n variables: {\n id: { digest: checkpoint.digest! },\n after,\n },\n },\n (data) => data.checkpoint?.transactionBlocks,\n );\n\n checkpoint.transactionBlocks.nodes.push(...page.nodes);\n hasNextPage = page.pageInfo.hasNextPage;\n after = page.pageInfo.endCursor;\n }\n\n const endOfEpochTx = checkpoint.endOfEpoch.nodes[0];\n\n if (\n endOfEpochTx?.kind?.__typename === 'EndOfEpochTransaction' &&\n endOfEpochTx.kind?.transactions.nodes[0].__typename === 'ChangeEpochTransaction' &&\n endOfEpochTx.kind.transactions.nodes[0].epoch?.epochId\n ) {\n const validatorSet = endOfEpochTx.kind.transactions.nodes[0].epoch.validatorSet;\n let hasNextPage = validatorSet?.activeValidators.pageInfo.hasNextPage;\n let after = validatorSet?.activeValidators.pageInfo.endCursor;\n\n while (hasNextPage) {\n const page = await transport.graphqlQuery(\n {\n query: GetCommitteeInfoDocument,\n variables: {\n epochId: endOfEpochTx.kind.transactions.nodes[0].epoch?.epochId,\n after,\n },\n },\n (data) => data.epoch?.validatorSet?.activeValidators,\n );\n\n validatorSet?.activeValidators.nodes.push(...page.nodes);\n hasNextPage = page.pageInfo?.hasNextPage;\n after = page.pageInfo?.endCursor;\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromB64 } from '@iota/bcs';\nimport type {\n MoveValue,\n ProtocolConfigValue,\n IotaArgument,\n IotaClient,\n IotaMoveNormalizedModule,\n IotaTransactionKind,\n} from '@iota/iota-sdk/client';\nimport { Transaction } from '@iota/iota-sdk/transactions';\nimport { normalizeStructTag, normalizeIotaAddress, parseStructTag } from '@iota/iota-sdk/utils';\n\nimport type {\n ObjectFilter,\n QueryEventsQueryVariables,\n QueryTransactionBlocksQueryVariables,\n Rpc_Checkpoint_FieldsFragment,\n Rpc_Transaction_FieldsFragment,\n} from './generated/queries.js';\nimport {\n DevInspectTransactionBlockDocument,\n DryRunTransactionBlockDocument,\n ExecuteTransactionBlockDocument,\n GetAllBalancesDocument,\n GetBalanceDocument,\n GetChainIdentifierDocument,\n GetCheckpointDocument,\n GetCheckpointsDocument,\n GetCoinMetadataDocument,\n GetCoinsDocument,\n GetCommitteeInfoDocument,\n GetCurrentEpochDocument,\n GetDynamicFieldObjectDocument,\n GetDynamicFieldsDocument,\n GetLatestCheckpointSequenceNumberDocument,\n GetLatestIotaSystemStateDocument,\n GetMoveFunctionArgTypesDocument,\n GetNormalizedMoveFunctionDocument,\n GetNormalizedMoveModuleDocument,\n GetNormalizedMoveModulesByPackageDocument,\n GetNormalizedMoveStructDocument,\n GetObjectDocument,\n GetOwnedObjectsDocument,\n GetProtocolConfigDocument,\n GetReferenceGasPriceDocument,\n GetStakesByIdsDocument,\n GetStakesDocument,\n GetTotalSupplyDocument,\n GetTotalTransactionBlocksDocument,\n GetTransactionBlockDocument,\n GetTypeLayoutDocument,\n GetValidatorsApyDocument,\n MultiGetObjectsDocument,\n MultiGetTransactionBlocksDocument,\n PaginateCheckpointTransactionBlocksDocument,\n PaginateEpochValidatorsDocument,\n PaginateMoveModuleListsDocument,\n PaginateTransactionBlockListsDocument,\n QueryEventsDocument,\n QueryTransactionBlocksDocument,\n TransactionBlockKindInput,\n TryGetPastObjectDocument,\n} from './generated/queries.js';\nimport { mapJsonToBcs } from './mappers/bcs.js';\nimport { mapGraphQLCheckpointToRpcCheckpoint } from './mappers/checkpoint.js';\nimport {\n mapNormalizedMoveFunction,\n mapNormalizedMoveModule,\n mapNormalizedMoveStruct,\n moveDataToRpcContent,\n} from './mappers/move.js';\nimport { mapGraphQLMoveObjectToRpcObject, mapGraphQLObjectToRpcObject } from './mappers/object.js';\nimport { mapGraphQLStakeToRpcStake } from './mappers/stakes.js';\nimport { mapGraphQLTransactionBlockToRpcTransactionBlock } from './mappers/transaction-block.js';\nimport { isNumericString, toShortTypeString } from './mappers/util.js';\nimport { mapGraphQlValidatorToRpcValidator } from './mappers/validator.js';\nimport type { IotaClientGraphQLTransport } from './transport.js';\n\ninterface ResponseTypes {\n getRpcApiVersion: {\n info: { version?: string };\n };\n}\n\nexport const RPC_METHODS: {\n [K in keyof IotaClient as IotaClient[K] extends (...args: any[]) => Promise<any>\n ? K\n : never]?: IotaClient[K] extends (...args: any[]) => infer R\n ? (\n transport: IotaClientGraphQLTransport,\n inputs: any[],\n ) => K extends keyof ResponseTypes ? Promise<ResponseTypes[K]> : R\n : never;\n} = {\n async getRpcApiVersion(transport) {\n const res = await transport.graphqlRequest({\n query: 'query { __typename }',\n variables: {},\n });\n\n if (!res.ok) {\n throw new Error('Failed to fetch');\n }\n\n return {\n info: {\n version: res.headers.get('x-iota-rpc-version') ?? undefined,\n },\n };\n },\n\n async getCoins(transport, [owner, coinType, cursor, limit]) {\n const { nodes: coins, pageInfo } = await transport.graphqlQuery(\n {\n query: GetCoinsDocument,\n variables: {\n owner,\n type: coinType,\n cursor: cursor,\n first: limit,\n },\n },\n (data) => data.address?.coins,\n );\n\n return {\n data: coins.map((coin) => ({\n balance: coin.coinBalance,\n coinObjectId: coin.address,\n coinType: toShortTypeString(\n normalizeStructTag(parseStructTag(coin.contents?.type.repr!).typeParams[0]),\n ),\n digest: coin.digest!,\n previousTransaction: coin.previousTransactionBlock?.digest!,\n version: String(coin.version!),\n })),\n nextCursor: pageInfo.endCursor,\n hasNextPage: pageInfo.hasNextPage,\n };\n },\n\n async getAllCoins(transport, inputs) {\n const { nodes: coins, pageInfo } = await transport.graphqlQuery(\n {\n query: GetCoinsDocument,\n variables: {\n owner: inputs[0],\n cursor: inputs[1],\n first: inputs[2],\n },\n },\n (data) => data.address?.coins,\n );\n\n return {\n data: coins.map((coin) => ({\n balance: coin.coinBalance,\n coinObjectId: coin.address,\n coinType: toShortTypeString(\n normalizeStructTag(parseStructTag(coin.contents?.type.repr!).typeParams[0]),\n ),\n digest: coin.digest!,\n previousTransaction: coin.previousTransactionBlock?.digest!,\n version: String(coin.version!),\n })),\n nextCursor: pageInfo.endCursor,\n hasNextPage: pageInfo.hasNextPage,\n };\n },\n\n async getBalance(transport, inputs) {\n const balance = await transport.graphqlQuery(\n {\n query: GetBalanceDocument,\n variables: {\n owner: inputs[0],\n type: inputs[1],\n },\n },\n (data) => data.address?.balance,\n );\n\n return {\n coinType: toShortTypeString(balance.coinType?.repr!),\n coinObjectCount: balance.coinObjectCount!,\n totalBalance: balance.totalBalance,\n };\n },\n\n async getAllBalances(transport, inputs) {\n const balances = await transport.graphqlQuery(\n {\n query: GetAllBalancesDocument,\n variables: {\n owner: inputs[0],\n },\n },\n (data) => data.address?.balances?.nodes,\n );\n\n return balances.map((balance) => ({\n coinType: toShortTypeString(balance.coinType?.repr!),\n coinObjectCount: balance.coinObjectCount!,\n totalBalance: balance.totalBalance,\n }));\n },\n async getCoinMetadata(transport, inputs) {\n const metadata = await transport.graphqlQuery(\n {\n query: GetCoinMetadataDocument,\n variables: {\n coinType: inputs[0],\n },\n },\n (data) => data.coinMetadata,\n );\n\n return {\n decimals: metadata.decimals!,\n name: metadata.name!,\n symbol: metadata.symbol!,\n description: metadata.description!,\n iconUrl: metadata.iconUrl,\n id: metadata.address,\n };\n },\n async getTotalSupply(transport, inputs) {\n const metadata = await transport.graphqlQuery(\n {\n query: GetTotalSupplyDocument,\n variables: {\n coinType: inputs[0],\n },\n },\n (data) => data.coinMetadata,\n );\n\n return {\n value: BigInt(metadata.supply!).toString(),\n };\n },\n async getMoveFunctionArgTypes(transport, [pkg, module, fn]) {\n const moveModule = await transport.graphqlQuery(\n {\n query: GetMoveFunctionArgTypesDocument,\n variables: {\n module: module,\n packageId: pkg,\n function: fn,\n },\n },\n (data) => data.object?.asMovePackage?.module?.function?.parameters,\n );\n\n return moveModule.map((parameter) => {\n if (!parameter.signature.body.datatype) {\n return 'Pure';\n }\n\n return {\n Object:\n parameter.signature.ref === '&'\n ? 'ByImmutableReference'\n : parameter.signature.ref === '&mut'\n ? 'ByMutableReference'\n : 'ByValue',\n };\n });\n },\n async getNormalizedMoveFunction(transport, [pkg, module, fn]) {\n const moveFunction = await transport.graphqlQuery(\n {\n query: GetNormalizedMoveFunctionDocument,\n variables: {\n module: module,\n packageId: pkg,\n function: fn,\n },\n },\n (data) => data.object?.asMovePackage?.module?.function,\n );\n\n return mapNormalizedMoveFunction(moveFunction);\n },\n async getNormalizedMoveModulesByPackage(transport, [pkg]) {\n const movePackage = await transport.graphqlQuery(\n {\n query: GetNormalizedMoveModulesByPackageDocument,\n variables: {\n packageId: pkg,\n },\n },\n (data) => data.object?.asMovePackage,\n );\n\n let hasNextPage = movePackage.modules?.pageInfo.hasNextPage ?? false;\n let cursor = movePackage.modules?.pageInfo.endCursor;\n while (hasNextPage) {\n const page = await transport.graphqlQuery(\n {\n query: GetNormalizedMoveModulesByPackageDocument,\n variables: {\n packageId: pkg,\n cursor,\n },\n },\n (data) => data.object?.asMovePackage,\n );\n\n movePackage.modules?.nodes.push(...(page.modules?.nodes ?? []));\n hasNextPage = page.modules?.pageInfo.hasNextPage ?? false;\n cursor = page.modules?.pageInfo.endCursor;\n }\n\n const address = toShortTypeString(movePackage.address);\n const modules: Record<string, IotaMoveNormalizedModule> = {};\n\n for (const moveModule of movePackage.modules?.nodes ?? []) {\n let hasMoreFriends = moveModule.friends?.pageInfo.hasNextPage ?? false;\n let hasMoreFunctions = moveModule.functions?.pageInfo.hasNextPage ?? false;\n let hasMoreStructs = moveModule.structs?.pageInfo.hasNextPage ?? false;\n let afterFriends = moveModule.friends?.pageInfo.endCursor;\n let afterFunctions = moveModule.functions?.pageInfo.endCursor;\n let afterStructs = moveModule.structs?.pageInfo.endCursor;\n\n while (hasMoreFriends || hasMoreStructs || hasMoreFunctions) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateMoveModuleListsDocument,\n variables: {\n module: moveModule.name,\n packageId: pkg,\n hasMoreFriends,\n hasMoreFunctions,\n hasMoreStructs,\n afterFriends,\n afterFunctions,\n afterStructs,\n },\n },\n (data) => data.object?.asMovePackage?.module,\n );\n\n moveModule.friends.nodes.push(...(page.friends?.nodes ?? []));\n moveModule.functions?.nodes.push(...(page.functions?.nodes ?? []));\n moveModule.structs?.nodes.push(...(page.structs?.nodes ?? []));\n hasMoreFriends = page.friends?.pageInfo.hasNextPage ?? false;\n hasMoreFunctions = page.functions?.pageInfo.hasNextPage ?? false;\n hasMoreStructs = page.structs?.pageInfo.hasNextPage ?? false;\n afterFriends = page.friends?.pageInfo.endCursor;\n afterFunctions = page.functions?.pageInfo.endCursor;\n afterStructs = page.structs?.pageInfo.endCursor;\n }\n }\n\n movePackage.modules?.nodes.forEach((module) => {\n modules[module.name] = mapNormalizedMoveModule(module, address);\n });\n\n return modules;\n },\n async getNormalizedMoveModule(transport, [pkg, module]) {\n const moveModule = await transport.graphqlQuery(\n {\n query: GetNormalizedMoveModuleDocument,\n variables: {\n module,\n packageId: pkg,\n },\n },\n (data) => data.object?.asMovePackage?.module,\n );\n\n let hasMoreFriends = moveModule.friends?.pageInfo.hasNextPage ?? false;\n let hasMoreFunctions = moveModule.functions?.pageInfo.hasNextPage ?? false;\n let hasMoreStructs = moveModule.structs?.pageInfo.hasNextPage ?? false;\n let afterFriends = moveModule.friends?.pageInfo.endCursor;\n let afterFunctions = moveModule.functions?.pageInfo.endCursor;\n let afterStructs = moveModule.structs?.pageInfo.endCursor;\n\n while (hasMoreFriends || hasMoreStructs || hasMoreFunctions) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateMoveModuleListsDocument,\n variables: {\n module,\n packageId: pkg,\n hasMoreFriends,\n hasMoreFunctions,\n hasMoreStructs,\n afterFriends,\n afterFunctions,\n afterStructs,\n },\n },\n (data) => data.object?.asMovePackage?.module,\n );\n\n moveModule.friends.nodes.push(...(page.friends?.nodes ?? []));\n moveModule.functions?.nodes.push(...(page.functions?.nodes ?? []));\n moveModule.structs?.nodes.push(...(page.structs?.nodes ?? []));\n hasMoreFriends = page.friends?.pageInfo.hasNextPage ?? false;\n hasMoreFunctions = page.functions?.pageInfo.hasNextPage ?? false;\n hasMoreStructs = page.structs?.pageInfo.hasNextPage ?? false;\n afterFriends = page.friends?.pageInfo.endCursor;\n afterFunctions = page.functions?.pageInfo.endCursor;\n afterStructs = page.structs?.pageInfo.endCursor;\n }\n\n return mapNormalizedMoveModule(moveModule, normalizeIotaAddress(pkg));\n },\n async getNormalizedMoveStruct(transport, [pkg, module, struct]) {\n const moveStruct = await transport.graphqlQuery(\n {\n query: GetNormalizedMoveStructDocument,\n variables: {\n packageId: pkg,\n module,\n struct,\n },\n },\n (data) => data.object?.asMovePackage?.module?.struct,\n );\n\n return mapNormalizedMoveStruct(moveStruct);\n },\n async getOwnedObjects(transport, [owner, { filter: inputFilter, options }, cursor, limit]) {\n let filter: ObjectFilter | undefined;\n let typeFilter: string | undefined;\n\n if (inputFilter) {\n if ('Package' in inputFilter) {\n typeFilter = inputFilter.Package;\n } else if ('MoveModule' in inputFilter) {\n typeFilter = `${inputFilter.MoveModule.package}::${inputFilter.MoveModule.module}`;\n } else if ('StructType' in inputFilter) {\n typeFilter = inputFilter.StructType;\n }\n\n filter = {\n objectIds:\n 'ObjectIds' in inputFilter\n ? inputFilter.ObjectIds\n : 'ObjectId' in inputFilter\n ? [inputFilter.ObjectId]\n : undefined,\n type: typeFilter,\n owner:\n 'ObjectOwner' in inputFilter\n ? inputFilter.ObjectOwner\n : 'AddressOwner' in inputFilter\n ? inputFilter.AddressOwner\n : undefined,\n };\n const unsupportedFilters = ['MatchAll', 'MatchAny', 'MatchNone', 'Version'];\n\n for (const unsupportedFilter of unsupportedFilters) {\n if (unsupportedFilter in inputFilter) {\n throw new UnsupportedParamError('getOwnedObjects', unsupportedFilter);\n }\n }\n }\n\n const { nodes: objects, pageInfo } = await transport.graphqlQuery(\n {\n query: GetOwnedObjectsDocument,\n variables: {\n owner,\n limit,\n cursor,\n showBcs: options?.showBcs,\n showContent: options?.showContent,\n showOwner: options?.showOwner,\n showPreviousTransaction: options?.showPreviousTransaction,\n showStorageRebate: options?.showStorageRebate,\n showType: options?.showType,\n filter,\n },\n },\n (data) => data.address?.objects,\n );\n\n return {\n hasNextPage: pageInfo.hasNextPage,\n nextCursor: pageInfo.endCursor,\n data: objects.map((object) => ({\n data: mapGraphQLMoveObjectToRpcObject(object, options ?? {}),\n })),\n };\n },\n async getObject(transport, [id, options]) {\n const object = await transport.graphqlQuery(\n {\n query: GetObjectDocument,\n variables: {\n id,\n showBcs: options?.showBcs,\n showContent: options?.showContent,\n showOwner: options?.showOwner,\n showPreviousTransaction: options?.showPreviousTransaction,\n showStorageRebate: options?.showStorageRebate,\n showType: options?.showType,\n },\n },\n (data) => data.object,\n );\n\n return {\n data: mapGraphQLObjectToRpcObject(object, options ?? {}),\n };\n },\n async tryGetPastObject(transport, [id, version, options]) {\n const data = await transport.graphqlQuery({\n query: TryGetPastObjectDocument,\n variables: {\n id,\n version,\n showBcs: options?.showBcs,\n showContent: options?.showContent,\n showOwner: options?.showOwner,\n showPreviousTransaction: options?.showPreviousTransaction,\n showStorageRebate: options?.showStorageRebate,\n showType: options?.showType,\n },\n });\n\n if (!data.current) {\n return {\n details: 'Could not find the referenced object',\n status: 'ObjectNotExists',\n };\n }\n\n if (!data.object) {\n return data.current.version < Number(version)\n ? {\n status: 'VersionTooHigh',\n details: {\n asked_version: String(version),\n latest_version: String(data.current.version),\n object_id: data.current.address,\n },\n }\n : {\n status: 'VersionNotFound',\n details: [data.current.address, String(version)],\n };\n }\n\n return {\n status: 'VersionFound',\n details: mapGraphQLObjectToRpcObject(data.object, options ?? {}),\n };\n },\n async multiGetObjects(transport, [ids, options]) {\n const objects = await transport.graphqlQuery(\n {\n query: MultiGetObjectsDocument,\n variables: {\n ids,\n showBcs: options?.showBcs,\n showContent: options?.showContent,\n showOwner: options?.showOwner,\n showPreviousTransaction: options?.showPreviousTransaction,\n showStorageRebate: options?.showStorageRebate,\n showType: options?.showType,\n limit: ids.length,\n },\n },\n (data) => data.objects?.nodes,\n );\n\n return objects.map((object) => ({\n data: mapGraphQLObjectToRpcObject(object, options ?? {}),\n }));\n },\n async queryTransactionBlocks(transport, [{ filter, options }, cursor, limit = 20, descending]) {\n const pagination: Partial<QueryTransactionBlocksQueryVariables> = descending\n ? {\n last: limit,\n before: cursor,\n }\n : {\n first: limit,\n after: cursor,\n };\n\n const unsupportedFilters = ['FromOrToAddress', 'FromAndToAddress', 'TransactionKindIn'];\n\n if (filter) {\n for (const unsupportedFilter of unsupportedFilters) {\n if (unsupportedFilter in filter) {\n throw new UnsupportedParamError('queryTransactionBlocks', unsupportedFilter);\n }\n }\n }\n\n // Map transaction kind filter from jsonRPC to graphql\n let graphqlTransactionKindFilter: TransactionBlockKindInput | undefined;\n if ('TransactionKind' in filter) {\n switch (filter.TransactionKind as IotaTransactionKind) {\n case 'ProgrammableTransaction':\n graphqlTransactionKindFilter = TransactionBlockKindInput.ProgrammableTx;\n break;\n case 'Genesis':\n graphqlTransactionKindFilter = TransactionBlockKindInput.Genesis;\n break;\n case 'ConsensusCommitPrologueV1':\n graphqlTransactionKindFilter =\n TransactionBlockKindInput.ConsensusCommitPrologueV1;\n break;\n case 'AuthenticatorStateUpdateV1':\n graphqlTransactionKindFilter =\n TransactionBlockKindInput.AuthenticatorStateUpdateV1;\n break;\n case 'RandomnessStateUpdate':\n graphqlTransactionKindFilter = TransactionBlockKindInput.RandomnessStateUpdate;\n break;\n case 'EndOfEpochTransaction':\n graphqlTransactionKindFilter = TransactionBlockKindInput.EndOfEpochTx;\n break;\n case 'SystemTransaction':\n graphqlTransactionKindFilter = TransactionBlockKindInput.SystemTx;\n break;\n }\n }\n\n const { nodes: transactionBlocks, pageInfo } = await transport.graphqlQuery(\n {\n query: QueryTransactionBlocksDocument,\n variables: {\n ...pagination,\n showBalanceChanges: options?.showBalanceChanges,\n showEffects: options?.showEffects,\n showRawEffects: options?.showRawEffects,\n showObjectChanges: options?.showObjectChanges,\n showRawInput: options?.showRawInput,\n showInput: options?.showInput,\n filter: filter\n ? {\n atCheckpoint:\n 'Checkpoint' in filter\n ? Number.parseInt(filter.Checkpoint)\n : undefined,\n function:\n 'MoveFunction' in filter\n ? `${filter.MoveFunction.package}::${filter.MoveFunction.module}::${filter.MoveFunction.function}`\n : undefined,\n inputObject: 'InputObject' in filter ? filter.InputObject : undefined,\n changedObject:\n 'ChangedObject' in filter ? filter.ChangedObject : undefined,\n signAddress: 'FromAddress' in filter ? filter.FromAddress : undefined,\n recvAddress: 'ToAddress' in filter ? filter.ToAddress : undefined,\n kind: graphqlTransactionKindFilter,\n }\n : {},\n },\n },\n (data) => data.transactionBlocks,\n );\n\n for (const transactionBlock of transactionBlocks) {\n await paginateTransactionBlockLists(transport, transactionBlock);\n }\n\n if (pagination.last) {\n transactionBlocks.reverse();\n }\n\n return {\n hasNextPage: pagination.last ? pageInfo.hasPreviousPage : pageInfo.hasNextPage,\n nextCursor: pagination.last ? pageInfo.startCursor : pageInfo.endCursor,\n data: transactionBlocks.map((transactionBlock) =>\n mapGraphQLTransactionBlockToRpcTransactionBlock(transactionBlock, options ?? {}),\n ),\n };\n },\n async getTransactionBlock(transport, [digest, options]) {\n const transactionBlock = await transport.graphqlQuery(\n {\n query: GetTransactionBlockDocument,\n variables: {\n digest,\n showBalanceChanges: options?.showBalanceChanges,\n showEffects: options?.showEffects,\n showRawEffects: options?.showRawEffects,\n showObjectChanges: options?.showObjectChanges,\n showRawInput: options?.showRawInput,\n showInput: options?.showInput,\n },\n },\n (data) => data.transactionBlock,\n );\n\n await paginateTransactionBlockLists(transport, transactionBlock);\n\n return mapGraphQLTransactionBlockToRpcTransactionBlock(transactionBlock, options);\n },\n\n async multiGetTransactionBlocks(transport, [digests, options]) {\n const transactionBlocks = await transport.graphqlQuery(\n {\n query: MultiGetTransactionBlocksDocument,\n variables: {\n digests: digests,\n showBalanceChanges: options?.showBalanceChanges,\n showEffects: options?.showEffects,\n showRawEffects: options?.showEffects,\n showObjectChanges: options?.showObjectChanges,\n showRawInput: options?.showRawInput,\n showInput: options?.showInput,\n limit: digests.length,\n },\n },\n (data) => data.transactionBlocks?.nodes,\n );\n\n for (const transactionBlock of transactionBlocks) {\n await paginateTransactionBlockLists(transport, transactionBlock);\n }\n\n return transactionBlocks.map((transactionBlock) =>\n mapGraphQLTransactionBlockToRpcTransactionBlock(transactionBlock, options),\n );\n },\n async getTotalTransactionBlocks(transport): Promise<bigint> {\n return transport.graphqlQuery(\n {\n query: GetTotalTransactionBlocksDocument,\n },\n (data) => BigInt(data.checkpoint?.networkTotalTransactions!),\n );\n },\n async getReferenceGasPrice(transport) {\n const epoch = await transport.graphqlQuery(\n {\n query: GetReferenceGasPriceDocument,\n variables: {},\n },\n (data) => data.epoch,\n );\n\n return BigInt(epoch.referenceGasPrice);\n },\n async getStakes(transport, [owner]) {\n const stakes = await transport.graphqlQuery(\n {\n query: GetStakesDocument,\n variables: {\n owner,\n },\n },\n (data) => data.address?.stakedIotas?.nodes,\n );\n\n return mapGraphQLStakeToRpcStake(stakes);\n },\n async getStakesByIds(transport, [stakedIotaIds]) {\n const stakes = await transport.graphqlQuery(\n {\n query: GetStakesByIdsDocument,\n variables: {\n ids: stakedIotaIds,\n },\n },\n (data) =>\n data.objects?.nodes\n .map((node) => node?.asMoveObject?.asStakedIota!)\n .filter(Boolean),\n );\n\n return mapGraphQLStakeToRpcStake(stakes);\n },\n async getLatestIotaSystemState(transport) {\n const systemState = await transport.graphqlQuery(\n {\n query: GetLatestIotaSystemStateDocument,\n },\n (data) => data.epoch,\n );\n\n // fetch all active validators\n let hasMoreActiveValidators =\n systemState.validatorSet?.activeValidators?.pageInfo.hasNextPage ?? false;\n let afterActiveValidators = systemState.validatorSet?.activeValidators?.pageInfo.endCursor;\n while (hasMoreActiveValidators) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateEpochValidatorsDocument,\n variables: {\n id: systemState.epochId,\n after: afterActiveValidators,\n },\n },\n (data) => data.epoch,\n );\n systemState.validatorSet?.activeValidators?.nodes.push(\n ...(page.validatorSet?.activeValidators?.nodes ?? []),\n );\n hasMoreActiveValidators =\n page.validatorSet?.activeValidators?.pageInfo.hasNextPage ?? false;\n afterActiveValidators = page.validatorSet?.activeValidators?.pageInfo.endCursor;\n }\n\n // fetch all committee members\n let hasMoreCommitteeMembers =\n systemState.validatorSet?.committeeMembers?.pageInfo.hasNextPage ?? false;\n let afterCommitteeMembers = systemState.validatorSet?.committeeMembers?.pageInfo.endCursor;\n while (hasMoreCommitteeMembers) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateEpochValidatorsDocument,\n variables: {\n id: systemState.epochId,\n after: afterCommitteeMembers,\n },\n },\n (data) => data.epoch,\n );\n systemState.validatorSet?.committeeMembers?.nodes.push(\n ...(page.validatorSet?.committeeMembers?.nodes ?? []),\n );\n hasMoreCommitteeMembers =\n page.validatorSet?.committeeMembers?.pageInfo.hasNextPage ?? false;\n afterCommitteeMembers = page.validatorSet?.committeeMembers?.pageInfo.endCursor;\n }\n\n return {\n activeValidators: systemState.validatorSet?.activeValidators?.nodes.map(\n mapGraphQlValidatorToRpcValidator,\n )!,\n committeeMembers: systemState.validatorSet?.committeeMembers?.nodes?.map(\n mapGraphQlValidatorToRpcValidator,\n )!,\n atRiskValidators: systemState.validatorSet?.activeValidators.nodes\n ?.filter((validator) => validator.atRisk)\n .map((validator) => [validator.address.address!, validator.atRisk!.toString()])!,\n epoch: String(systemState.epochId),\n epochDurationMs: String(\n new Date(systemState.endTimestamp).getTime() -\n new Date(systemState.startTimestamp).getTime(),\n ),\n epochStartTimestampMs: String(new Date(systemState.startTimestamp).getTime()),\n inactivePoolsSize: String(systemState.validatorSet?.inactivePoolsSize),\n iotaTotalSupply: String(systemState.iotaTotalSupply),\n iotaTreasuryCapId: String(systemState.iotaTreasuryCapId),\n maxValidatorCount: String(systemState.systemParameters?.maxValidatorCount),\n minValidatorCount: String(systemState.systemParameters?.minValidatorCount),\n minValidatorJoiningStake: String(\n systemState.systemParameters?.minValidatorJoiningStake,\n ),\n pendingActiveValidatorsSize: String(\n systemState.validatorSet?.pendingActiveValidatorsSize,\n ),\n pendingRemovals:\n systemState.validatorSet?.pendingRemovals?.map((idx) => String(idx)) ?? [],\n protocolVersion: String(systemState.protocolConfigs?.protocolVersion),\n referenceGasPrice: String(systemState.referenceGasPrice),\n safeMode: systemState.safeMode?.enabled!,\n safeModeComputationRewards: String(systemState.safeMode?.gasSummary?.computationCost),\n safeModeNonRefundableStorageFee: String(\n systemState.safeMode?.gasSummary?.nonRefundableStorageFee,\n ),\n safeModeStorageRebates: String(systemState.safeMode?.gasSummary?.storageRebate),\n safeModeStorageCharges: String(systemState.safeMode?.gasSummary?.storageCost),\n stakingPoolMappingsSize: String(systemState.validatorSet?.stakingPoolMappingsSize),\n storageFundNonRefundableBalance: String(systemState.storageFund?.nonRefundableBalance),\n storageFundTotalObjectStorageRebates: String(\n systemState.storageFund?.totalObjectStorageRebates,\n ),\n systemStateVersion: String(systemState.systemStateVersion),\n totalStake: systemState.validatorSet?.totalStake,\n validatorCandidatesSize: systemState.validatorSet?.validatorCandidatesSize?.toString()!,\n validatorLowStakeGracePeriod:\n systemState.systemParameters?.validatorLowStakeGracePeriod,\n validatorLowStakeThreshold: systemState.systemParameters?.validatorLowStakeThreshold,\n validatorReportRecords: [], // TODO\n validatorVeryLowStakeThreshold:\n systemState.systemParameters?.validatorVeryLowStakeThreshold,\n validatorCandidatesId: systemState.validatorSet?.validatorCandidatesId,\n inactivePoolsId: systemState.validatorSet?.inactivePoolsId,\n pendingActiveValidatorsId: systemState.validatorSet?.pendingActiveValidatorsId,\n stakingPoolMappingsId: systemState.validatorSet?.stakingPoolMappingsId,\n };\n },\n async queryEvents(transport, [query, cursor, limit, descending]) {\n const pagination: Partial<QueryEventsQueryVariables> = descending\n ? { last: limit, before: cursor as never }\n : { first: limit, after: cursor as never };\n\n const filter: QueryEventsQueryVariables['filter'] = {\n sender: 'Sender' in query ? query.Sender : undefined,\n transactionDigest: 'Transaction' in query ? query.Transaction : undefined,\n eventType: 'MoveEventType' in query ? query.MoveEventType : undefined,\n emittingModule:\n 'MoveModule' in query\n ? `${query.MoveModule.package}::${query.MoveModule.module}`\n : undefined,\n };\n\n if ('MoveEventType' in query) {\n filter.eventType = query.MoveEventType;\n } else if ('MoveEventModule' in query) {\n filter.eventType = `${query.MoveEventModule.package}::${query.MoveEventModule.module}`;\n }\n\n const unsupportedFilters = [\n 'Package',\n 'MoveEventField',\n 'Any',\n 'All',\n 'And',\n 'Or',\n 'TimeRange',\n ];\n\n if (query) {\n for (const unsupportedFilter of unsupportedFilters) {\n if (unsupportedFilter in query) {\n throw new UnsupportedParamError('queryEvents', unsupportedFilter);\n }\n }\n }\n\n const { nodes: events, pageInfo } = await transport.graphqlQuery(\n {\n query: QueryEventsDocument,\n variables: {\n ...pagination,\n filter,\n },\n },\n (data) => data.events,\n );\n\n if (pagination.last) {\n events.reverse();\n }\n\n return {\n hasNextPage: pagination.last ? pageInfo.hasPreviousPage : pageInfo.hasNextPage,\n nextCursor: (pagination.last ? pageInfo.startCursor : pageInfo.endCursor) as never,\n data: events.map((event) => ({\n bcs: event.bcs,\n bcsEncoding: 'base64',\n id: {\n eventSeq: '', // TODO\n txDigest: '', // TODO\n },\n packageId: event.sendingModule?.package.address!,\n parsedJson: event.json ? JSON.parse(event.json) : undefined,\n sender: event.sender?.address,\n timestampMs: new Date(event.timestamp).getTime().toString(),\n transactionModule: `${event.sendingModule?.package.address}::${event.sendingModule?.name}`,\n type: toShortTypeString(event.type?.repr)!,\n })),\n };\n },\n async devInspectTransactionBlock(transport, [sender, devInspectTxBytes, gasPrice]) {\n const { transaction, error, results } = await transport.graphqlQuery(\n {\n query: DevInspectTransactionBlockDocument,\n variables: {\n txBytes: devInspectTxBytes,\n txMeta: {\n gasPrice: Number.parseInt(gasPrice),\n sender: sender,\n },\n showEffects: true,\n showEvents: true,\n },\n },\n (data) => data.dryRunTransactionBlock,\n );\n\n if (!transaction) {\n throw new Error('Unexpected error during dry run');\n }\n\n const result = mapGraphQLTransactionBlockToRpcTransactionBlock(transaction, {\n showEffects: true,\n showEvents: true,\n });\n\n return {\n error,\n effects: result.effects!,\n events: result.events!,\n results: results?.map((result) => ({\n mutableReferenceOutputs: result.mutatedReferences?.map(\n (ref): [IotaArgument, number[], string] => [\n ref.input.__typename === 'GasCoin'\n ? 'GasCoin'\n : ref.input.__typename === 'Input'\n ? {\n Input: ref.input.inputIndex,\n }\n : typeof ref.input.resultIndex === 'number'\n ? {\n NestedResult: [ref.input.cmd, ref.input.resultIndex!] as [\n number,\n number,\n ],\n }\n : {\n Result: ref.input.cmd,\n },\n Array.from(fromB64(ref.bcs)),\n toShortTypeString(ref.type.repr),\n ],\n ),\n returnValues: result.returnValues?.map((value) => [\n Array.from(fromB64(value.bcs)),\n toShortTypeString(value.type.repr),\n ]),\n })),\n };\n },\n async getDynamicFields(transport, [parentId, cursor, limit]) {\n const { nodes: fields, pageInfo } = await transport.graphqlQuery(\n {\n query: GetDynamicFieldsDocument,\n variables: {\n parentId,\n first: limit,\n cursor,\n },\n },\n (data) => data.owner?.dynamicFields,\n );\n\n return {\n data: fields.map((field) => ({\n bcsName: field.name?.bcs,\n bcsEncoding: 'base64',\n digest: (field.value?.__typename === 'MoveObject'\n ? field.value.digest\n : undefined)!,\n name: {\n type: toShortTypeString(field.name?.type.repr)!,\n value: field.name?.json,\n },\n objectId:\n field.value?.__typename === 'MoveObject' ? field.value.address : undefined,\n objectType: (field.value?.__typename === 'MoveObject'\n ? field.value.contents?.type.repr\n : field.value?.type.repr)!,\n type: field.value?.__typename === 'MoveObject' ? 'DynamicObject' : 'DynamicField',\n version: (field.value?.__typename === 'MoveObject'\n ? field.value.version\n : undefined) as unknown as string,\n })),\n nextCursor: pageInfo.endCursor ?? null,\n hasNextPage: pageInfo.hasNextPage,\n };\n },\n async getDynamicFieldObject(transport, [parentId, name]) {\n const nameLayout = await transport.graphqlQuery(\n {\n query: GetTypeLayoutDocument,\n variables: {\n type: name.type,\n },\n },\n (data) => data.type.layout,\n );\n\n const bcsName = mapJsonToBcs(name.value, nameLayout);\n\n const parent = await transport.graphqlQuery(\n {\n query: GetDynamicFieldObjectDocument,\n variables: {\n parentId: parentId,\n name: {\n type: name.type,\n bcs: bcsName,\n },\n },\n },\n (data) => {\n return data.owner?.dynamicObjectField?.value?.__typename === 'MoveObject'\n ? data.owner.dynamicObjectField.value.owner?.__typename === 'Parent'\n ? data.owner.dynamicObjectField.value.owner.parent\n : undefined\n : undefined;\n },\n );\n\n return {\n data: {\n content: {\n dataType: 'moveObject' as const,\n ...(moveDataToRpcContent(\n parent?.asMoveObject?.contents?.data!,\n parent?.asMoveObject?.contents?.type.layout!,\n ) as {\n fields: {\n [key: string]: MoveValue;\n };\n type: string;\n }),\n },\n digest: parent?.digest!,\n objectId: parent?.address,\n type: toShortTypeString(parent?.asMoveObject?.contents?.type.repr),\n version: parent?.version.toString()!,\n storageRebate: parent.storageRebate,\n previousTransaction: parent.previousTransactionBlock?.digest,\n owner:\n parent.owner?.__typename === 'Parent'\n ? {\n ObjectOwner: parent.owner.parent?.address,\n }\n : undefined,\n },\n };\n },\n async executeTransactionBlock(transport, [txBytes, signatures, options]) {\n const { effects, errors } = await transport.graphqlQuery(\n {\n query: ExecuteTransactionBlockDocument,\n variables: {\n txBytes,\n signatures,\n showBalanceChanges: options?.showBalanceChanges,\n showEffects: options?.showEffects,\n showRawEffects: options?.showRawEffects,\n showInput: options?.showInput,\n showEvents: options?.showEvents,\n showObjectChanges: options?.showObjectChanges,\n showRawInput: options?.showRawInput,\n },\n },\n (data) => data.executeTransactionBlock,\n );\n\n if (!effects?.transactionBlock) {\n const tx = Transaction.from(fromB64(txBytes));\n return { errors: errors ?? undefined, digest: await tx.getDigest() };\n }\n\n await paginateTransactionBlockLists(transport, effects.transactionBlock);\n\n return mapGraphQLTransactionBlockToRpcTransactionBlock(\n effects.transactionBlock,\n options,\n errors,\n );\n },\n async dryRunTransactionBlock(transport, [txBytes]) {\n const tx = Transaction.from(fromB64(txBytes));\n const { transaction, error } = await transport.graphqlQuery(\n {\n query: DryRunTransactionBlockDocument,\n variables: {\n txBytes,\n showBalanceChanges: true,\n showEffects: true,\n showEvents: true,\n showObjectChanges: true,\n showInput: true,\n },\n },\n (data) => data.dryRunTransactionBlock,\n );\n\n if (error || !transaction) {\n throw new Error(error ?? 'Unexpected error during dry run');\n }\n\n const result = mapGraphQLTransactionBlockToRpcTransactionBlock(\n { ...transaction, digest: await tx.getDigest() },\n {\n showBalanceChanges: true,\n showEffects: true,\n showEvents: true,\n showObjectChanges: true,\n showInput: true,\n },\n );\n\n return {\n input: result.transaction?.data!,\n balanceChanges: result.balanceChanges!,\n effects: result.effects!,\n events: result.events!,\n objectChanges: result.objectChanges!,\n };\n },\n async getLatestCheckpointSequenceNumber(transport) {\n const sequenceNumber = await transport.graphqlQuery(\n {\n query: GetLatestCheckpointSequenceNumberDocument,\n },\n (data) => data.checkpoint?.sequenceNumber,\n );\n\n return sequenceNumber.toString();\n },\n async getCheckpoint(transport, [id]) {\n const checkpoint = await transport.graphqlQuery(\n {\n query: GetCheckpointDocument,\n variables: {\n id:\n typeof id === 'number' || isNumericString(id)\n ? {\n sequenceNumber: Number.parseInt(id.toString(), 10),\n }\n : {\n digest: id,\n },\n },\n },\n (data) => data.checkpoint,\n );\n\n await paginateCheckpointLists(transport, checkpoint);\n return mapGraphQLCheckpointToRpcCheckpoint(checkpoint);\n },\n async getCheckpoints(transport, [cursor, limit, descendingOrder]) {\n const pagination: Partial<QueryEventsQueryVariables> = descendingOrder\n ? { last: limit, before: cursor as never }\n : { first: limit, after: cursor as never };\n\n const { nodes: checkpoints, pageInfo } = await transport.graphqlQuery(\n {\n query: GetCheckpointsDocument,\n variables: {\n ...pagination,\n },\n },\n (data) => data.checkpoints,\n );\n\n for (const checkpoint of checkpoints) {\n await paginateCheckpointLists(transport, checkpoint);\n }\n\n if (pagination.last) {\n checkpoints.reverse();\n }\n\n return {\n hasNextPage: pagination.last ? pageInfo.hasPreviousPage : pageInfo.hasNextPage,\n nextCursor: (pagination.last ? pageInfo.startCursor : pageInfo.endCursor) as never,\n data: checkpoints.map((checkpoint) => mapGraphQLCheckpointToRpcCheckpoint(checkpoint)),\n };\n },\n async getCommitteeInfo(transport, [epoch]) {\n const { validatorSet, epochId } = await transport.graphqlQuery(\n {\n query: GetCommitteeInfoDocument,\n variables: {\n epochId: epoch ? Number.parseInt(epoch) : undefined,\n },\n },\n (data) => data.epoch,\n );\n\n let hasNextPage = validatorSet?.committeeMembers?.pageInfo.hasNextPage;\n let after = validatorSet?.committeeMembers?.pageInfo.endCursor;\n\n while (hasNextPage) {\n const page = await transport.graphqlQuery(\n {\n query: GetCommitteeInfoDocument,\n variables: {\n epochId: epoch ? Number.parseInt(epoch) : undefined,\n after,\n },\n },\n (data) => data.epoch?.validatorSet?.committeeMembers,\n );\n\n validatorSet?.committeeMembers.nodes.push(...page.nodes);\n hasNextPage = page.pageInfo.hasNextPage;\n after = page.pageInfo.endCursor;\n }\n\n return {\n epoch: epochId.toString(),\n validators: validatorSet?.committeeMembers?.nodes.map((val) => [\n val.credentials?.authorityPubKey!,\n String(val.votingPower),\n ])!,\n };\n },\n async getCurrentEpoch(transport) {\n const epoch = await transport.graphqlQuery(\n {\n query: GetCurrentEpochDocument,\n },\n (data) => data.epoch,\n );\n\n // fetch all active validators\n let hasNextPageActiveValidators =\n epoch.validatorSet?.activeValidators?.pageInfo.hasNextPage;\n let afterActiveValidators = epoch.validatorSet?.activeValidators?.pageInfo.endCursor;\n while (hasNextPageActiveValidators) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateEpochValidatorsDocument,\n variables: {\n id: epoch.epochId,\n after: afterActiveValidators,\n },\n },\n (data) => data.epoch?.validatorSet?.activeValidators,\n );\n epoch.validatorSet?.activeValidators?.nodes.push(...page.nodes);\n hasNextPageActiveValidators = page.pageInfo.hasNextPage;\n afterActiveValidators = page.pageInfo.endCursor;\n }\n // fetch all committee members\n let hasNextPageCommitteeMembers =\n epoch.validatorSet?.committeeMembers?.pageInfo.hasNextPage;\n let afterCommitteeMembers = epoch.validatorSet?.committeeMembers?.pageInfo.endCursor;\n while (hasNextPageCommitteeMembers) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateEpochValidatorsDocument,\n variables: {\n id: epoch.epochId,\n after: afterCommitteeMembers,\n },\n },\n (data) => data.epoch?.validatorSet?.committeeMembers,\n );\n epoch.validatorSet?.committeeMembers?.nodes.push(...page.nodes);\n hasNextPageCommitteeMembers = page.pageInfo.hasNextPage;\n afterCommitteeMembers = page.pageInfo.endCursor;\n }\n\n // Committee validators: each element is an index pointing to `validators`\n const validatorsAddresses =\n epoch.validatorSet?.activeValidators?.nodes.map((val) => val.address.address!) ?? [];\n const committeeMembersAddresses =\n epoch.validatorSet?.committeeMembers?.nodes.map((val) => val.address.address!) ?? [];\n const committeeValidatorsIndexes = committeeMembersAddresses.map((val) =>\n validatorsAddresses.indexOf(val)?.toString(),\n );\n\n return {\n epoch: String(epoch.epochId),\n validators: epoch.validatorSet?.activeValidators?.nodes.map(\n mapGraphQlValidatorToRpcValidator,\n )!,\n committeeMembers: committeeValidatorsIndexes,\n epochTotalTransactions: '0', // TODO\n firstCheckpointId: epoch.firstCheckpoint?.nodes[0]?.sequenceNumber.toString()!,\n endOfEpochInfo: null,\n referenceGasPrice: epoch.referenceGasPrice,\n epochStartTimestamp: new Date(epoch.startTimestamp).getTime().toString(),\n };\n },\n async getValidatorsApy(transport) {\n const epoch = await transport.graphqlQuery(\n {\n query: GetValidatorsApyDocument,\n },\n (data) => data.epoch,\n );\n\n let hasNextPage = epoch.validatorSet?.activeValidators?.pageInfo.hasNextPage;\n let after = epoch.validatorSet?.activeValidators?.pageInfo.endCursor;\n\n while (hasNextPage) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateEpochValidatorsDocument,\n variables: {\n id: epoch.epochId,\n after,\n },\n },\n (data) => data.epoch,\n );\n\n epoch.validatorSet?.activeValidators?.nodes.push(\n ...(page.validatorSet?.activeValidators?.nodes ?? []),\n );\n hasNextPage = page.validatorSet?.activeValidators?.pageInfo.hasNextPage;\n after = page.validatorSet?.activeValidators?.pageInfo.endCursor;\n }\n\n return {\n epoch: String(epoch.epochId),\n apys: epoch.validatorSet?.activeValidators?.nodes.map((validator) => ({\n address: validator.address.address!,\n apy: (typeof validator.apy === 'number' ? validator.apy / 100 : null) as number,\n }))!,\n };\n },\n async getChainIdentifier(transport): Promise<string> {\n const identifier = await transport.graphqlQuery(\n {\n query: GetChainIdentifierDocument,\n },\n (data) => data.chainIdentifier,\n );\n\n return identifier;\n },\n async getProtocolConfig(transport, [version]) {\n const protocolConfig = await transport.graphqlQuery(\n {\n query: GetProtocolConfigDocument,\n variables: {\n protocolVersion: version ? Number.parseInt(version) : undefined,\n },\n },\n (data) => data.protocolConfig,\n );\n\n const featureFlags: Record<string, boolean> = {};\n const attributes: Record<string, ProtocolConfigValue | null> = {};\n\n const configTypeMap: Record<string, string> = {\n max_arguments: 'u32',\n max_gas_payment_objects: 'u32',\n max_modules_in_publish: 'u32',\n max_programmable_tx_commands: 'u32',\n max_pure_argument_size: 'u32',\n max_type_argument_depth: 'u32',\n max_type_arguments: 'u32',\n move_binary_format_version: 'u32',\n min_move_binary_format_version: 'u32',\n random_beacon_reduction_allowed_delta: 'u16',\n random_beacon_dkg_timeout_round: 'u32',\n random_beacon_reduction_lower_bound: 'u32',\n scoring_decision_cutoff_value: 'f64',\n scoring_decision_mad_divisor: 'f64',\n group_ops_bls12381_msm_max_len: 'u32',\n binary_module_handles: 'u16',\n binary_struct_handles: 'u16',\n binary_function_handles: 'u16',\n binary_function_instantiations: 'u16',\n binary_signatures: 'u16',\n binary_constant_pool: 'u16',\n binary_identifiers: 'u16',\n binary_address_identifiers: 'u16',\n binary_struct_defs: 'u16',\n binary_struct_def_instantiations: 'u16',\n binary_function_defs: 'u16',\n binary_field_handles: 'u16',\n binary_field_instantiations: 'u16',\n binary_friend_decls: 'u16',\n max_package_dependencies: 'u32',\n bridge_should_try_to_finalize_committee: 'bool',\n };\n\n for (const { key, value } of protocolConfig.configs) {\n attributes[key] =\n value === null\n ? null\n : ({\n [configTypeMap[key] ?? 'u64']: value,\n } as ProtocolConfigValue);\n }\n\n for (const { key, value } of protocolConfig.featureFlags) {\n featureFlags[key] = value;\n }\n\n return {\n maxSupportedProtocolVersion: protocolConfig.protocolVersion?.toString(),\n minSupportedProtocolVersion: '1',\n protocolVersion: protocolConfig.protocolVersion?.toString(),\n attributes,\n featureFlags,\n };\n },\n};\n\nexport class UnsupportedParamError extends Error {\n constructor(method: string, param: string) {\n super(`Parameter ${param} is not supported for ${method} in the GraphQL API`);\n }\n}\n\nexport class UnsupportedMethodError extends Error {\n constructor(method: string) {\n super(`Method ${method} is not supported in the GraphQL API`);\n }\n}\n\nasync function paginateTransactionBlockLists(\n transport: IotaClientGraphQLTransport,\n transactionBlock: Rpc_Transaction_FieldsFragment,\n) {\n let hasMoreEvents = transactionBlock.effects?.events?.pageInfo.hasNextPage ?? false;\n let hasMoreBalanceChanges =\n transactionBlock.effects?.balanceChanges?.pageInfo.hasNextPage ?? false;\n let hasMoreObjectChanges =\n transactionBlock.effects?.objectChanges?.pageInfo.hasNextPage ?? false;\n let afterEvents = transactionBlock.effects?.events?.pageInfo.endCursor;\n let afterBalanceChanges = transactionBlock.effects?.balanceChanges?.pageInfo.endCursor;\n let afterObjectChanges = transactionBlock.effects?.objectChanges?.pageInfo.endCursor;\n\n while (hasMoreEvents || hasMoreBalanceChanges || hasMoreObjectChanges) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateTransactionBlockListsDocument,\n variables: {\n digest: transactionBlock.digest!,\n afterEvents,\n afterBalanceChanges,\n afterObjectChanges,\n hasMoreEvents,\n hasMoreBalanceChanges,\n hasMoreObjectChanges,\n },\n },\n (data) => data.transactionBlock?.effects,\n );\n\n transactionBlock.effects?.events?.nodes.push(...(page.events?.nodes ?? []));\n transactionBlock.effects?.balanceChanges?.nodes.push(...(page.balanceChanges?.nodes ?? []));\n transactionBlock.effects?.objectChanges?.nodes.push(...(page.objectChanges?.nodes ?? []));\n hasMoreEvents = page.events?.pageInfo.hasNextPage ?? false;\n hasMoreBalanceChanges = page.balanceChanges?.pageInfo.hasNextPage ?? false;\n hasMoreObjectChanges = page.objectChanges?.pageInfo.hasNextPage ?? false;\n afterEvents = page.events?.pageInfo.endCursor;\n afterBalanceChanges = page.balanceChanges?.pageInfo.endCursor;\n afterObjectChanges = page.objectChanges?.pageInfo.endCursor;\n }\n}\n\nasync function paginateCheckpointLists(\n transport: IotaClientGraphQLTransport,\n checkpoint: Rpc_Checkpoint_FieldsFragment,\n) {\n let hasNextPage = checkpoint.transactionBlocks.pageInfo.hasNextPage;\n let after = checkpoint.transactionBlocks.pageInfo.endCursor;\n while (hasNextPage) {\n const page = await transport.graphqlQuery(\n {\n query: PaginateCheckpointTransactionBlocksDocument,\n variables: {\n id: { digest: checkpoint.digest! },\n after,\n },\n },\n (data) => data.checkpoint?.transactionBlocks,\n );\n\n checkpoint.transactionBlocks.nodes.push(...page.nodes);\n hasNextPage = page.pageInfo.hasNextPage;\n after = page.pageInfo.endCursor;\n }\n\n const endOfEpochTx = checkpoint.endOfEpoch.nodes[0];\n\n if (\n endOfEpochTx?.kind?.__typename === 'EndOfEpochTransaction' &&\n endOfEpochTx.kind?.transactions.nodes[0].__typename === 'ChangeEpochTransactionV2' &&\n endOfEpochTx.kind.transactions.nodes[0].epoch?.epochId\n ) {\n const validatorSet = endOfEpochTx.kind.transactions.nodes[0].epoch.validatorSet;\n let hasNextPage = validatorSet?.committeeMembers.pageInfo.hasNextPage;\n let after = validatorSet?.committeeMembers.pageInfo.endCursor;\n\n while (hasNextPage) {\n const page = await transport.graphqlQuery(\n {\n query: GetCommitteeInfoDocument,\n variables: {\n epochId: endOfEpochTx.kind.transactions.nodes[0].epoch?.epochId,\n after,\n },\n },\n (data) => data.epoch?.validatorSet?.committeeMembers,\n );\n\n validatorSet?.committeeMembers.nodes.push(...page.nodes);\n hasNextPage = page.pageInfo?.hasNextPage;\n after = page.pageInfo?.endCursor;\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["result", "hasNextPage", "after"]
|
|
7
7
|
}
|