@solana/rpc-graphql 2.0.0-experimental.ffeddf6 → 2.0.0-preview.1
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/README.md +193 -277
- package/dist/index.browser.cjs +3117 -4783
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.js +3114 -4785
- package/dist/index.browser.js.map +1 -1
- package/dist/index.native.js +3115 -4782
- package/dist/index.native.js.map +1 -1
- package/dist/index.node.cjs +3118 -4780
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.js +3115 -4782
- package/dist/index.node.js.map +1 -1
- package/dist/types/context.d.ts +16 -19
- package/dist/types/context.d.ts.map +1 -1
- package/dist/types/index.d.ts +6 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/loaders/account.d.ts +14 -0
- package/dist/types/loaders/account.d.ts.map +1 -0
- package/dist/types/loaders/block.d.ts +4 -0
- package/dist/types/loaders/block.d.ts.map +1 -0
- package/dist/types/loaders/coalescer.d.ts +55 -0
- package/dist/types/loaders/coalescer.d.ts.map +1 -0
- package/dist/types/loaders/index.d.ts +6 -0
- package/dist/types/loaders/index.d.ts.map +1 -0
- package/dist/types/loaders/loader.d.ts +82 -0
- package/dist/types/loaders/loader.d.ts.map +1 -0
- package/dist/types/loaders/program-accounts.d.ts +8 -0
- package/dist/types/loaders/program-accounts.d.ts.map +1 -0
- package/dist/types/loaders/transaction.d.ts +4 -0
- package/dist/types/loaders/transaction.d.ts.map +1 -0
- package/dist/types/resolvers/account.d.ts +232 -0
- package/dist/types/resolvers/account.d.ts.map +1 -0
- package/dist/types/resolvers/block.d.ts +104 -0
- package/dist/types/resolvers/block.d.ts.map +1 -0
- package/dist/types/resolvers/index.d.ts +3 -0
- package/dist/types/resolvers/index.d.ts.map +1 -0
- package/dist/types/resolvers/instruction.d.ts +2220 -0
- package/dist/types/resolvers/instruction.d.ts.map +1 -0
- package/dist/types/resolvers/program-accounts.d.ts +19 -0
- package/dist/types/resolvers/program-accounts.d.ts.map +1 -0
- package/dist/types/resolvers/resolve-info/account.d.ts +15 -0
- package/dist/types/resolvers/resolve-info/account.d.ts.map +1 -0
- package/dist/types/resolvers/resolve-info/block.d.ts +13 -0
- package/dist/types/resolvers/resolve-info/block.d.ts.map +1 -0
- package/dist/types/resolvers/resolve-info/index.d.ts +6 -0
- package/dist/types/resolvers/resolve-info/index.d.ts.map +1 -0
- package/dist/types/resolvers/resolve-info/program-accounts.d.ts +20 -0
- package/dist/types/resolvers/resolve-info/program-accounts.d.ts.map +1 -0
- package/dist/types/resolvers/resolve-info/transaction.d.ts +15 -0
- package/dist/types/resolvers/resolve-info/transaction.d.ts.map +1 -0
- package/dist/types/resolvers/resolve-info/visitor.d.ts +18 -0
- package/dist/types/resolvers/resolve-info/visitor.d.ts.map +1 -0
- package/dist/types/resolvers/root.d.ts +3 -0
- package/dist/types/resolvers/root.d.ts.map +1 -0
- package/dist/types/resolvers/transaction.d.ts +42 -0
- package/dist/types/resolvers/transaction.d.ts.map +1 -0
- package/dist/types/resolvers/types.d.ts +94 -0
- package/dist/types/resolvers/types.d.ts.map +1 -0
- package/dist/types/schema/account.d.ts +2 -0
- package/dist/types/schema/account.d.ts.map +1 -0
- package/dist/types/schema/block.d.ts +2 -0
- package/dist/types/schema/block.d.ts.map +1 -0
- package/dist/types/schema/index.d.ts +2 -0
- package/dist/types/schema/index.d.ts.map +1 -0
- package/dist/types/schema/instruction.d.ts +2 -0
- package/dist/types/schema/instruction.d.ts.map +1 -0
- package/dist/types/schema/root.d.ts +2 -0
- package/dist/types/schema/root.d.ts.map +1 -0
- package/dist/types/schema/transaction.d.ts +2 -0
- package/dist/types/schema/transaction.d.ts.map +1 -0
- package/dist/types/schema/types.d.ts +2 -0
- package/dist/types/schema/types.d.ts.map +1 -0
- package/package.json +14 -37
- package/dist/types/cache.d.ts +0 -7
- package/dist/types/cache.d.ts.map +0 -1
- package/dist/types/rpc.d.ts +0 -13
- package/dist/types/rpc.d.ts.map +0 -1
- package/dist/types/schema/account/index.d.ts +0 -3
- package/dist/types/schema/account/index.d.ts.map +0 -1
- package/dist/types/schema/account/query.d.ts +0 -38
- package/dist/types/schema/account/query.d.ts.map +0 -1
- package/dist/types/schema/account/types.d.ts +0 -5
- package/dist/types/schema/account/types.d.ts.map +0 -1
- package/dist/types/schema/block/index.d.ts +0 -3
- package/dist/types/schema/block/index.d.ts.map +0 -1
- package/dist/types/schema/block/query.d.ts +0 -42
- package/dist/types/schema/block/query.d.ts.map +0 -1
- package/dist/types/schema/block/types.d.ts +0 -7
- package/dist/types/schema/block/types.d.ts.map +0 -1
- package/dist/types/schema/inputs.d.ts +0 -9
- package/dist/types/schema/inputs.d.ts.map +0 -1
- package/dist/types/schema/picks.d.ts +0 -36
- package/dist/types/schema/picks.d.ts.map +0 -1
- package/dist/types/schema/program-accounts/index.d.ts +0 -2
- package/dist/types/schema/program-accounts/index.d.ts.map +0 -1
- package/dist/types/schema/program-accounts/query.d.ts +0 -47
- package/dist/types/schema/program-accounts/query.d.ts.map +0 -1
- package/dist/types/schema/scalars.d.ts +0 -3
- package/dist/types/schema/scalars.d.ts.map +0 -1
- package/dist/types/schema/transaction/index.d.ts +0 -3
- package/dist/types/schema/transaction/index.d.ts.map +0 -1
- package/dist/types/schema/transaction/query.d.ts +0 -33
- package/dist/types/schema/transaction/query.d.ts.map +0 -1
- package/dist/types/schema/transaction/types.d.ts +0 -12
- package/dist/types/schema/transaction/types.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/rpc.ts","../src/cache.ts","../src/context.ts","../src/schema/inputs.ts","../src/schema/picks.ts","../src/schema/scalars.ts","../src/schema/account/types.ts","../src/schema/account/query.ts","../src/schema/block/types.ts","../src/schema/transaction/types.ts","../src/schema/transaction/query.ts","../src/schema/block/query.ts","../src/schema/program-accounts/query.ts"],"names":["GraphQLObjectType","value","GraphQLEnumType","GraphQLInputObjectType","GraphQLInterfaceType","GraphQLUnionType","GraphQLList"],"mappings":"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","sourcesContent":["import { SolanaRpcMethods } from '@solana/rpc-core';\nimport { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';\nimport { graphql, GraphQLObjectType, GraphQLSchema, Source } from 'graphql';\n\nimport { createSolanaGraphQLContext, RpcGraphQLContext } from './context';\nimport { accountQuery, accountTypes } from './schema/account';\nimport { blockQuery, blockTypes } from './schema/block';\nimport { programAccountsQuery } from './schema/program-accounts';\nimport { transactionQuery, transactionTypes } from './schema/transaction';\n\nexport interface RpcGraphQL {\n context: RpcGraphQLContext;\n query(\n source: string | Source,\n variableValues?: { readonly [variable: string]: unknown }\n ): ReturnType<typeof graphql>;\n schema: GraphQLSchema;\n}\n\nexport function createRpcGraphQL(rpc: Rpc<SolanaRpcMethods>): RpcGraphQL {\n const context = createSolanaGraphQLContext(rpc);\n const schema = new GraphQLSchema({\n query: new GraphQLObjectType({\n fields: {\n ...accountQuery(),\n ...blockQuery(),\n ...programAccountsQuery(),\n ...transactionQuery(),\n },\n name: 'RootQuery',\n }),\n types: [...accountTypes(), ...blockTypes(), ...transactionTypes()],\n });\n return {\n context,\n async query(source: string | Source, variableValues?: { readonly [variable: string]: unknown }) {\n const result = await graphql({\n contextValue: this.context,\n schema: this.schema,\n source,\n variableValues,\n });\n this.context.cache.flush();\n return result;\n },\n schema,\n };\n}\n","export interface GraphQLCache {\n flush(): void;\n get(key: string | bigint, variables: unknown): unknown | null;\n insert(key: string | bigint, variables: unknown, value: unknown): void;\n}\n\n// Basic in-memory cache for Node.js\nconst inMemoryCache: { [key: string]: string } = {};\n\nconst stringifyValue = (value: unknown) =>\n JSON.stringify(value, (_, value) => {\n if (typeof value === 'bigint') {\n return value.toString() + 'n';\n }\n return value;\n });\n\nconst parseValue = (value: string) =>\n JSON.parse(value, (_, value) => {\n if (typeof value === 'string' && /\\d+n$/.test(value)) {\n return BigInt(value.slice(0, -1));\n }\n return value;\n });\n\nconst cacheKey = (key: string | bigint, variables: unknown): string =>\n `GraphQLCache:${stringifyValue(key)}:${stringifyValue(variables)}`;\n\nexport function createGraphQLCache(): GraphQLCache {\n return __BROWSER__\n ? {\n // Browser\n flush: () => {\n // Clear all entries from the localStorage related to this cache\n for (let i = localStorage.length - 1; i >= 0; i--) {\n const storageKey = localStorage.key(i);\n if (storageKey && storageKey.startsWith('GraphQLCache:')) {\n localStorage.removeItem(storageKey);\n }\n }\n },\n get: (key, variables) => {\n const value = localStorage.getItem(cacheKey(key, variables));\n return value === null ? null : parseValue(value);\n },\n insert: (key, variables, value) => {\n localStorage.setItem(cacheKey(key, variables), stringifyValue(value));\n },\n }\n : {\n // Node.js\n flush: () => {\n Object.keys(inMemoryCache).forEach(key => delete inMemoryCache[key]);\n },\n get: (key, variables) => {\n const value = inMemoryCache[cacheKey(key, variables)];\n return value === undefined ? null : parseValue(value);\n },\n insert: (key, variables, value) => {\n inMemoryCache[cacheKey(key, variables)] = stringifyValue(value);\n },\n };\n}\n","import { SolanaRpcMethods } from '@solana/rpc-core';\nimport { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { createGraphQLCache, GraphQLCache } from './cache';\nimport { AccountQueryArgs } from './schema/account/query';\nimport { BlockQueryArgs } from './schema/block';\nimport { ProgramAccountsQueryArgs } from './schema/program-accounts';\nimport { TransactionQueryArgs } from './schema/transaction/query';\n\nexport interface RpcGraphQLContext {\n cache: GraphQLCache;\n resolveAccount(args: AccountQueryArgs, info?: GraphQLResolveInfo): ReturnType<typeof resolveAccount>;\n resolveBlock(args: BlockQueryArgs): ReturnType<typeof resolveBlock>;\n resolveProgramAccounts(args: ProgramAccountsQueryArgs): ReturnType<typeof resolveProgramAccounts>;\n resolveTransaction(args: TransactionQueryArgs): ReturnType<typeof resolveTransaction>;\n rpc: Rpc<SolanaRpcMethods>;\n}\n\n// Default to jsonParsed encoding if none is provided\nasync function resolveAccount(\n { address, encoding = 'jsonParsed', ...config }: AccountQueryArgs,\n cache: GraphQLCache,\n rpc: Rpc<SolanaRpcMethods>,\n info?: GraphQLResolveInfo\n) {\n // If a user only requests the account's address, don't call the RPC\n if (info && info.fieldNodes[0].selectionSet) {\n const selectionSet = info.fieldNodes[0].selectionSet;\n const requestedFields = selectionSet.selections.map(field => {\n if (field.kind === 'Field') {\n return field.name.value;\n }\n return null;\n });\n if (requestedFields && requestedFields.length === 1 && requestedFields[0] === 'address') {\n return { address };\n }\n }\n\n const requestConfig = { encoding, ...config };\n\n const cached = cache.get(address, requestConfig);\n if (cached !== null) {\n return cached;\n }\n\n const account = await rpc\n .getAccountInfo(address, requestConfig as Parameters<SolanaRpcMethods['getAccountInfo']>[1])\n .send()\n .then(res => res.value)\n .catch(e => {\n throw e;\n });\n\n if (account === null) {\n // Account does not exist\n // Return only the address\n return {\n address,\n };\n }\n\n const [data, responseEncoding] = Array.isArray(account.data)\n ? encoding === 'jsonParsed'\n ? [account.data[0], 'base64']\n : [account.data[0], encoding]\n : [account.data, 'jsonParsed'];\n const queryResponse = {\n ...account,\n address,\n data,\n encoding: responseEncoding,\n };\n\n cache.insert(address, requestConfig, queryResponse);\n\n return queryResponse;\n}\n\nasync function resolveBlock(\n { slot, encoding = 'jsonParsed', ...config }: BlockQueryArgs,\n cache: GraphQLCache,\n rpc: Rpc<SolanaRpcMethods>\n) {\n const requestConfig = { encoding, ...config };\n\n const cached = cache.get(slot, config);\n if (cached !== null) {\n return cached;\n }\n\n const block = await rpc.getBlock(slot, requestConfig as Parameters<SolanaRpcMethods['getBlock']>[1]).send();\n\n if (block === null) {\n return null;\n }\n\n cache.insert(slot, config, block);\n\n return block;\n}\n\nasync function resolveProgramAccounts(\n { programAddress, encoding = 'jsonParsed', ...config }: ProgramAccountsQueryArgs,\n cache: GraphQLCache,\n rpc: Rpc<SolanaRpcMethods>\n) {\n const requestConfig = { encoding, ...config };\n\n const cached = cache.get(programAddress, requestConfig);\n if (cached !== null) {\n return cached;\n }\n\n const programAccounts = await rpc\n .getProgramAccounts(programAddress, requestConfig as Parameters<SolanaRpcMethods['getProgramAccounts']>[1])\n .send()\n .then(res => {\n if ('value' in res) {\n return res.value as ReturnType<SolanaRpcMethods['getProgramAccounts']>;\n }\n return res as ReturnType<SolanaRpcMethods['getProgramAccounts']>;\n })\n .catch(e => {\n throw e;\n });\n\n const queryResponse = programAccounts.map(programAccount => {\n const [data, responseEncoding] = Array.isArray(programAccount.account.data)\n ? encoding === 'jsonParsed'\n ? [programAccount.account.data[0], 'base64']\n : [programAccount.account.data[0], encoding]\n : [programAccount.account.data, 'jsonParsed'];\n const pubkey = programAccount.pubkey;\n return {\n ...programAccount.account,\n address: pubkey,\n data,\n encoding: responseEncoding,\n };\n });\n\n cache.insert(programAddress, requestConfig, queryResponse);\n\n return queryResponse;\n}\n\nasync function resolveTransaction(\n { signature, encoding = 'jsonParsed', ...config }: TransactionQueryArgs,\n cache: GraphQLCache,\n rpc: Rpc<SolanaRpcMethods>\n) {\n const requestConfig = { encoding, ...config };\n\n const cached = cache.get(signature, requestConfig);\n if (cached !== null) {\n return cached;\n }\n\n const transaction = await rpc\n .getTransaction(signature, requestConfig as Parameters<SolanaRpcMethods['getTransaction']>[1])\n .send();\n\n if (transaction === null) {\n return null;\n }\n\n const [transactionData, responseEncoding, responseFormat] = Array.isArray(transaction.transaction)\n ? encoding === 'jsonParsed'\n ? [transaction.transaction[0], 'base64', 'unparsed']\n : [transaction.transaction[0], encoding, 'unparsed']\n : encoding === 'jsonParsed'\n ? [transaction.transaction, encoding, 'parsed']\n : [transaction.transaction, encoding, 'unparsed'];\n if (transaction.meta) {\n // Ugly, but tells TypeScript what's happening\n (transaction.meta as { format?: string } & { [key: string]: unknown })['format'] = responseFormat;\n }\n if (transactionData.message) {\n // Ugly, but tells TypeScript what's happening\n (transactionData.message as { format?: string } & { [key: string]: unknown })['format'] = responseFormat;\n }\n const queryResponse = {\n ...transaction,\n encoding: responseEncoding,\n transaction: transactionData,\n };\n\n cache.insert(signature, requestConfig, queryResponse);\n\n return queryResponse;\n}\n\nexport function createSolanaGraphQLContext(rpc: Rpc<SolanaRpcMethods>): RpcGraphQLContext {\n const cache = createGraphQLCache();\n return {\n cache,\n resolveAccount(args, info?) {\n return resolveAccount(args, this.cache, this.rpc, info);\n },\n resolveBlock(args) {\n return resolveBlock(args, this.cache, this.rpc);\n },\n resolveProgramAccounts(args) {\n return resolveProgramAccounts(args, this.cache, this.rpc);\n },\n resolveTransaction(args) {\n return resolveTransaction(args, this.cache, this.rpc);\n },\n rpc,\n };\n}\n","import { GraphQLEnumType, GraphQLInputObjectType } from 'graphql';\n\nimport { bigint, number, string } from './picks';\n\nlet memoisedAccountEncodingInputType: GraphQLEnumType | undefined;\nexport const accountEncodingInputType = () => {\n if (!memoisedAccountEncodingInputType)\n memoisedAccountEncodingInputType = new GraphQLEnumType({\n name: 'AccountEncoding',\n values: {\n base58: {\n value: 'base58',\n },\n base64: {\n value: 'base64',\n },\n base64Zstd: {\n value: 'base64+zstd',\n },\n jsonParsed: {\n value: 'jsonParsed',\n },\n },\n });\n return memoisedAccountEncodingInputType;\n};\n\nlet memoisedBlockTransactionDetailsInputType: GraphQLEnumType | undefined;\nexport const blockTransactionDetailsInputType = () => {\n if (!memoisedBlockTransactionDetailsInputType)\n memoisedBlockTransactionDetailsInputType = new GraphQLEnumType({\n name: 'BlockTransactionDetails',\n values: {\n accounts: {\n value: 'accounts',\n },\n full: {\n value: 'full',\n },\n none: {\n value: 'none',\n },\n signatures: {\n value: 'signatures',\n },\n },\n });\n return memoisedBlockTransactionDetailsInputType;\n};\n\nlet memoisedCommitmentInputType: GraphQLEnumType | undefined;\nexport const commitmentInputType = () => {\n if (!memoisedCommitmentInputType)\n memoisedCommitmentInputType = new GraphQLEnumType({\n name: 'Commitment',\n values: {\n confirmed: {\n value: 'confirmed',\n },\n finalized: {\n value: 'finalized',\n },\n processed: {\n value: 'processed',\n },\n },\n });\n return memoisedCommitmentInputType;\n};\n\nlet memoisedDataSliceInputType: GraphQLInputObjectType | undefined;\nexport const dataSliceInputType = () => {\n if (!memoisedDataSliceInputType)\n memoisedDataSliceInputType = new GraphQLInputObjectType({\n fields: {\n length: number(),\n offset: number(),\n },\n name: 'DataSlice',\n });\n return memoisedDataSliceInputType;\n};\n\nlet memoisedMaxSupportedTransactionVersionInputType: GraphQLEnumType | undefined;\nexport const maxSupportedTransactionVersionInputType = () => {\n if (!memoisedMaxSupportedTransactionVersionInputType)\n memoisedMaxSupportedTransactionVersionInputType = new GraphQLEnumType({\n name: 'MaxSupportedTransactionVersion',\n values: {\n legacy: {\n value: 'legacy',\n },\n zero: {\n value: '0',\n },\n },\n });\n return memoisedMaxSupportedTransactionVersionInputType;\n};\n\nlet memoisedProgramAccountFilterInputType: GraphQLInputObjectType | undefined;\nexport const programAccountFilterInputType = () => {\n if (!memoisedProgramAccountFilterInputType)\n memoisedProgramAccountFilterInputType = new GraphQLInputObjectType({\n fields: {\n bytes: bigint(),\n dataSize: bigint(),\n encoding: string(),\n offset: bigint(),\n },\n name: 'ProgramAccountFilter',\n });\n return memoisedProgramAccountFilterInputType;\n};\n\nlet memoisedTransactionEncodingInputType: GraphQLEnumType | undefined;\nexport const transactionEncodingInputType = () => {\n if (!memoisedTransactionEncodingInputType)\n memoisedTransactionEncodingInputType = new GraphQLEnumType({\n name: 'TransactionEncoding',\n values: {\n base58: {\n value: 'base58',\n },\n base64: {\n value: 'base64',\n },\n json: {\n value: 'json',\n },\n jsonParsed: {\n value: 'jsonParsed',\n },\n },\n });\n return memoisedTransactionEncodingInputType;\n};\n","import {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInputObjectType,\n GraphQLInt,\n GraphQLInterfaceType,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLScalarType,\n GraphQLString,\n GraphQLUnionType,\n} from 'graphql';\n\nimport { BigIntScalar } from './scalars';\n\ntype GraphQLType =\n | GraphQLEnumType\n | GraphQLInputObjectType\n | GraphQLInterfaceType\n | GraphQLObjectType\n | GraphQLScalarType\n | GraphQLUnionType;\n\nexport function boolean() {\n return { type: GraphQLBoolean };\n}\n\nlet memoisedBigint: { type: GraphQLScalarType } | undefined;\nexport function bigint() {\n if (!memoisedBigint) memoisedBigint = { type: BigIntScalar() };\n return memoisedBigint;\n}\n\nexport function float() {\n return { type: GraphQLFloat };\n}\nexport function number() {\n return { type: GraphQLInt };\n}\n\nexport function string() {\n return { type: GraphQLString };\n}\n\nexport function type<TFieldType extends GraphQLType>(\n fieldType: TFieldType\n): {\n type: TFieldType;\n} {\n return {\n type: fieldType,\n };\n}\n\nexport function nonNull<TFieldType extends GraphQLType>(fieldType: {\n type: TFieldType;\n}): {\n type: GraphQLList<TFieldType>;\n} {\n return {\n type: new GraphQLNonNull(fieldType.type),\n };\n}\n\nexport function list<TElementType extends GraphQLType>(elementType: {\n type: TElementType;\n}): {\n type: GraphQLList<TElementType>;\n} {\n return {\n type: new GraphQLList(elementType.type),\n };\n}\n\ntype ConstructorParametersOf<T> = T extends new (...args: infer P) => unknown ? P : never;\n\nexport function object(\n name: string,\n fields: ConstructorParametersOf<typeof GraphQLObjectType>[0]['fields']\n): { type: GraphQLObjectType } {\n return {\n type: new GraphQLObjectType({\n fields,\n name,\n }),\n };\n}\n","import { GraphQLScalarType, Kind } from 'graphql';\n\nexport const BigIntScalar = () =>\n new GraphQLScalarType({\n name: 'BigInt',\n\n parseLiteral(ast): bigint | null {\n if (ast.kind === Kind.STRING) {\n return BigInt(ast.value);\n }\n return null;\n },\n\n parseValue(value): bigint {\n return BigInt(value as string);\n },\n\n serialize(value): bigint {\n return BigInt(value as string);\n },\n });\n","import { GraphQLInterfaceType, GraphQLObjectType, GraphQLScalarType } from 'graphql';\n\nimport { accountEncodingInputType, commitmentInputType, dataSliceInputType } from '../inputs';\nimport { bigint, boolean, list, number, object, string, type } from '../picks';\n\nlet memoisedTokenAmountType: GraphQLObjectType | undefined;\nexport const tokenAmountType = () => {\n if (!memoisedTokenAmountType) {\n memoisedTokenAmountType = new GraphQLObjectType({\n fields: {\n amount: string(),\n decimals: number(),\n uiAmount: bigint(),\n uiAmountString: string(),\n },\n name: 'TokenAmount',\n });\n }\n return memoisedTokenAmountType;\n};\n\n/**\n * The fields of the account interface\n */\nlet memoisedAccountInterfaceFields: object | undefined;\nconst accountInterfaceFields = () => {\n if (!memoisedAccountInterfaceFields) {\n memoisedAccountInterfaceFields = {\n address: string(),\n encoding: string(),\n executable: boolean(),\n lamports: bigint(),\n rentEpoch: bigint(),\n };\n }\n return memoisedAccountInterfaceFields;\n};\n\n/**\n * An account interface for GraphQL\n */\nlet memoisedAccountInterface: GraphQLInterfaceType | undefined;\nexport const accountInterface = (): GraphQLInterfaceType => {\n if (!memoisedAccountInterface) {\n memoisedAccountInterface = new GraphQLInterfaceType({\n description: 'A Solana account',\n fields: () => ({\n ...accountInterfaceFields(),\n owner: type(accountInterface()),\n }),\n name: 'Account',\n resolveType(account) {\n if (account.encoding === 'base58') {\n return 'AccountBase58';\n }\n if (account.encoding === 'base64') {\n return 'AccountBase64';\n }\n if (account.encoding === 'base64+zstd') {\n return 'AccountBase64Zstd';\n }\n if (account.encoding === 'jsonParsed') {\n if (account.data.parsed.type === 'mint' && account.data.program === 'spl-token') {\n return 'MintAccount';\n }\n if (account.data.parsed.type === 'account' && account.data.program === 'spl-token') {\n return 'TokenAccount';\n }\n if (account.data.program === 'nonce') {\n return 'NonceAccount';\n }\n if (account.data.program === 'stake') {\n return 'StakeAccount';\n }\n if (account.data.parsed.type === 'vote' && account.data.program === 'vote') {\n return 'VoteAccount';\n }\n if (account.data.parsed.type === 'lookupTable' && account.data.program === 'address-lookup-table') {\n return 'LookupTableAccount';\n }\n }\n return 'AccountBase64';\n },\n });\n }\n return memoisedAccountInterface;\n};\n\n/**\n * An account type implementing the account interface with a\n * specified data encoding structure\n * @param name The name of the account type\n * @param description The description of the account type\n * @param data The data structure of the account type\n * @returns The account type as a GraphQL object implementing the account interface\n */\nconst accountType = (\n name: string,\n description: string,\n data: { type: GraphQLScalarType | GraphQLObjectType }\n): GraphQLObjectType =>\n new GraphQLObjectType({\n description,\n fields: {\n ...accountInterfaceFields(),\n data,\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n resolve: (parent, args, context, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n },\n interfaces: [accountInterface()],\n name,\n });\n\n/**\n * Builds JSON parsed account data\n * Note: JSON parsed data is only available for account types with known schemas.\n * Any account with an unknown schema will return base64 encoded data.\n * @see https://docs.solana.com/api/http#parsed-responses\n * @param name The name of the account type\n * @param parsedInfoFields The fields of the parsed info object\n * @returns The JSON parsed account data as a GraphQL object\n */\nconst accountDataJsonParsed = (name: string, parsedInfoFields: Parameters<typeof object>[1]) =>\n object(name + 'Data', {\n parsed: object(name + 'DataParsed', {\n info: object(name + 'DataParsedInfo', parsedInfoFields),\n type: string(),\n }),\n program: string(),\n space: bigint(),\n });\n\nlet memoisedAccountBase58: GraphQLObjectType | undefined;\nconst accountBase58 = () => {\n if (!memoisedAccountBase58)\n memoisedAccountBase58 = accountType('AccountBase58', 'A Solana account with base58 encoded data', string());\n return memoisedAccountBase58;\n};\n\nlet memoisedAccountBase64: GraphQLObjectType | undefined;\nconst accountBase64 = () => {\n if (!memoisedAccountBase64)\n memoisedAccountBase64 = accountType('AccountBase64', 'A Solana account with base64 encoded data', string());\n return memoisedAccountBase64;\n};\n\nlet memoisedAccountBase64Zstd: GraphQLObjectType | undefined;\nconst accountBase64Zstd = () => {\n if (!memoisedAccountBase64Zstd)\n memoisedAccountBase64Zstd = accountType(\n 'AccountBase64Zstd',\n 'A Solana account with base64 encoded data compressed with zstd',\n string()\n );\n return memoisedAccountBase64Zstd;\n};\n\nlet memoisedAccountNonceAccount: GraphQLObjectType | undefined;\nconst accountNonceAccount = () => {\n if (!memoisedAccountNonceAccount)\n memoisedAccountNonceAccount = accountType(\n 'NonceAccount',\n 'A nonce account',\n accountDataJsonParsed('Nonce', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n blockhash: string(),\n feeCalculator: object('NonceFeeCalculator', {\n lamportsPerSignature: string(),\n }),\n })\n );\n return memoisedAccountNonceAccount;\n};\n\nlet memoisedAccountLookupTable: GraphQLObjectType | undefined;\nconst accountLookupTable = () => {\n if (!memoisedAccountLookupTable)\n memoisedAccountLookupTable = accountType(\n 'LookupTableAccount',\n 'An address lookup table account',\n accountDataJsonParsed('LookupTable', {\n addresses: list(string()),\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n deactivationSlot: string(),\n lastExtendedSlot: string(),\n lastExtendedSlotStartIndex: number(),\n })\n );\n return memoisedAccountLookupTable;\n};\n\nlet memoisedAccountMint: GraphQLObjectType | undefined;\nconst accountMint = () => {\n if (!memoisedAccountMint)\n memoisedAccountMint = accountType(\n 'MintAccount',\n 'An SPL mint',\n accountDataJsonParsed('Mint', {\n decimals: number(),\n freezeAuthority: string(),\n isInitialized: boolean(),\n // Nested Account interface\n mintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mintAuthority }, info),\n type: accountInterface(),\n },\n supply: string(),\n })\n );\n return memoisedAccountMint;\n};\n\nlet memoisedAccountTokenAccount: GraphQLObjectType | undefined;\nconst accountTokenAccount = () => {\n if (!memoisedAccountTokenAccount)\n memoisedAccountTokenAccount = accountType(\n 'TokenAccount',\n 'An SPL token account',\n accountDataJsonParsed('TokenAccount', {\n isNative: boolean(),\n mint: string(),\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n state: string(),\n tokenAmount: type(tokenAmountType()),\n })\n );\n return memoisedAccountTokenAccount;\n};\n\nlet memoisedAccountStakeAccount: GraphQLObjectType | undefined;\nconst accountStakeAccount = () => {\n if (!memoisedAccountStakeAccount)\n memoisedAccountStakeAccount = accountType(\n 'StakeAccount',\n 'A stake account',\n accountDataJsonParsed('Stake', {\n meta: object('StakeMeta', {\n authorized: object('StakeMetaAuthorized', {\n // Nested Account interface\n staker: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.staker }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawer: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawer }, info),\n type: accountInterface(),\n },\n }),\n lockup: object('StakeMetaLockup', {\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n epoch: bigint(),\n unixTimestamp: bigint(),\n }),\n rentExemptReserve: string(),\n }),\n stake: object('StakeStake', {\n creditsObserved: bigint(),\n delegation: object('StakeStakeDelegation', {\n activationEpoch: bigint(),\n deactivationEpoch: bigint(),\n stake: string(),\n // Nested Account interface\n voter: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voter }, info),\n type: accountInterface(),\n },\n warmupCooldownRate: number(),\n }),\n }),\n })\n );\n return memoisedAccountStakeAccount;\n};\n\nlet memoisedAccountVoteAccount: GraphQLObjectType | undefined;\nconst accountVoteAccount = () => {\n if (!memoisedAccountVoteAccount)\n memoisedAccountVoteAccount = accountType(\n 'VoteAccount',\n 'A vote account',\n accountDataJsonParsed('Vote', {\n authorizedVoters: list(\n object('VoteAuthorizedVoter', {\n // Nested Account interface\n authorizedVoter: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorizedVoter }, info),\n type: accountInterface(),\n },\n epoch: bigint(),\n })\n ),\n // Nested Account interface\n authorizedWithdrawer: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorizedWithdrawer }, info),\n type: accountInterface(),\n },\n commission: number(),\n epochCredits: list(\n object('VoteEpochCredits', {\n credits: string(),\n epoch: bigint(),\n previousCredits: string(),\n })\n ),\n lastTimestamp: object('VoteLastTimestamp', {\n slot: bigint(),\n timestamp: bigint(),\n }),\n // Nested Account interface\n node: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nodePubkey }, info),\n type: accountInterface(),\n },\n priorVoters: list(string()),\n rootSlot: bigint(),\n votes: list(\n object('VoteVote', {\n confirmationCount: number(),\n slot: bigint(),\n })\n ),\n })\n );\n return memoisedAccountVoteAccount;\n};\n\nlet memoisedAccountTypes: GraphQLObjectType[] | undefined;\nexport const accountTypes = () => {\n if (!memoisedAccountTypes)\n memoisedAccountTypes = [\n accountBase58(),\n accountBase64(),\n accountBase64Zstd(),\n accountNonceAccount(),\n accountLookupTable(),\n accountMint(),\n accountTokenAccount(),\n accountStakeAccount(),\n accountVoteAccount(),\n ];\n return memoisedAccountTypes;\n};\n","import { Base58EncodedAddress } from '@solana/addresses';\nimport { DataSlice, Slot } from '@solana/rpc-core/dist/types/rpc-methods/common';\nimport { Commitment } from '@solana/rpc-types';\n\nimport { RpcGraphQLContext } from '../../context';\nimport { accountEncodingInputType, commitmentInputType, dataSliceInputType } from '../inputs';\nimport { bigint, nonNull, string, type } from '../picks';\nimport { accountInterface } from './types';\n\nexport type AccountQueryArgs = {\n address: Base58EncodedAddress;\n commitment?: Commitment;\n dataSlice?: DataSlice;\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n minContextSlot?: Slot;\n};\n\n/**\n * Account root query for GraphQL\n */\nexport const accountQuery = () => ({\n account: {\n args: {\n address: nonNull(string()),\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (_parent: unknown, args: AccountQueryArgs, context: RpcGraphQLContext, info: any) =>\n context.resolveAccount(args, info),\n type: accountInterface(),\n },\n});\n","import { GraphQLInterfaceType, GraphQLObjectType } from 'graphql';\n\nimport { bigint, list, object, string, type } from '../picks';\nimport {\n returnData,\n reward,\n tokenBalance,\n transactionInterface,\n transactionMetaLoadedAddresses,\n transactionStatus,\n} from '../transaction';\n\nlet memoisedTransactionForAccounts: GraphQLObjectType | undefined;\nconst transactionForAccounts = () => {\n if (!memoisedTransactionForAccounts)\n memoisedTransactionForAccounts = new GraphQLObjectType({\n fields: {\n meta: object('TransactionMetaForAccounts', {\n computeUnitsUsed: bigint(),\n err: string(),\n fee: bigint(),\n format: string(),\n loadedAddresses: type(transactionMetaLoadedAddresses()),\n logMessages: list(string()),\n postBalances: list(bigint()),\n postTokenBalances: list(type(tokenBalance())),\n preBalances: list(bigint()),\n preTokenBalances: list(type(tokenBalance())),\n returnData: type(returnData()),\n rewards: list(type(reward())),\n status: type(transactionStatus()),\n }),\n transaction: type(transactionInterface()), // TODO\n version: string(),\n },\n name: 'TransactionForAccounts',\n });\n return memoisedTransactionForAccounts;\n};\n\nlet memoisedBlockInterfaceFields: object | undefined;\n/**\n * The fields for the block interface\n */\nconst blockInterfaceFields = () => {\n if (!memoisedBlockInterfaceFields)\n memoisedBlockInterfaceFields = {\n blockHeight: bigint(),\n blockTime: bigint(),\n blockhash: string(),\n parentSlot: bigint(),\n previousBlockhash: string(),\n rewards: list(type(reward())),\n };\n return memoisedBlockInterfaceFields;\n};\n\nlet memoisedBlockInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a block\n */\nexport const blockInterface = () => {\n if (!memoisedBlockInterface)\n memoisedBlockInterface = new GraphQLInterfaceType({\n fields: {\n ...blockInterfaceFields(),\n },\n name: 'Block',\n resolveType(block) {\n if (block.transactionDetails === 'signatures') {\n return 'BlockWithSignatures';\n }\n if (block.transactionDetails === 'accounts') {\n return 'BlockWithAccounts';\n }\n if (block.transactionDetails === 'none') {\n return 'BlockWithNoTransactions';\n }\n return 'BlockWithTransactions';\n },\n });\n return memoisedBlockInterface;\n};\n\nlet memoisedBlockWithNoTransactions: GraphQLObjectType | undefined;\nconst blockWithNoTransactions = () => {\n if (!memoisedBlockWithNoTransactions)\n memoisedBlockWithNoTransactions = new GraphQLObjectType({\n fields: {\n ...blockInterfaceFields(),\n },\n interfaces: [blockInterface()],\n name: 'BlockWithNoTransactions',\n });\n return memoisedBlockWithNoTransactions;\n};\n\nlet memoisedBlockWithSignatures: GraphQLObjectType | undefined;\nconst blockWithSignatures = () => {\n if (!memoisedBlockWithSignatures)\n memoisedBlockWithSignatures = new GraphQLObjectType({\n fields: {\n ...blockInterfaceFields(),\n signatures: list(string()),\n },\n interfaces: [blockInterface()],\n name: 'BlockWithSignatures',\n });\n return memoisedBlockWithSignatures;\n};\n\nlet memoisedBlockWithAccounts: GraphQLObjectType | undefined;\nconst blockWithAccounts = () => {\n if (!memoisedBlockWithAccounts)\n memoisedBlockWithAccounts = new GraphQLObjectType({\n fields: {\n ...blockInterfaceFields(),\n transactions: list(type(transactionForAccounts())),\n },\n interfaces: [blockInterface()],\n name: 'BlockWithAccounts',\n });\n return memoisedBlockWithAccounts;\n};\n\nlet memoisedBlockWithTransactions: GraphQLObjectType | undefined;\nconst blockWithTransactions = () => {\n if (!memoisedBlockWithTransactions)\n memoisedBlockWithTransactions = new GraphQLObjectType({\n fields: {\n ...blockInterfaceFields(),\n transactions: list(type(transactionInterface())),\n },\n interfaces: [blockInterface()],\n name: 'BlockWithTransactions',\n });\n return memoisedBlockWithTransactions;\n};\n\nlet memoisedBlockTypes: GraphQLObjectType[] | undefined;\nexport const blockTypes = () => {\n if (!memoisedBlockTypes)\n memoisedBlockTypes = [\n blockWithNoTransactions(),\n blockWithSignatures(),\n blockWithAccounts(),\n blockWithTransactions(),\n ];\n return memoisedBlockTypes;\n};\n","import { GraphQLInterfaceType, GraphQLList, GraphQLObjectType, GraphQLScalarType, GraphQLUnionType } from 'graphql';\n\nimport { accountInterface } from '../account';\nimport { accountEncodingInputType, commitmentInputType, dataSliceInputType } from '../inputs';\nimport { bigint, boolean, list, number, object, string, type } from '../picks';\n\nlet memoisedTokenBalance: GraphQLObjectType | undefined;\nexport const tokenBalance = () => {\n if (!memoisedTokenBalance)\n memoisedTokenBalance = new GraphQLObjectType({\n fields: {\n accountIndex: number(),\n // Nested Account interface\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n programId: string(),\n uiAmountString: string(),\n },\n name: 'TokenBalance',\n });\n return memoisedTokenBalance;\n};\n\nlet memoisedTransactionStatus: GraphQLUnionType | undefined;\nexport const transactionStatus = () => {\n if (!memoisedTransactionStatus)\n memoisedTransactionStatus = new GraphQLUnionType({\n name: 'TransactionStatus',\n types: [\n new GraphQLObjectType({\n fields: {\n Err: string(),\n },\n name: 'TransactionStatusError',\n }),\n new GraphQLObjectType({\n fields: {\n Ok: string(),\n },\n name: 'TransactionStatusOk',\n }),\n ],\n });\n return memoisedTransactionStatus;\n};\n\nlet memoisedReward: GraphQLObjectType | undefined;\nexport const reward = () => {\n if (!memoisedReward)\n memoisedReward = new GraphQLObjectType({\n fields: {\n commission: number(),\n lamports: bigint(),\n postBalance: bigint(),\n pubkey: string(),\n rewardType: string(),\n },\n name: 'Reward',\n });\n return memoisedReward;\n};\n\nlet memoisedAddressTableLookup: GraphQLObjectType | undefined;\nconst addressTableLookup = () => {\n if (!memoisedAddressTableLookup)\n memoisedAddressTableLookup = new GraphQLObjectType({\n fields: {\n accountKey: string(),\n readableIndexes: list(number()),\n writableIndexes: list(number()),\n },\n name: 'AddressTableLookup',\n });\n return memoisedAddressTableLookup;\n};\n\nlet memoisedReturnData: GraphQLObjectType | undefined;\nexport const returnData = () => {\n if (!memoisedReturnData)\n memoisedReturnData = new GraphQLObjectType({\n fields: {\n data: string(),\n programId: string(),\n },\n name: 'ReturnData',\n });\n return memoisedReturnData;\n};\n\nlet memoisedTransactionInstruction: GraphQLObjectType | undefined;\nconst transactionInstruction = () => {\n if (!memoisedTransactionInstruction)\n memoisedTransactionInstruction = new GraphQLObjectType({\n fields: {\n accounts: list(number()),\n data: string(),\n programIdIndex: number(),\n },\n name: 'TransactionInstruction',\n });\n return memoisedTransactionInstruction;\n};\n\nlet memoisedTransactionMetaLoadedAddresses: GraphQLObjectType | undefined;\nexport const transactionMetaLoadedAddresses = () => {\n if (!memoisedTransactionMetaLoadedAddresses)\n memoisedTransactionMetaLoadedAddresses = new GraphQLObjectType({\n fields: {\n readonly: list(string()), // Base58 encoded addresses\n writable: list(string()), // Base58 encoded addresses\n },\n name: 'TransactionMetaLoadedAddresses',\n });\n return memoisedTransactionMetaLoadedAddresses;\n};\n\nlet memoisedParsedTransactionInstructionInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a parsed transaction instruction\n */\nconst parsedTransactionInstructionInterface = () => {\n if (!memoisedParsedTransactionInstructionInterface)\n memoisedParsedTransactionInstructionInterface = new GraphQLInterfaceType({\n fields: {\n programId: string(),\n },\n name: 'ParsedTransactionInstruction',\n resolveType(instruction) {\n if (instruction.program === 'address-lookup-table') {\n if (instruction.info.type === 'createLookupTable') {\n return 'CreateLookupTableInstruction';\n }\n if (instruction.info.type === 'freezeLookupTable') {\n return 'FreezeLookupTableInstruction';\n }\n if (instruction.info.type === 'extendLookupTable') {\n return 'ExtendLookupTableInstruction';\n }\n if (instruction.info.type === 'deactivateLookupTable') {\n return 'DeactivateLookupTableInstruction';\n }\n if (instruction.info.type === 'closeLookupTable') {\n return 'CloseLookupTableInstruction';\n }\n }\n if (instruction.program === 'bpf-loader') {\n if (instruction.info.type === 'write') {\n return 'BpfLoaderWriteInstruction';\n }\n if (instruction.info.type === 'finalize') {\n return 'BpfLoaderFinalizeInstruction';\n }\n }\n if (instruction.program === 'bpf-upgradeable-loader') {\n if (instruction.info.type === 'initializeBuffer') {\n return 'BpfUpgradeableLoaderInitializeBufferInstruction';\n }\n if (instruction.info.type === 'write') {\n return 'BpfUpgradeableLoaderWriteInstruction';\n }\n if (instruction.info.type === 'deployWithMaxDataLen') {\n return 'BpfUpgradeableLoaderDeployWithMaxDataLenInstruction';\n }\n if (instruction.info.type === 'upgrade') {\n return 'BpfUpgradeableLoaderUpgradeInstruction';\n }\n if (instruction.info.type === 'setAuthority') {\n return 'BpfUpgradeableLoaderSetAuthorityInstruction';\n }\n if (instruction.info.type === 'setAuthorityChecked') {\n return 'BpfUpgradeableLoaderSetAuthorityCheckedInstruction';\n }\n if (instruction.info.type === 'close') {\n return 'BpfUpgradeableLoaderCloseInstruction';\n }\n if (instruction.info.type === 'extendProgram') {\n return 'BpfUpgradeableLoaderExtendProgramInstruction';\n }\n }\n if (instruction.program === 'spl-associated-token-account') {\n if (instruction.info.type === 'create') {\n return 'SplAssociatedTokenCreateInstruction';\n }\n if (instruction.info.type === 'createIdempotent') {\n return 'SplAssociatedTokenCreateIdempotentInstruction';\n }\n if (instruction.info.type === 'recoverNested') {\n return 'SplAssociatedTokenRecoverNestedInstruction';\n }\n }\n if (instruction.program === 'spl-memo') {\n return 'SplMemoInstruction';\n }\n if (instruction.program === 'spl-token') {\n if (instruction.info.type === 'initializeMint') {\n return 'SplTokenInitializeMintInstruction';\n }\n if (instruction.info.type === 'initializeMint2') {\n return 'SplTokenInitializeMint2Instruction';\n }\n if (instruction.info.type === 'initializeAccount') {\n return 'SplTokenInitializeAccountInstruction';\n }\n if (instruction.info.type === 'initializeAccount2') {\n return 'SplTokenInitializeAccount2Instruction';\n }\n if (instruction.info.type === 'initializeAccount3') {\n return 'SplTokenInitializeAccount3Instruction';\n }\n if (instruction.info.type === 'initializeMultisig') {\n return 'SplTokenInitializeMultisigInstruction';\n }\n if (instruction.info.type === 'initializeMultisig2') {\n return 'SplTokenInitializeMultisig2Instruction';\n }\n if (instruction.info.type === 'transfer') {\n return 'SplTokenTransferInstruction';\n }\n if (instruction.info.type === 'approve') {\n return 'SplTokenApproveInstruction';\n }\n if (instruction.info.type === 'revoke') {\n return 'SplTokenRevokeInstruction';\n }\n if (instruction.info.type === 'setAuthority') {\n return 'SplTokenSetAuthorityInstruction';\n }\n if (instruction.info.type === 'mintTo') {\n return 'SplTokenMintToInstruction';\n }\n if (instruction.info.type === 'burn') {\n return 'SplTokenBurnInstruction';\n }\n if (instruction.info.type === 'closeAccount') {\n return 'SplTokenCloseAccountInstruction';\n }\n if (instruction.info.type === 'freezeAccount') {\n return 'SplTokenFreezeAccountInstruction';\n }\n if (instruction.info.type === 'thawAccount') {\n return 'SplTokenThawAccountInstruction';\n }\n if (instruction.info.type === 'transferChecked') {\n return 'SplTokenTransferCheckedInstruction';\n }\n if (instruction.info.type === 'approveChecked') {\n return 'SplTokenApproveCheckedInstruction';\n }\n if (instruction.info.type === 'mintToChecked') {\n return 'SplTokenMintToCheckedInstruction';\n }\n if (instruction.info.type === 'burnChecked') {\n return 'SplTokenBurnCheckedInstruction';\n }\n if (instruction.info.type === 'syncNative') {\n return 'SplTokenSyncNativeInstruction';\n }\n if (instruction.info.type === 'getAccountDataSize') {\n return 'SplTokenGetAccountDataSizeInstruction';\n }\n if (instruction.info.type === 'initializeImmutableOwner') {\n return 'SplTokenInitializeImmutableOwnerInstruction';\n }\n if (instruction.info.type === 'amountToUiAmount') {\n return 'SplTokenAmountToUiAmountInstruction';\n }\n if (instruction.info.type === 'uiAmountToAmount') {\n return 'SplTokenUiAmountToAmountInstruction';\n }\n if (instruction.info.type === 'initializeMintCloseAuthority') {\n return 'SplTokenInitializeMintCloseAuthorityInstruction';\n }\n }\n if (instruction.program === 'stake') {\n if (instruction.info.type === 'initialize') {\n return 'StakeInitializeInstruction';\n }\n if (instruction.info.type === 'authorize') {\n return 'StakeAuthorizeInstruction';\n }\n if (instruction.info.type === 'delegate') {\n return 'StakeDelegateStakeInstruction';\n }\n if (instruction.info.type === 'split') {\n return 'StakeSplitInstruction';\n }\n if (instruction.info.type === 'withdraw') {\n return 'StakeWithdrawInstruction';\n }\n if (instruction.info.type === 'deactivate') {\n return 'StakeDeactivateInstruction';\n }\n if (instruction.info.type === 'setLockup') {\n return 'StakeSetLockupInstruction';\n }\n if (instruction.info.type === 'merge') {\n return 'StakeMergeInstruction';\n }\n if (instruction.info.type === 'authorizeWithSeed') {\n return 'StakeAuthorizeWithSeedInstruction';\n }\n if (instruction.info.type === 'initializeChecked') {\n return 'StakeInitializeCheckedInstruction';\n }\n if (instruction.info.type === 'authorizeChecked') {\n return 'StakeAuthorizeCheckedInstruction';\n }\n if (instruction.info.type === 'authorizeCheckedWithSeed') {\n return 'StakeAuthorizeCheckedWithSeedInstruction';\n }\n if (instruction.info.type === 'setLockupChecked') {\n return 'StakeSetLockupCheckedInstruction';\n }\n if (instruction.info.type === 'deactivateDelinquent') {\n return 'StakeDeactivateDelinquentInstruction';\n }\n if (instruction.info.type === 'redelegate') {\n return 'StakeRedelegateInstruction';\n }\n }\n if (instruction.program === 'system') {\n if (instruction.info.type === 'createAccount') {\n return 'CreateAccountInstruction';\n }\n if (instruction.info.type === 'assign') {\n return 'AssignInstruction';\n }\n if (instruction.info.type === 'transfer') {\n return 'TransferInstruction';\n }\n if (instruction.info.type === 'createAccountWithSeed') {\n return 'CreateAccountWithSeedInstruction';\n }\n if (instruction.info.type === 'advanceNonceAccount') {\n return 'AdvanceNonceAccountInstruction';\n }\n if (instruction.info.type === 'withdrawNonceAccount') {\n return 'WithdrawNonceAccountInstruction';\n }\n if (instruction.info.type === 'initializeNonceAccount') {\n return 'InitializeNonceAccountInstruction';\n }\n if (instruction.info.type === 'authorizeNonceAccount') {\n return 'AuthorizeNonceAccountInstruction';\n }\n if (instruction.info.type === 'upgradeNonceAccount') {\n return 'UpgradeNonceAccountInstruction';\n }\n if (instruction.info.type === 'allocate') {\n return 'AllocateInstruction';\n }\n if (instruction.info.type === 'allocateWithSeed') {\n return 'AllocateWithSeedInstruction';\n }\n if (instruction.info.type === 'assignWithSeed') {\n return 'AssignWithSeedInstruction';\n }\n if (instruction.info.type === 'transferWithSeed') {\n return 'TransferWithSeedInstruction';\n }\n }\n if (instruction.program === 'vote') {\n if (instruction.info.type === 'initialize') {\n return 'VoteInitializeAccountInstruction';\n }\n if (instruction.info.type === 'authorize') {\n return 'VoteAuthorizeInstruction';\n }\n if (instruction.info.type === 'authorizeWithSeed') {\n return 'VoteAuthorizeWithSeedInstruction';\n }\n if (instruction.info.type === 'authorizeCheckedWithSeed') {\n return 'VoteAuthorizeCheckedWithSeedInstruction';\n }\n if (instruction.info.type === 'vote') {\n return 'VoteVoteInstruction';\n }\n if (instruction.info.type === 'updatevotestate') {\n return 'VoteUpdateVoteStateInstruction';\n }\n if (instruction.info.type === 'updatevotestateswitch') {\n return 'VoteUpdateVoteStateSwitchInstruction';\n }\n if (instruction.info.type === 'compactupdatevotestate') {\n return 'VoteCompactUpdateVoteStateInstruction';\n }\n if (instruction.info.type === 'compactupdatevotestateswitch') {\n return 'VoteCompactUpdateVoteStateSwitchInstruction';\n }\n if (instruction.info.type === 'withdraw') {\n return 'VoteWithdrawInstruction';\n }\n if (instruction.info.type === 'updateValidatorIdentity') {\n return 'VoteUpdateValidatorIdentityInstruction';\n }\n if (instruction.info.type === 'updateCommission') {\n return 'VoteUpdateCommissionInstruction';\n }\n if (instruction.info.type === 'voteSwitch') {\n return 'VoteVoteSwitchInstruction';\n }\n if (instruction.info.type === 'authorizeChecked') {\n return 'VoteAuthorizeCheckedInstruction';\n }\n }\n return 'PartiallyDecodedInstruction';\n },\n });\n return memoisedParsedTransactionInstructionInterface;\n};\n\n/**\n * Builds JSON parsed instruction\n * Note: JSON parsed data is only available for instructions with known schemas.\n * Any instruction with an unknown schema will return as a partially decoded transaction\n * with base64 encoded data.\n * @see https://docs.solana.com/api/http#parsed-responses\n * @param name The name of the instruction type\n * @param parsedInfoFields The fields of the parsed info object\n * @returns The JSON parsed instruction as a GraphQL object\n */\nconst parsedTransactionInstructionType = (name: string, parsedInfoFields: Parameters<typeof object>[1]) =>\n new GraphQLObjectType({\n fields: {\n parsed: object(name + 'Parsed', {\n info: object(name + 'ParsedInfo', parsedInfoFields),\n type: string(),\n }),\n program: string(),\n programId: string(),\n },\n interfaces: [parsedTransactionInstructionInterface()],\n name,\n });\n\nlet memoisedPartiallyDecodedTransactionInstruction: GraphQLObjectType | undefined;\nconst partiallyDecodedTransactionInstruction = () => {\n if (!memoisedPartiallyDecodedTransactionInstruction)\n memoisedPartiallyDecodedTransactionInstruction = new GraphQLObjectType({\n fields: {\n accounts: list(string()),\n data: string(),\n programId: string(),\n },\n interfaces: [parsedTransactionInstructionInterface()],\n name: 'PartiallyDecodedInstruction',\n });\n return memoisedPartiallyDecodedTransactionInstruction;\n};\n\nlet memoisedParsedInstructionsAddressLookupTable: GraphQLObjectType[] | undefined;\n/**\n * Address Lookup Table program\n * @see https://github.com/solana-labs/solana/blob/7afb11f1e6daa3e9bd93cfe203211de5b14ba56a/transaction-status/src/parse_address_lookup_table.rs#L13\n */\nconst parsedInstructionsAddressLookupTable = () => {\n if (!memoisedParsedInstructionsAddressLookupTable)\n memoisedParsedInstructionsAddressLookupTable = [\n parsedTransactionInstructionType('CreateLookupTableInstruction', {\n bumpSeed: number(),\n // Nested Account interface\n lookupTableAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n lookupTableAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n payerAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.payerAccount }, info),\n type: accountInterface(),\n },\n recentSlot: bigint(),\n // Nested Account interface\n systemProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.systemProgram }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('FreezeLookupTableInstruction', {\n // Nested Account interface\n lookupTableAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n lookupTableAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('ExtendLookupTableInstruction', {\n // Nested Account interface\n lookupTableAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n lookupTableAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),\n type: accountInterface(),\n },\n newAddresses: list(string()),\n // Nested Account interface\n payerAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.payerAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n systemProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.systemProgram }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('DeactivateLookupTableInstruction', {\n // Nested Account interface\n lookupTableAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n lookupTableAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('CloseLookupTableInstruction', {\n // Nested Account interface\n lookupTableAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n lookupTableAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),\n type: accountInterface(),\n },\n recipient: string(),\n }),\n ];\n return memoisedParsedInstructionsAddressLookupTable;\n};\n\nlet memoisedParsedInstructionsBpfLoader: GraphQLObjectType[] | undefined;\n/**\n * BPF Loader program\n * @see https://github.com/solana-labs/solana/blob/7afb11f1e6daa3e9bd93cfe203211de5b14ba56a/transaction-status/src/parse_bpf_loader.rs#L14\n */\nconst parsedInstructionsBpfLoader = () => {\n if (!memoisedParsedInstructionsBpfLoader)\n memoisedParsedInstructionsBpfLoader = [\n parsedTransactionInstructionType('BpfLoaderWriteInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n bytes: string(),\n offset: number(),\n }),\n parsedTransactionInstructionType('BpfLoaderFinalizeInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n }),\n ];\n return memoisedParsedInstructionsBpfLoader;\n};\n\nlet memoisedParsedInstructionsBpfUpgradeableLoader: GraphQLObjectType[] | undefined;\n/**\n * BPF Upgradeable Loader program\n * @see https://github.com/solana-labs/solana/blob/7afb11f1e6daa3e9bd93cfe203211de5b14ba56a/transaction-status/src/parse_bpf_loader.rs#L49\n */\nconst parsedInstructionsBpfUpgradeableLoader = () => {\n if (!memoisedParsedInstructionsBpfUpgradeableLoader)\n memoisedParsedInstructionsBpfUpgradeableLoader = [\n parsedTransactionInstructionType('BpfUpgradeableLoaderInitializeBufferInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderWriteInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n bytes: string(),\n offset: number(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderDeployWithMaxDataLenInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n bufferAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.bufferAccount }, info),\n type: accountInterface(),\n },\n clockSysvar: string(),\n maxDataLen: bigint(),\n // Nested Account interface\n payerAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.payerAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n programAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.programAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n programDataAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.programDataAccount }, info),\n type: accountInterface(),\n },\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderUpgradeInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n bufferAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.bufferAccount }, info),\n type: accountInterface(),\n },\n clockSysvar: string(),\n // Nested Account interface\n programAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.programAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n programDataAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.programDataAccount }, info),\n type: accountInterface(),\n },\n rentSysvar: string(),\n // Nested Account interface\n spillAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.spillAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderSetAuthorityInstruction', {\n account: string(),\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderSetAuthorityCheckedInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderCloseInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n programAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.programAccount }, info),\n type: accountInterface(),\n },\n recipient: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderExtendProgramInstruction', {\n additionalBytes: bigint(),\n payerAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.payerAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n programAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.programAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n programDataAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.programDataAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n systemProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.systemProgram }, info),\n type: accountInterface(),\n },\n }),\n ];\n return memoisedParsedInstructionsBpfUpgradeableLoader;\n};\n\nlet memoisedParsedInstructionsSplAssociatedToken: GraphQLObjectType[] | undefined;\n/**\n * SPL Associated Token Account program\n * @see https://github.com/solana-labs/solana/blob/1a2c0943db6519dc9519bfc74c2426332ba26850/transaction-status/src/parse_associated_token.rs#L17\n */\nconst parsedInstructionsSplAssociatedToken = () => {\n if (!memoisedParsedInstructionsSplAssociatedToken)\n memoisedParsedInstructionsSplAssociatedToken = [\n parsedTransactionInstructionType('SplAssociatedTokenCreateInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n systemProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.systemProgram }, info),\n type: accountInterface(),\n },\n tokenProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.tokenProgram }, info),\n type: accountInterface(),\n },\n wallet: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.wallet }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplAssociatedTokenCreateIdempotentInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n systemProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.systemProgram }, info),\n type: accountInterface(),\n },\n tokenProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.tokenProgram }, info),\n type: accountInterface(),\n },\n wallet: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.wallet }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplAssociatedTokenRecoverNestedInstruction', {\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n nestedMint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nestedMint }, info),\n type: accountInterface(),\n },\n nestedOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nestedOwner }, info),\n type: accountInterface(),\n },\n nestedSource: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nestedSource }, info),\n type: accountInterface(),\n },\n ownerMint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.ownerMint }, info),\n type: accountInterface(),\n },\n tokenProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.tokenProgram }, info),\n type: accountInterface(),\n },\n wallet: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.wallet }, info),\n type: accountInterface(),\n },\n }),\n ];\n return memoisedParsedInstructionsSplAssociatedToken;\n};\n\nlet memoisedParsedInstructionSplMemo: GraphQLObjectType | undefined;\n/**\n * SPL Memo program\n * @see https://github.com/solana-labs/solana/blob/1a2c0943db6519dc9519bfc74c2426332ba26850/transaction-status/src/parse_instruction.rs#L146\n */\nconst parsedInstructionSplMemo = () => {\n if (!memoisedParsedInstructionSplMemo)\n memoisedParsedInstructionSplMemo = new GraphQLObjectType({\n fields: {\n parsed: string(),\n program: string(),\n programId: string(),\n },\n interfaces: [parsedTransactionInstructionInterface()],\n name: 'SplMemoInstruction',\n });\n return memoisedParsedInstructionSplMemo;\n};\n\nlet memoisedParsedInstructionsSplToken: GraphQLObjectType[] | undefined;\n/**\n * SPL Token program\n * @see https://github.com/solana-labs/solana/blob/d74de6780e2975472796a6a752b362152cd008a6/transaction-status/src/parse_token.rs#L29\n */\nconst parsedInstructionsSplToken = () => {\n if (!memoisedParsedInstructionsSplToken)\n memoisedParsedInstructionsSplToken = [\n parsedTransactionInstructionType('SplTokenInitializeMintInstruction', {\n decimals: number(),\n freezeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.freezeAuthority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n mintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mintAuthority }, info),\n type: accountInterface(),\n },\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeMint2Instruction', {\n decimals: number(),\n freezeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.freezeAuthority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n mintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mintAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenInitializeAccountInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeAccount2Instruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeAccount3Instruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenInitializeMultisigInstruction', {\n m: number(),\n // Nested Account interface\n multisig: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisig }, info),\n type: accountInterface(),\n },\n rentSysvar: string(),\n signers: list(string()),\n }),\n parsedTransactionInstructionType('SplTokenInitializeMultisig2Instruction', {\n m: number(),\n // Nested Account interface\n multisig: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisig }, info),\n type: accountInterface(),\n },\n signers: list(string()),\n }),\n parsedTransactionInstructionType('SplTokenTransferInstruction', {\n amount: string(),\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenApproveInstruction', {\n amount: string(),\n // Nested Account interface\n delegate: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.delegate }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigOwner }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenRevokeInstruction', {\n // Nested Account interface\n multisigOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigOwner }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenSetAuthorityInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n authorityType: string(),\n // Nested Account interface\n multisigAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenMintToInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n amount: string(),\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n mintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mintAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigMintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigMintAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenBurnInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n amount: string(),\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenCloseAccountInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigOwner }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenFreezeAccountInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n freezeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.freezeAuthority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigFreezeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigFreezeAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenThawAccountInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n freezeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.freezeAuthority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigFreezeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigFreezeAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenTransferCheckedInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenApproveCheckedInstruction', {\n // Nested Account interface\n delegate: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.delegate }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigOwner }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenMintToCheckedInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n mintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mintAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigMintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigMintAuthority }, info),\n type: accountInterface(),\n },\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenBurnCheckedInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),\n type: accountInterface(),\n },\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenSyncNativeInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenGetAccountDataSizeInstruction', {\n extensionTypes: list(string()),\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenInitializeImmutableOwnerInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenAmountToUiAmountInstruction', {\n amount: string(),\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenUiAmountToAmountInstruction', {\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n uiAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeMintCloseAuthorityInstruction', {\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n }),\n // TODO: Extensions!\n // - TransferFeeExtension\n // - ConfidentialTransferFeeExtension\n // - DefaultAccountStateExtension\n // - Reallocate\n // - MemoTransferExtension\n // - CreateNativeMint\n // - InitializeNonTransferableMint\n // - InterestBearingMintExtension\n // - CpiGuardExtension\n // - InitializePermanentDelegate\n // - TransferHookExtension\n // - ConfidentialTransferFeeExtension\n // - WithdrawExcessLamports\n // - MetadataPointerExtension\n ];\n return memoisedParsedInstructionsSplToken;\n};\n\nlet memoisedLockup: GraphQLObjectType | undefined;\nconst lockup = () => {\n if (!memoisedLockup)\n memoisedLockup = new GraphQLObjectType({\n fields: {\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n epoch: bigint(),\n unixTimestamp: bigint(),\n },\n name: 'Lockup',\n });\n return memoisedLockup;\n};\n\nlet memoisedParsedInstructionsStake: GraphQLObjectType[] | undefined;\n/**\n * Stake program\n * @see https://github.com/solana-labs/solana/blob/7afb11f1e6daa3e9bd93cfe203211de5b14ba56a/transaction-status/src/parse_stake.rs#L13\n */\nconst parsedInstructionsStake = () => {\n if (!memoisedParsedInstructionsStake)\n memoisedParsedInstructionsStake = [\n parsedTransactionInstructionType('StakeInitializeInstruction', {\n authorized: object('StakeInitializeInstructionAuthorized', {\n // Nested Account interface\n staker: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.staker }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawer: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawer }, info),\n type: accountInterface(),\n },\n }),\n lockup: object('StakeInitializeInstructionLockup', {\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n epoch: bigint(),\n unixTimestamp: bigint(),\n }),\n rentSysvar: string(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeAuthorizeInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeDelegateStakeInstruction', {\n clockSysvar: string(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeConfigAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeConfigAccount }, info),\n type: accountInterface(),\n },\n stakeHistorySysvar: string(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeSplitInstruction', {\n lamports: bigint(),\n newSplitAccount: string(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeWithdrawInstruction', {\n clockSysvar: string(),\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n lamports: bigint(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeDeactivateInstruction', {\n clockSysvar: string(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeSetLockupInstruction', {\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n lockup: type(lockup()),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeMergeInstruction', {\n clockSysvar: string(),\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),\n type: accountInterface(),\n },\n stakeHistorySysvar: string(),\n }),\n parsedTransactionInstructionType('StakeAuthorizeWithSeedInstruction', {\n // Nested Account interface\n authorityBase: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityBase }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authorityOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityOwner }, info),\n type: accountInterface(),\n },\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthorized: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthorized }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeInitializeCheckedInstruction', {\n rentSysvar: string(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n staker: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.staker }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawer: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawer }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeAuthorizeCheckedInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeAuthorizeCheckedWithSeedInstruction', {\n // Nested Account interface\n authorityBase: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityBase }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authorityOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityOwner }, info),\n type: accountInterface(),\n },\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthorized: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthorized }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeSetLockupCheckedInstruction', {\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n lockup: type(lockup()),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeDeactivateDelinquentInstruction', {\n referenceVoteAccount: string(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeRedelegateInstruction', {\n newStakeAccount: string(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeConfigAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeConfigAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n ];\n return memoisedParsedInstructionsStake;\n};\n\nlet memoisedParsedInstructionsSystem: GraphQLObjectType[] | undefined;\n/**\n * System program\n * @see https://github.com/solana-labs/solana/blob/d74de6780e2975472796a6a752b362152cd008a6/transaction-status/src/parse_system.rs#L13\n */\nconst parsedInstructionsSystem = () => {\n if (!memoisedParsedInstructionsSystem)\n memoisedParsedInstructionsSystem = [\n parsedTransactionInstructionType('CreateAccountInstruction', {\n lamports: bigint(),\n // Nested Account interface\n newAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n space: bigint(),\n }),\n parsedTransactionInstructionType('AssignInstruction', {\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('TransferInstruction', {\n amount: string(),\n lamports: number(),\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('CreateAccountWithSeedInstruction', {\n base: string(),\n lamports: bigint(),\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n seed: string(),\n space: bigint(),\n }),\n parsedTransactionInstructionType('AdvanceNonceAccountInstruction', {\n // Nested Account interface\n nonceAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n nonceAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAuthority }, info),\n type: accountInterface(),\n },\n recentBlockhashesSysvar: string(),\n }),\n parsedTransactionInstructionType('WithdrawNonceAccountInstruction', {\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n lamports: bigint(),\n // Nested Account interface\n nonceAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n nonceAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAuthority }, info),\n type: accountInterface(),\n },\n recentBlockhashesSysvar: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('InitializeNonceAccountInstruction', {\n // Nested Account interface\n nonceAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n nonceAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAuthority }, info),\n type: accountInterface(),\n },\n recentBlockhashesSysvar: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('AuthorizeNonceAccountInstruction', {\n // Nested Account interface\n newAuthorized: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthorized }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n nonceAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n nonceAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('UpgradeNonceAccountInstruction', {\n // Nested Account interface\n nonceAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('AllocateInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n space: bigint(),\n }),\n parsedTransactionInstructionType('AllocateWithSeedInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n base: string(),\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n seed: string(),\n space: bigint(),\n }),\n parsedTransactionInstructionType('AssignWithSeedInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n base: string(),\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n seed: string(),\n }),\n parsedTransactionInstructionType('TransferWithSeedInstruction', {\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n lamports: bigint(),\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n sourceBase: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.sourceBase }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n sourceOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.sourceOwner }, info),\n type: accountInterface(),\n },\n sourceSeed: string(),\n }),\n ];\n return memoisedParsedInstructionsSystem;\n};\n\nlet memoisedVote: GraphQLObjectType | undefined;\nconst vote = () => {\n if (!memoisedVote)\n memoisedVote = new GraphQLObjectType({\n fields: {\n hash: string(),\n slots: list(bigint()),\n timestamp: bigint(),\n },\n name: 'Vote',\n });\n return memoisedVote;\n};\n\nlet memoisedVoteStateUpdate: GraphQLObjectType | undefined;\nconst voteStateUpdate = () => {\n if (!memoisedVoteStateUpdate)\n memoisedVoteStateUpdate = new GraphQLObjectType({\n fields: {\n hash: string(),\n lockouts: list(\n object('VoteStateUpdateLockout', {\n confirmationCount: number(),\n slot: bigint(),\n })\n ),\n root: bigint(),\n timestamp: bigint(),\n },\n name: 'VoteStateUpdate',\n });\n return memoisedVoteStateUpdate;\n};\n\nlet memoisedParsedInstructionsVote: GraphQLObjectType[] | undefined;\n/**\n * Vote program\n * @see https://github.com/solana-labs/solana/blob/d74de6780e2975472796a6a752b362152cd008a6/transaction-status/src/parse_vote.rs#L12\n */\nconst parsedInstructionsVote = () => {\n if (!memoisedParsedInstructionsVote)\n memoisedParsedInstructionsVote = [\n parsedTransactionInstructionType('VoteInitializeAccountInstruction', {\n // Nested Account interface\n authorizedVoter: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorizedVoter }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authorizedWithdrawer: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorizedWithdrawer }, info),\n type: accountInterface(),\n },\n clockSysvar: string(),\n commission: number(),\n node: string(),\n rentSysvar: string(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteAuthorizeInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteAuthorizeWithSeedInstruction', {\n // Nested Account interface\n authorityBaseKey: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityBaseKey }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authorityOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityOwner }, info),\n type: accountInterface(),\n },\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteAuthorizeCheckedWithSeedInstruction', {\n // Nested Account interface\n authorityBaseKey: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityBaseKey }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authorityOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityOwner }, info),\n type: accountInterface(),\n },\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteVoteInstruction', {\n clockSysvar: string(),\n slotHashedSysvar: string(),\n vote: type(vote()),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteUpdateVoteStateInstruction', {\n hash: string(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAuthority }, info),\n type: accountInterface(),\n },\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteUpdateVoteStateSwitchInstruction', {\n hash: string(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAuthority }, info),\n type: accountInterface(),\n },\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteCompactUpdateVoteStateInstruction', {\n hash: string(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAuthority }, info),\n type: accountInterface(),\n },\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteCompactUpdateVoteStateSwitchInstruction', {\n hash: string(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAuthority }, info),\n type: accountInterface(),\n },\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteWithdrawInstruction', {\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n lamports: bigint(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteUpdateValidatorIdentityInstruction', {\n // Nested Account interface\n newValidatorIdentity: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newValidatorIdentity }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteUpdateCommissionInstruction', {\n commission: string(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteVoteSwitchInstruction', {\n clockSysvar: string(),\n hash: string(),\n slotHashesSysvar: string(),\n vote: type(vote()),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteAuthorizeCheckedInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n ];\n return memoisedParsedInstructionsVote;\n};\n\nlet memoisedTransactionMetaInterfaceFields: object | undefined;\n/**\n * The fields for the transaction meta interface\n */\nconst transactionMetaInterfaceFields = () => {\n if (!memoisedTransactionMetaInterfaceFields)\n memoisedTransactionMetaInterfaceFields = {\n computeUnitsConsumed: bigint(),\n err: string(),\n fee: bigint(),\n format: string(),\n loadedAddresses: type(transactionMetaLoadedAddresses()),\n logMessages: list(string()),\n postBalances: list(bigint()),\n postTokenBalances: list(type(tokenBalance())),\n preBalances: list(bigint()),\n preTokenBalances: list(type(tokenBalance())),\n returnData: type(returnData()),\n rewards: list(type(reward())),\n status: type(transactionStatus()),\n };\n return memoisedTransactionMetaInterfaceFields;\n};\n\nlet memoisedTransactionMetaInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a transaction meta\n */\nconst transactionMetaInterface = () => {\n if (!memoisedTransactionMetaInterface)\n memoisedTransactionMetaInterface = new GraphQLInterfaceType({\n fields: {\n ...transactionMetaInterfaceFields(),\n },\n name: 'TransactionMeta',\n resolveType(meta) {\n if (meta.format === 'parsed') {\n return 'TransactionMetaParsed';\n }\n return 'TransactionMetaUnparsed';\n },\n });\n return memoisedTransactionMetaInterface;\n};\n\n/**\n * Builds a transaction meta type\n * @param name The name of the transaction meta type\n * @param description The description of the transaction meta type\n * @param innerInstructions The inner instructions of the transaction meta type\n * @returns The transaction meta type as a GraphQL object\n */\nconst transactionMetaType = (\n name: string,\n description: string,\n innerInstructions: { type: GraphQLList<GraphQLObjectType | GraphQLScalarType> }\n) =>\n new GraphQLObjectType({\n description,\n fields: {\n ...transactionMetaInterfaceFields(),\n innerInstructions,\n },\n interfaces: [transactionMetaInterface()],\n name,\n });\n\nlet memoisedTransactionMetaUnparsed: GraphQLObjectType | undefined;\nconst transactionMetaUnparsed = () => {\n if (!memoisedTransactionMetaUnparsed)\n memoisedTransactionMetaUnparsed = transactionMetaType(\n 'TransactionMetaUnparsed',\n 'Non-parsed transaction meta',\n list(\n object('TransactionMetaInnerInstructionsUnparsed', {\n index: number(),\n instructions: list(\n object('TransactionMetaInnerInstructionsUnparsedInstruction', {\n index: number(),\n instructions: list(type(transactionInstruction())),\n })\n ),\n })\n )\n );\n return memoisedTransactionMetaUnparsed;\n};\n\nlet memoisedTransactionMetaParsed: GraphQLObjectType | undefined;\nconst transactionMetaParsed = () => {\n if (!memoisedTransactionMetaParsed)\n memoisedTransactionMetaParsed = transactionMetaType(\n 'TransactionMetaParsed',\n 'Parsed transaction meta',\n list(\n object('TransactionMetaInnerInstructionsParsed', {\n index: number(),\n instructions: list(type(parsedTransactionInstructionInterface())),\n })\n )\n );\n return memoisedTransactionMetaParsed;\n};\n\nlet memoisedTransactionMessageInterfaceFields: object | undefined;\n/**\n * The fields for the transaction message interface\n */\nconst transactionMessageInterfaceFields = () => {\n if (!memoisedTransactionMessageInterfaceFields)\n memoisedTransactionMessageInterfaceFields = {\n addressTableLookups: list(type(addressTableLookup())),\n format: string(),\n header: object('TransactionJsonTransactionHeader', {\n numReadonlySignedAccounts: number(),\n numReadonlyUnsignedAccounts: number(),\n numRequiredSignatures: number(),\n }),\n recentBlockhash: string(),\n };\n return memoisedTransactionMessageInterfaceFields;\n};\n\nlet memoisedTransactionMessageInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a transaction message\n */\nconst transactionMessageInterface = () => {\n if (!memoisedTransactionMessageInterface)\n memoisedTransactionMessageInterface = new GraphQLInterfaceType({\n fields: {\n ...transactionMessageInterfaceFields(),\n },\n name: 'TransactionMessage',\n resolveType(message) {\n if (message.format === 'parsed') {\n return 'TransactionMessageParsed';\n }\n return 'TransactionMessageUnparsed';\n },\n });\n return memoisedTransactionMessageInterface;\n};\n\n/**\n * Builds a transaction message type\n * @param name The name of the transaction message type\n * @param description The description of the transaction message type\n * @param accountKeys The account keys of the transaction message type\n * @param instructions The instructions of the transaction message type\n * @returns The transaction message type as a GraphQL object\n */\nconst transactionMessageType = (\n name: string,\n description: string,\n accountKeys: { type: GraphQLList<GraphQLObjectType | GraphQLScalarType> },\n instructions: { type: GraphQLList<GraphQLInterfaceType | GraphQLObjectType | GraphQLScalarType> }\n) =>\n new GraphQLObjectType({\n description,\n fields: {\n ...transactionMessageInterfaceFields(),\n accountKeys,\n instructions,\n },\n interfaces: [transactionMessageInterface()],\n name,\n });\n\nlet memoisedTransactionMessageUnparsed: GraphQLObjectType | undefined;\nconst transactionMessageUnparsed = () => {\n if (!memoisedTransactionMessageUnparsed)\n memoisedTransactionMessageUnparsed = transactionMessageType(\n 'TransactionMessageUnparsed',\n 'Non-parsed transaction message',\n list(string()),\n list(type(transactionInstruction()))\n );\n return memoisedTransactionMessageUnparsed;\n};\n\nlet memoisedTransactionMessageParsed: GraphQLObjectType | undefined;\nconst transactionMessageParsed = () => {\n if (!memoisedTransactionMessageParsed)\n memoisedTransactionMessageParsed = transactionMessageType(\n 'TransactionMessageParsed',\n 'Parsed transaction message',\n list(\n object('transactionMessageParsedAccountKey', {\n pubkey: string(),\n signer: boolean(),\n source: string(),\n writable: boolean(),\n })\n ),\n list(type(parsedTransactionInstructionInterface()))\n );\n return memoisedTransactionMessageParsed;\n};\n\nlet memoisedTransactionTransaction: GraphQLObjectType | undefined;\n/**\n * The standard transaction type, comprised of all the interfaces\n */\nconst transactionTransaction = () => {\n if (!memoisedTransactionTransaction)\n memoisedTransactionTransaction = new GraphQLObjectType({\n fields: {\n message: type(transactionMessageInterface()),\n signatures: list(string()),\n },\n name: 'TransactionTransaction',\n });\n return memoisedTransactionTransaction;\n};\n\nlet memoisedTransactionInterfaceFields: object | undefined;\n/**\n * The fields for the transaction interface\n */\nconst transactionInterfaceFields = () => {\n if (!memoisedTransactionInterfaceFields)\n memoisedTransactionInterfaceFields = {\n blockTime: bigint(),\n encoding: string(),\n meta: type(transactionMetaInterface()),\n slot: bigint(),\n };\n return memoisedTransactionInterfaceFields;\n};\n\nlet memoisedTransactionInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a transaction\n */\nexport const transactionInterface = () => {\n if (!memoisedTransactionInterface)\n memoisedTransactionInterface = new GraphQLInterfaceType({\n fields: {\n ...transactionInterfaceFields(),\n },\n name: 'Transaction',\n resolveType(transaction) {\n if (transaction.encoding === 'base58') {\n return 'TransactionBase58';\n }\n if (transaction.encoding === 'base64') {\n return 'TransactionBase64';\n }\n if (transaction.encoding === 'json') {\n return 'TransactionJson';\n }\n return 'TransactionJsonParsed';\n },\n });\n return memoisedTransactionInterface;\n};\n\n/**\n * Builds a transaction type\n * @param name The name of the transaction type\n * @param description The description of the transaction type\n * @param transaction The transaction of the transaction type\n * @returns The transaction type as a GraphQL object\n */\nconst transactionType = (\n name: string,\n description: string,\n transaction: { type: GraphQLScalarType | GraphQLObjectType }\n) =>\n new GraphQLObjectType({\n description,\n fields: {\n ...transactionInterfaceFields(),\n transaction,\n },\n interfaces: [transactionInterface()],\n name,\n });\n\nlet memoisedTransactionBase58: GraphQLObjectType | undefined;\nconst transactionBase58 = () => {\n if (!memoisedTransactionBase58)\n memoisedTransactionBase58 = transactionType(\n 'TransactionBase58',\n 'A Solana transaction as base58 encoded data',\n string()\n );\n return memoisedTransactionBase58;\n};\n\nlet memoisedTransactionBase64: GraphQLObjectType | undefined;\nconst transactionBase64 = () => {\n if (!memoisedTransactionBase64)\n memoisedTransactionBase64 = transactionType(\n 'TransactionBase64',\n 'A Solana transaction as base64 encoded data',\n string()\n );\n return memoisedTransactionBase64;\n};\n\nlet memoisedTransactionJson: GraphQLObjectType | undefined;\nconst transactionJson = () => {\n if (!memoisedTransactionJson)\n memoisedTransactionJson = transactionType(\n 'TransactionJson',\n 'A Solana transaction as a JSON object',\n type(transactionTransaction())\n );\n return memoisedTransactionJson;\n};\n\nlet memoisedTransactionJsonParsed: GraphQLObjectType | undefined;\nconst transactionJsonParsed = () => {\n if (!memoisedTransactionJsonParsed)\n memoisedTransactionJsonParsed = transactionType(\n 'TransactionJsonParsed',\n 'A Solana transaction as a parsed JSON object',\n type(transactionTransaction())\n );\n return memoisedTransactionJsonParsed;\n};\n\nlet memoisedTransactionTypes: GraphQLObjectType[] | undefined;\nexport const transactionTypes = () => {\n if (!memoisedTransactionTypes)\n memoisedTransactionTypes = [\n partiallyDecodedTransactionInstruction(),\n ...parsedInstructionsAddressLookupTable(),\n ...parsedInstructionsBpfLoader(),\n ...parsedInstructionsBpfUpgradeableLoader(),\n ...parsedInstructionsStake(),\n ...parsedInstructionsSplAssociatedToken(),\n parsedInstructionSplMemo(),\n ...parsedInstructionsSplToken(),\n ...parsedInstructionsSystem(),\n ...parsedInstructionsVote(),\n transactionMetaUnparsed(),\n transactionMetaParsed(),\n transactionMessageUnparsed(),\n transactionMessageParsed(),\n transactionBase58(),\n transactionBase64(),\n transactionJson(),\n transactionJsonParsed(),\n ];\n return memoisedTransactionTypes;\n};\n","import { Commitment } from '@solana/rpc-types';\nimport { TransactionSignature, TransactionVersion } from '@solana/transactions';\n\nimport { RpcGraphQLContext } from '../../context';\nimport { commitmentInputType, maxSupportedTransactionVersionInputType, transactionEncodingInputType } from '../inputs';\nimport { nonNull, string, type } from '../picks';\nimport { transactionInterface } from './types';\n\nexport type TransactionQueryArgs = {\n signature: TransactionSignature;\n commitment?: Commitment;\n encoding?: 'base58' | 'base64' | 'json' | 'jsonParsed';\n maxSupportedTransactionVersion?: Exclude<TransactionVersion, 'legacy'>;\n};\n\n/**\n * Transaction root query for GraphQL\n */\nexport const transactionQuery = () => ({\n transaction: {\n args: {\n commitment: type(commitmentInputType()),\n encoding: type(transactionEncodingInputType()),\n maxSupportedTransactionVersion: type(maxSupportedTransactionVersionInputType()),\n signature: nonNull(string()),\n },\n resolve: (_parent: unknown, args: TransactionQueryArgs, context: RpcGraphQLContext) =>\n context.resolveTransaction(args),\n type: transactionInterface(),\n },\n});\n","import { Slot } from '@solana/rpc-core/dist/types/rpc-methods/common';\nimport { Commitment } from '@solana/rpc-types';\nimport { TransactionVersion } from '@solana/transactions';\n\nimport { RpcGraphQLContext } from '../../context';\nimport { blockTransactionDetailsInputType, commitmentInputType, transactionEncodingInputType } from '../inputs';\nimport { bigint, boolean, nonNull, string, type } from '../picks';\nimport { blockInterface } from './types';\n\nexport type BlockQueryArgs = {\n slot: Slot;\n commitment?: Commitment;\n encoding?: 'base58' | 'base64' | 'json' | 'jsonParsed';\n maxSupportedTransactionVersion?: Exclude<TransactionVersion, 'legacy'>;\n rewards?: boolean;\n transactionDetails?: 'accounts' | 'full' | 'none' | 'signatures';\n};\n\n/**\n * Block root query for GraphQL\n */\nexport const blockQuery = () => ({\n block: {\n args: {\n commitment: type(commitmentInputType()),\n encoding: type(transactionEncodingInputType()),\n maxSupportedTransactionVersion: string(),\n rewards: boolean(),\n slot: nonNull(bigint()),\n transactionDetails: type(blockTransactionDetailsInputType()),\n },\n resolve: (_parent: unknown, args: BlockQueryArgs, context: RpcGraphQLContext) => context.resolveBlock(args),\n type: blockInterface(),\n },\n});\n","import { Base58EncodedAddress } from '@solana/addresses';\nimport {\n DataSlice,\n GetProgramAccountsDatasizeFilter,\n GetProgramAccountsMemcmpFilter,\n Slot,\n} from '@solana/rpc-core/dist/types/rpc-methods/common';\nimport { Commitment } from '@solana/rpc-types';\nimport { GraphQLList } from 'graphql';\n\nimport { RpcGraphQLContext } from '../../context';\nimport { accountInterface } from '../account';\nimport {\n accountEncodingInputType,\n commitmentInputType,\n dataSliceInputType,\n programAccountFilterInputType,\n} from '../inputs';\nimport { bigint, list, nonNull, string, type } from '../picks';\n\nexport type ProgramAccountsQueryArgs = {\n programAddress: Base58EncodedAddress;\n commitment?: Commitment;\n dataSlice?: DataSlice;\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n filters: (GetProgramAccountsMemcmpFilter | GetProgramAccountsDatasizeFilter)[];\n minContextSlot?: Slot;\n withContext?: boolean;\n};\n\n/**\n * Program accounts root query for GraphQL\n */\nexport const programAccountsQuery = () => ({\n programAccounts: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n filters: list(type(programAccountFilterInputType())),\n minContextSlot: bigint(),\n programAddress: nonNull(string()),\n withContext: string(),\n },\n resolve: (_parent: unknown, args: ProgramAccountsQueryArgs, context: RpcGraphQLContext) =>\n context.resolveProgramAccounts(args),\n type: new GraphQLList(accountInterface()),\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/loaders/account.ts","../src/loaders/loader.ts","../src/loaders/coalescer.ts","../src/loaders/block.ts","../src/loaders/program-accounts.ts","../src/loaders/transaction.ts","../src/context.ts","../src/resolvers/resolve-info/account.ts","../src/resolvers/resolve-info/visitor.ts","../src/resolvers/resolve-info/transaction.ts","../src/resolvers/resolve-info/block.ts","../src/resolvers/resolve-info/program-accounts.ts","../src/resolvers/account.ts","../src/resolvers/transaction.ts","../src/resolvers/block.ts","../src/resolvers/instruction.ts","../src/resolvers/program-accounts.ts","../src/resolvers/root.ts","../src/resolvers/types.ts","../src/resolvers/index.ts","../src/schema/account.ts","../src/schema/block.ts","../src/schema/instruction.ts","../src/schema/root.ts","../src/schema/transaction.ts","../src/schema/types.ts","../src/schema/index.ts"],"names":["toFetch","args","promiseCallbacksForSignature","promiseCallbacksForAddress","ii","DataLoader","onlyFieldsRequested","info","findArgumentNodeByName","programName","programId","instructionType","jsonParsedConfigs","i"],"mappings":"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,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACP;AACJ;;;AClBO,IAAM;AAAA;AAAA,EAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAtC,IAAM;AAAA;AAAA,EAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACGpC,IAAM;AAAA;AAAA,EAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACH1C,IAAM;AAAA;AAAA,EAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCnC,IAAM;AAAA;AAAA,EAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACD1C,IAAM;AAAA;AAAA,EAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACOnC,SAAS,8BAA8B;AAC1C,SAAO,CAAC,iBAAiB,eAAe,qBAAqB,cAAc,cAAc,mBAAmB;AAChH;;;A3BKO,SAAS,iBACZ,KACA,QACU;AACV,QAAM,mBAAmB;AAAA,IACrB,uBAAuB,QAAQ,yBAAyB;AAAA,IACxD,8BAA8B,QAAQ,gCAAgC;AAAA,EAC1E;AACA,QAAM,SAAS,qBAAqB;AAAA,IAChC,WAAW,6BAA6B;AAAA,IACxC,UAAU,4BAA4B;AAAA,EAC1C,CAAC;AACD,SAAO;AAAA,IACH,MAAM,MAAM,QAAQ,gBAAiB;AACjC,YAAM,eAAe,2BAA2B,KAAK,gBAAgB;AACrE,aAAO,QAAQ;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AACJ","sourcesContent":["import { makeExecutableSchema } from '@graphql-tools/schema';\nimport { graphql } from 'graphql';\n\nimport { createSolanaGraphQLContext } from './context';\nimport { createSolanaGraphQLResolvers } from './resolvers';\nimport { createSolanaGraphQLTypeDefs } from './schema';\n\nexport interface RpcGraphQL {\n query(\n source: Parameters<typeof graphql>[0]['source'],\n variableValues?: Parameters<typeof graphql>[0]['variableValues'],\n ): ReturnType<typeof graphql>;\n}\n\nexport function createRpcGraphQL(\n rpc: Parameters<typeof createSolanaGraphQLContext>[0],\n config?: Partial<Parameters<typeof createSolanaGraphQLContext>[1]>,\n): RpcGraphQL {\n const rpcGraphQLConfig = {\n maxDataSliceByteRange: config?.maxDataSliceByteRange ?? 200,\n maxMultipleAccountsBatchSize: config?.maxMultipleAccountsBatchSize ?? 100,\n };\n const schema = makeExecutableSchema({\n resolvers: createSolanaGraphQLResolvers(),\n typeDefs: createSolanaGraphQLTypeDefs(),\n });\n return {\n async query(source, variableValues?) {\n const contextValue = createSolanaGraphQLContext(rpc, rpcGraphQLConfig);\n return graphql({\n contextValue,\n schema,\n source,\n variableValues,\n });\n },\n };\n}\n","import { Address } from '@solana/addresses';\nimport { getBase58Codec, getBase64Codec } from '@solana/codecs-strings';\nimport type { GetAccountInfoApi, GetMultipleAccountsApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { buildCoalescedFetchesByArgsHashWithDataSlice, ToFetchMap } from './coalescer';\nimport {\n AccountLoader,\n AccountLoaderArgs,\n AccountLoaderArgsBase,\n AccountLoaderValue,\n cacheKeyFn,\n MultipleAccountsLoaderArgs,\n} from './loader';\n\ntype Config = {\n maxDataSliceByteRange: number;\n maxMultipleAccountsBatchSize: number;\n};\n\ntype Encoding = 'base58' | 'base64' | 'base64+zstd';\ntype DataSlice = { length: number; offset: number };\n\nfunction getCodec(encoding: Encoding) {\n switch (encoding) {\n case 'base58':\n return getBase58Codec();\n default:\n return getBase64Codec();\n }\n}\n\nexport function sliceData(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n account: any,\n dataSlice?: DataSlice | null,\n masterDataSlice?: DataSlice,\n) {\n if (dataSlice) {\n const masterOffset = masterDataSlice ? masterDataSlice.offset : 0;\n\n const slicedData = (data: string, encoding: Encoding): string => {\n if (encoding === 'base64+zstd') {\n // Don't slice `base64+zstd` encoding.\n return data;\n }\n const { offset, length } = dataSlice;\n const trueOffset = offset - masterOffset;\n const codec = getCodec(encoding);\n return codec.decode(codec.encode(data).slice(trueOffset, trueOffset + length));\n };\n\n if (Array.isArray(account.data)) {\n const [data, encoding] = account.data;\n return {\n ...account,\n data: [slicedData(data, encoding), encoding],\n };\n } else if (typeof account.data === 'string') {\n const data = account.data;\n return {\n ...account,\n data: slicedData(data, 'base58'),\n };\n }\n }\n return account;\n}\n\n/**\n * Load an account using the RPC's `getAccountInfo` method.\n */\nasync function loadAccount(rpc: Rpc<GetAccountInfoApi>, { address, ...config }: AccountLoaderArgs) {\n return await rpc\n .getAccountInfo(address, config)\n .send()\n .then(res => res.value);\n}\n\n/**\n * Load multiple accounts using the RPC's `getMultipleAccounts` method.\n */\nasync function loadMultipleAccounts(\n rpc: Rpc<GetMultipleAccountsApi>,\n { addresses, ...config }: MultipleAccountsLoaderArgs,\n) {\n return await rpc\n .getMultipleAccounts(addresses, config)\n .send()\n .then(res => res.value);\n}\n\nfunction createAccountBatchLoadFn(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, config: Config) {\n const resolveAccountUsingRpc = loadAccount.bind(null, rpc);\n const resolveMultipleAccountsUsingRpc = loadMultipleAccounts.bind(null, rpc);\n return async (accountQueryArgs: readonly AccountLoaderArgs[]): ReturnType<AccountLoader['loadMany']> => {\n /**\n * Gather all the accounts that need to be fetched, grouped by address.\n */\n const accountsToFetch: ToFetchMap<AccountLoaderArgsBase, AccountLoaderValue> = {};\n try {\n return Promise.all(\n accountQueryArgs.map(\n ({ address, ...args }) =>\n new Promise((resolve, reject) => {\n const accountRecords = (accountsToFetch[address] ||= []);\n // Apply the default commitment level.\n if (!args.commitment) {\n args.commitment = 'confirmed';\n }\n accountRecords.push({ args, promiseCallback: { reject, resolve } });\n }),\n ),\n ) as ReturnType<AccountLoader['loadMany']>;\n } finally {\n const { maxDataSliceByteRange, maxMultipleAccountsBatchSize } = config;\n\n /**\n * Group together accounts that are fetched with identical args.\n */\n const accountFetchesByArgsHash = buildCoalescedFetchesByArgsHashWithDataSlice(\n accountsToFetch,\n maxDataSliceByteRange,\n );\n\n /**\n * For each set of accounts related to some common args, fetch them in the fewest number\n * of network requests.\n */\n Object.values(accountFetchesByArgsHash).map(({ args, fetches: addressCallbacks }) => {\n const addresses = Object.keys(addressCallbacks) as Address[];\n if (addresses.length === 1) {\n const address = addresses[0];\n return Array.from({ length: 1 }, async () => {\n try {\n const result = await resolveAccountUsingRpc({ address, ...args });\n addressCallbacks[address].callbacks.forEach(({ callback, dataSlice }) => {\n callback.resolve(sliceData(result, dataSlice, args.dataSlice));\n });\n } catch (e) {\n addressCallbacks[address].callbacks.forEach(({ callback }) => {\n callback.reject(e);\n });\n }\n });\n } else {\n return Array.from(\n { length: Math.ceil(addresses.length / maxMultipleAccountsBatchSize) },\n async (_, ii) => {\n const startIndex = ii * maxMultipleAccountsBatchSize;\n const endIndex = startIndex + maxMultipleAccountsBatchSize;\n const chunk = addresses.slice(startIndex, endIndex);\n try {\n const results = await resolveMultipleAccountsUsingRpc({\n addresses: chunk,\n ...args,\n });\n chunk.forEach((address, ii) => {\n const result = results[ii];\n addressCallbacks[address].callbacks.forEach(({ callback, dataSlice }) => {\n callback.resolve(sliceData(result, dataSlice, args.dataSlice));\n });\n });\n } catch (e) {\n chunk.forEach(address => {\n addressCallbacks[address].callbacks.forEach(({ callback }) => {\n callback.reject(e);\n });\n });\n }\n },\n );\n }\n });\n }\n };\n}\n\nexport function createAccountLoader(\n rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>,\n config: Config,\n): AccountLoader {\n const loader = new DataLoader(createAccountBatchLoadFn(rpc, config), { cacheKeyFn });\n return {\n load: async args => loader.load(args),\n loadMany: async args => loader.loadMany(args),\n };\n}\n","import type { Address } from '@solana/addresses';\nimport type { Signature } from '@solana/keys';\nimport type { GetAccountInfoApi, GetBlockApi, GetProgramAccountsApi, GetTransactionApi } from '@solana/rpc';\nimport type { Commitment, Slot } from '@solana/rpc-types';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport stringify from 'json-stable-stringify';\n\nexport type BatchLoadPromiseCallback<T> = Readonly<{\n reject: (reason?: unknown) => void;\n resolve: (value: T) => void;\n}>;\n\n// Loader base types\nexport type LoadFn<TArgs, T> = (args: TArgs) => Promise<T>;\nexport type LoadManyFn<TArgs, T> = (args: TArgs[]) => Promise<(Error | T)[]>;\nexport type Loader<TArgs, T> = { load: LoadFn<TArgs, T>; loadMany: LoadManyFn<TArgs, T> };\n\nexport type AccountLoaderArgsBase = {\n commitment?: Commitment;\n dataSlice?: { length: number; offset: number };\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n minContextSlot?: Slot;\n};\nexport type AccountLoaderArgs = AccountLoaderArgsBase & { address: Address };\nexport type AccountLoaderValue = ReturnType<GetAccountInfoApi['getAccountInfo']>['value'] | null;\nexport type AccountLoader = Loader<AccountLoaderArgs, AccountLoaderValue>;\n\nexport type BlockLoaderArgsBase = {\n commitment?: Omit<Commitment, 'processed'>;\n encoding?: 'base58' | 'base64' | 'json' | 'jsonParsed';\n maxSupportedTransactionVersion?: 'legacy' | 0;\n rewards?: boolean;\n transactionDetails?: 'accounts' | 'full' | 'none' | 'signatures';\n};\nexport type BlockLoaderArgs = BlockLoaderArgsBase & { slot: Slot };\nexport type BlockLoaderValue = ReturnType<GetBlockApi['getBlock']> | null;\nexport type BlockLoader = Loader<BlockLoaderArgs, BlockLoaderValue>;\n\nexport type MultipleAccountsLoaderArgs = AccountLoaderArgsBase & { addresses: Address[] };\nexport type MultipleAccountsLoaderValue = AccountLoaderValue[];\nexport type MultipleAccountsLoader = Loader<MultipleAccountsLoaderArgs, MultipleAccountsLoaderValue>;\n\nexport type ProgramAccountsLoaderArgsBase = {\n commitment?: Commitment;\n dataSlice?: { length: number; offset: number };\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n filters?: readonly { memcmp: { bytes: string; offset: number } }[];\n minContextSlot?: Slot;\n};\nexport type ProgramAccountsLoaderArgs = ProgramAccountsLoaderArgsBase & { programAddress: Address };\nexport type ProgramAccountsLoaderValue = ReturnType<GetProgramAccountsApi['getProgramAccounts']>;\nexport type ProgramAccountsLoader = Loader<ProgramAccountsLoaderArgs, ProgramAccountsLoaderValue>;\n\nexport type TransactionLoaderArgsBase = {\n commitment?: Omit<Commitment, 'processed'>;\n encoding?: 'base58' | 'base64' | 'json' | 'jsonParsed';\n};\nexport type TransactionLoaderArgs = TransactionLoaderArgsBase & { signature: Signature };\nexport type TransactionLoaderValue = ReturnType<GetTransactionApi['getTransaction']> | null;\nexport type TransactionLoader = Loader<TransactionLoaderArgs, TransactionLoaderValue>;\n\nexport type RpcGraphQLLoaders = {\n account: AccountLoader;\n block: BlockLoader;\n programAccounts: ProgramAccountsLoader;\n transaction: TransactionLoader;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction replacer(_: any, value: any) {\n if (typeof value === 'bigint') {\n return value.toString() + 'n';\n }\n return value;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const cacheKeyFn = (obj: any) => stringify(obj, { replacer });\n","import { DataSlice } from '@solana/rpc-types';\n\nimport { BatchLoadPromiseCallback, cacheKeyFn } from './loader';\n\ntype Encoding = ('base58' | 'base64' | 'base64+zstd' | 'jsonParsed') | ('base58' | 'base64' | 'json' | 'jsonParsed');\n\nexport type Fetch<TArgs extends { encoding?: Encoding }, TValue> = Readonly<{\n args: TArgs;\n promiseCallback: BatchLoadPromiseCallback<TValue>;\n}>;\nexport type ToFetchMap<TArgs extends { encoding?: Encoding }, TValue> = {\n [key: string]: Fetch<TArgs, TValue>[];\n};\nexport type FetchesByArgsHash<TArgs extends { encoding?: Encoding }, TValue> = {\n [argsHash: string]: {\n args: TArgs;\n fetches: {\n [key: string]: {\n callbacks: BatchLoadPromiseCallback<TValue>[];\n };\n };\n };\n};\nexport type FetchesByArgsHashWithDataSlice<TArgs extends { dataSlice?: DataSlice; encoding?: Encoding }, TValue> = {\n [argsHash: string]: {\n args: TArgs;\n fetches: {\n [key: string]: {\n callbacks: {\n callback: BatchLoadPromiseCallback<TValue>;\n dataSlice?: DataSlice | null;\n }[];\n };\n };\n };\n};\n\nconst hashOmit = <TArgs extends object>(args: TArgs, omit: (keyof TArgs)[]) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const argsObj: any = {};\n for (const [key, value] of Object.entries(args)) {\n if (!omit.includes(key as keyof TArgs)) {\n argsObj[key] = value;\n }\n }\n return cacheKeyFn(argsObj);\n};\n\nexport function buildCoalescedFetchesByArgsHash<TArgs extends { encoding?: Encoding }, TValue>(\n toFetchMap: ToFetchMap<TArgs, TValue>,\n orphanConfig: {\n criteria: (args: TArgs) => boolean;\n defaults: (args: TArgs) => TArgs;\n hashOmit: (keyof TArgs)[];\n },\n): FetchesByArgsHash<TArgs, TValue> {\n const fetchesByArgsHash: FetchesByArgsHash<TArgs, TValue> = {};\n\n // Keep track of any fetches that don't specify an encoding, to be\n // wrapped into another fetch that does.\n const orphanedFetches: typeof toFetchMap = {};\n\n Object.entries(toFetchMap).forEach(([signature, toFetch]) => {\n toFetch.forEach(({ args, promiseCallback }) => {\n if (orphanConfig.criteria(args)) {\n const toFetch = (orphanedFetches[signature] ||= []);\n toFetch.push({ args, promiseCallback });\n return;\n }\n\n const argsHash = hashOmit(args, []);\n const transactionFetches = (fetchesByArgsHash[argsHash] ||= {\n args,\n fetches: {},\n });\n const { callbacks: promiseCallbacksForSignature } = (transactionFetches.fetches[signature] ||= {\n callbacks: [],\n });\n promiseCallbacksForSignature.push(promiseCallback);\n });\n });\n\n // Place the orphans\n Object.entries(orphanedFetches).forEach(([signature, toFetch]) => {\n toFetch.forEach(({ args: orphanArgs, promiseCallback: orphanPromiseCallback }) => {\n if (Object.keys(fetchesByArgsHash).length !== 0) {\n for (const { fetches, args } of Object.values(fetchesByArgsHash)) {\n // Check if the two arg sets are a match without `encoding`\n if (hashOmit(orphanArgs, orphanConfig.hashOmit) === hashOmit(args, orphanConfig.hashOmit)) {\n const { callbacks: promiseCallbacksForSignature } = (fetches[signature] ||= {\n callbacks: [],\n });\n promiseCallbacksForSignature.push(orphanPromiseCallback);\n return;\n }\n }\n }\n // Create a new fetch.\n const args = orphanConfig.defaults(orphanArgs);\n const argsHash = hashOmit(args, []);\n const transactionFetches = (fetchesByArgsHash[argsHash] ||= {\n args,\n fetches: {},\n });\n const { callbacks: promiseCallbacksForSignature } = (transactionFetches.fetches[signature] ||= {\n callbacks: [],\n });\n promiseCallbacksForSignature.push(orphanPromiseCallback);\n });\n });\n\n return fetchesByArgsHash;\n}\n\nexport function buildCoalescedFetchesByArgsHashWithDataSlice<\n TArgs extends { dataSlice?: DataSlice; encoding?: Encoding },\n TValue,\n>(toFetchMap: ToFetchMap<TArgs, TValue>, maxDataSliceByteRange: number): FetchesByArgsHashWithDataSlice<TArgs, TValue> {\n const fetchesByArgsHash: FetchesByArgsHashWithDataSlice<TArgs, TValue> = {};\n\n // Keep track of any fetches that don't specify an encoding, to be\n // wrapped into another fetch that does.\n const orphanedFetches: typeof toFetchMap = {};\n\n Object.entries(toFetchMap).forEach(([address, toFetch]) => {\n toFetch.forEach(({ args, promiseCallback }) => {\n // As per the schema, `encoding` can only be provided if a\n // `data` field is present, and the argument is required.\n // So we can assume if no encoding is provided, this\n // particular fetch is not concerned with data. We can\n // combine it with some other fetch.\n if (!args.encoding) {\n const toFetch = (orphanedFetches[address] ||= []);\n toFetch.push({ args, promiseCallback });\n return;\n }\n // As per the schema, `dataSlice` cannot be provided without\n // encoding.\n // Don't try to combine fetches with `base64+zstd` encoding.\n if (args.encoding != 'base64+zstd' && args.dataSlice) {\n // If the fetch arg set has `dataSlice` provided, try\n // to combine it with another request.\n const r = args.dataSlice;\n for (const { fetches: fetchAddresses, args: fetchArgs } of Object.values(fetchesByArgsHash)) {\n /**\n * Add a callback to the list of callbacks for the current address,\n * possibly updating the `dataSlice` argument used for the entire\n * fetch.\n */\n const addCallbackWithDataSlice = (updateDataSlice?: DataSlice) => {\n const { callbacks: promiseCallbacksForAddress } = (fetchAddresses[address] ||= {\n callbacks: [],\n });\n promiseCallbacksForAddress.push({\n callback: promiseCallback,\n dataSlice: args.dataSlice ?? null,\n });\n if (fetchArgs.dataSlice && updateDataSlice) {\n fetchArgs.dataSlice = updateDataSlice;\n }\n };\n\n // Check if the two arg sets are a match without the `dataSlice`\n // argument.\n if (hashOmit(args, ['dataSlice']) === hashOmit(fetchArgs, ['dataSlice'])) {\n if (fetchArgs.dataSlice) {\n // The arg sets match, and the fetch arg set has a `dataSlice`\n // argument. Try to merge the two account fetches.\n const g = fetchArgs.dataSlice;\n if (r.offset <= g.offset && g.offset - r.offset + r.length <= maxDataSliceByteRange) {\n const length = Math.max(r.length, g.offset + g.length - r.offset);\n const offset = r.offset;\n addCallbackWithDataSlice({ length, offset });\n return;\n }\n if (r.offset >= g.offset && r.offset - g.offset + g.length <= maxDataSliceByteRange) {\n const length = Math.max(g.length, r.offset + r.length - g.offset);\n const offset = g.offset;\n addCallbackWithDataSlice({ length, offset });\n return;\n }\n } else {\n // The arg sets match, and the fetch arg set has no `dataSlice`\n // argument. Merge the two account fetches.\n const { length, offset } = r;\n addCallbackWithDataSlice({ length, offset });\n return;\n }\n }\n }\n }\n // Either the fetch arg set has no `dataSlice` argument, or\n // it couldn't be combined with another fetch, likely due to\n // the wasted byte limitation.\n // Add the fetch to the list as a new fetch.\n const argsHash = hashOmit(args, []);\n const accountFetches = (fetchesByArgsHash[argsHash] ||= {\n args,\n fetches: {},\n });\n const { callbacks: promiseCallbacksForAddress } = (accountFetches.fetches[address] ||= {\n callbacks: [],\n });\n promiseCallbacksForAddress.push({ callback: promiseCallback, dataSlice: args.dataSlice ?? null });\n });\n });\n\n // Place the orphans\n Object.entries(orphanedFetches).forEach(([address, toFetch]) => {\n toFetch.forEach(({ args: orphanedArgs, promiseCallback: orphanPromiseCallback }) => {\n if (Object.keys(fetchesByArgsHash).length !== 0) {\n for (const { fetches, args } of Object.values(fetchesByArgsHash)) {\n // Check if the two arg sets are a match without\n // `encoding` and `dataSlice` arguments.\n if (\n hashOmit(orphanedArgs, ['encoding', 'dataSlice']) === hashOmit(args, ['encoding', 'dataSlice'])\n ) {\n const { callbacks: promiseCallbacksForAddress } = (fetches[address] ||= {\n callbacks: [],\n });\n promiseCallbacksForAddress.push({ callback: orphanPromiseCallback });\n return;\n }\n }\n }\n // Create a new fetch. Prefer `base64` encoding.\n const args: TArgs = { ...orphanedArgs, encoding: 'base64' };\n const argsHash = hashOmit(args, []);\n const accountFetches = (fetchesByArgsHash[argsHash] ||= {\n args,\n fetches: {},\n });\n const { callbacks: promiseCallbacksForAddress } = (accountFetches.fetches[address] ||= {\n callbacks: [],\n });\n promiseCallbacksForAddress.push({ callback: orphanPromiseCallback });\n });\n });\n\n return fetchesByArgsHash;\n}\n","import type { GetBlockApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { buildCoalescedFetchesByArgsHash, ToFetchMap } from './coalescer';\nimport { BlockLoader, BlockLoaderArgs, BlockLoaderArgsBase, BlockLoaderValue, cacheKeyFn } from './loader';\n\nasync function loadBlock(rpc: Rpc<GetBlockApi>, { slot, ...config }: BlockLoaderArgs): Promise<BlockLoaderValue> {\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n return await rpc\n .getBlock(\n slot,\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n config,\n )\n .send();\n}\n\nfunction createBlockBatchLoadFn(rpc: Rpc<GetBlockApi>) {\n const resolveBlockUsingRpc = loadBlock.bind(null, rpc);\n return async (blockQueryArgs: readonly BlockLoaderArgs[]): ReturnType<BlockLoader['loadMany']> => {\n /**\n * Gather all the blocks that need to be fetched, grouped by slot.\n */\n const blocksToFetch: ToFetchMap<BlockLoaderArgsBase, BlockLoaderValue> = {};\n try {\n return Promise.all(\n blockQueryArgs.map(\n ({ slot, ...args }) =>\n new Promise((resolve, reject) => {\n const blockRecords = (blocksToFetch[slot.toString()] ||= []);\n // Apply the default commitment level.\n if (!args.commitment) {\n args.commitment = 'confirmed';\n }\n blockRecords.push({ args, promiseCallback: { reject, resolve } });\n }),\n ),\n ) as ReturnType<BlockLoader['loadMany']>;\n } finally {\n /**\n * Group together blocks that are fetched with identical args.\n */\n const blockFetchesByArgsHash = buildCoalescedFetchesByArgsHash(blocksToFetch, {\n criteria: (args: BlockLoaderArgsBase) =>\n args.encoding === undefined && args.transactionDetails !== 'signatures',\n defaults: (args: BlockLoaderArgsBase) => ({\n ...args,\n transactionDetails: 'none' as BlockLoaderArgsBase['transactionDetails'],\n }),\n hashOmit: ['encoding', 'transactionDetails'],\n });\n\n /**\n * For each set of blocks related to some common args, fetch them in the fewest number\n * of network requests.\n */\n Object.values(blockFetchesByArgsHash).map(({ args, fetches: blockCallbacks }) => {\n return Object.entries(blockCallbacks).map(([slot, { callbacks }]) => {\n return Array.from({ length: 1 }, async () => {\n try {\n const result = await resolveBlockUsingRpc({\n slot: BigInt(slot),\n ...args,\n });\n callbacks.forEach(c => c.resolve(result));\n } catch (e) {\n callbacks.forEach(c => c.reject(e));\n }\n });\n });\n });\n }\n };\n}\n\nexport function createBlockLoader(rpc: Rpc<GetBlockApi>): BlockLoader {\n const loader = new DataLoader(createBlockBatchLoadFn(rpc), { cacheKeyFn });\n return {\n load: async args => loader.load({ ...args, maxSupportedTransactionVersion: 0 }),\n loadMany: async args => loader.loadMany(args.map(a => ({ ...a, maxSupportedTransactionVersion: 0 }))),\n };\n}\n","import type { GetProgramAccountsApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { sliceData } from './account';\nimport { buildCoalescedFetchesByArgsHashWithDataSlice, ToFetchMap } from './coalescer';\nimport {\n cacheKeyFn,\n ProgramAccountsLoader,\n ProgramAccountsLoaderArgs,\n ProgramAccountsLoaderArgsBase,\n ProgramAccountsLoaderValue,\n} from './loader';\n\ntype Config = {\n maxDataSliceByteRange: number;\n};\n\nasync function loadProgramAccounts(\n rpc: Rpc<GetProgramAccountsApi>,\n { programAddress, ...config }: ProgramAccountsLoaderArgs,\n): Promise<ProgramAccountsLoaderValue> {\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n return await rpc\n .getProgramAccounts(\n programAddress,\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n config,\n )\n .send();\n}\n\nfunction createProgramAccountsBatchLoadFn(rpc: Rpc<GetProgramAccountsApi>, config: Config) {\n const resolveProgramAccountsUsingRpc = loadProgramAccounts.bind(null, rpc);\n return async (\n accountQueryArgs: readonly ProgramAccountsLoaderArgs[],\n ): ReturnType<ProgramAccountsLoader['loadMany']> => {\n /**\n * Gather all the program-accounts that need to be fetched, grouped by\n * program address.\n */\n const programAccountsToFetch: ToFetchMap<ProgramAccountsLoaderArgsBase, ProgramAccountsLoaderValue> = {};\n try {\n return Promise.all(\n accountQueryArgs.map(\n ({ programAddress, ...args }) =>\n new Promise((resolve, reject) => {\n const accountRecords = (programAccountsToFetch[programAddress] ||= []);\n // Apply the default commitment level.\n if (!args.commitment) {\n args.commitment = 'confirmed';\n }\n accountRecords.push({ args, promiseCallback: { reject, resolve } });\n }),\n ),\n ) as ReturnType<ProgramAccountsLoader['loadMany']>;\n } finally {\n const { maxDataSliceByteRange } = config;\n\n /**\n * Group together program-accounts that are fetched with identical args.\n */\n const programAccountsFetchesByArgsHash = buildCoalescedFetchesByArgsHashWithDataSlice(\n programAccountsToFetch,\n maxDataSliceByteRange,\n );\n\n /**\n * For each set of program-accounts related to some common args, fetch them in the fewest\n * number of network requests.\n */\n Object.values(programAccountsFetchesByArgsHash).map(({ args, fetches: programAddressCallbacks }) => {\n return Object.entries(programAddressCallbacks).map(([programAddress, { callbacks }]) => {\n return Array.from({ length: 1 }, async () => {\n try {\n const result = await resolveProgramAccountsUsingRpc({\n programAddress,\n ...args,\n } as ProgramAccountsLoaderArgs);\n callbacks.forEach(({ callback, dataSlice }) => {\n callback.resolve(sliceData(result, dataSlice, args.dataSlice));\n });\n } catch (e) {\n callbacks.forEach(({ callback }) => {\n callback.reject(e);\n });\n }\n });\n });\n });\n }\n };\n}\n\nexport function createProgramAccountsLoader(rpc: Rpc<GetProgramAccountsApi>, config: Config): ProgramAccountsLoader {\n const loader = new DataLoader(createProgramAccountsBatchLoadFn(rpc, config), { cacheKeyFn });\n return {\n load: async args => loader.load(args),\n loadMany: async args => loader.loadMany(args),\n };\n}\n","import type { GetTransactionApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { buildCoalescedFetchesByArgsHash, ToFetchMap } from './coalescer';\nimport {\n cacheKeyFn,\n TransactionLoader,\n TransactionLoaderArgs,\n TransactionLoaderArgsBase,\n TransactionLoaderValue,\n} from './loader';\n\nasync function loadTransaction(\n rpc: Rpc<GetTransactionApi>,\n { signature, ...config }: TransactionLoaderArgs,\n): Promise<TransactionLoaderValue> {\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n return await rpc\n .getTransaction(\n signature,\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n config,\n )\n .send();\n}\n\nfunction createTransactionBatchLoadFn(rpc: Rpc<GetTransactionApi>) {\n const resolveTransactionUsingRpc = loadTransaction.bind(null, rpc);\n return async (\n transactionQueryArgs: readonly TransactionLoaderArgs[],\n ): ReturnType<TransactionLoader['loadMany']> => {\n /**\n * Gather all the transactions that need to be fetched, grouped by signature.\n */\n const transactionsToFetch: ToFetchMap<TransactionLoaderArgsBase, TransactionLoaderValue> = {};\n try {\n return Promise.all(\n transactionQueryArgs.map(\n ({ signature, ...args }) =>\n new Promise((resolve, reject) => {\n const transactionRecords = (transactionsToFetch[signature] ||= []);\n // Apply the default commitment level.\n if (!args.commitment) {\n args.commitment = 'confirmed';\n }\n transactionRecords.push({ args, promiseCallback: { reject, resolve } });\n }),\n ),\n ) as ReturnType<TransactionLoader['loadMany']>;\n } finally {\n /**\n * Group together transactions that are fetched with identical args.\n */\n const transactionFetchesByArgsHash = buildCoalescedFetchesByArgsHash(transactionsToFetch, {\n criteria: (args: TransactionLoaderArgsBase) => args.encoding === undefined,\n defaults: (args: TransactionLoaderArgsBase) => ({ ...args, encoding: 'base64' }),\n hashOmit: ['encoding'],\n });\n\n /**\n * For each set of transactions related to some common args, fetch them in the fewest number\n * of network requests.\n */\n Object.values(transactionFetchesByArgsHash).map(({ args, fetches: transactionCallbacks }) => {\n return Object.entries(transactionCallbacks).map(([signature, { callbacks }]) => {\n return Array.from({ length: 1 }, async () => {\n try {\n const result = await resolveTransactionUsingRpc({\n signature,\n ...args,\n } as TransactionLoaderArgs);\n callbacks.forEach(c => c.resolve(result));\n } catch (e) {\n callbacks.forEach(c => c.reject(e));\n }\n });\n });\n });\n }\n };\n}\n\nexport function createTransactionLoader(rpc: Rpc<GetTransactionApi>): TransactionLoader {\n const loader = new DataLoader(createTransactionBatchLoadFn(rpc), { cacheKeyFn });\n return {\n load: async args => loader.load(args),\n loadMany: async args => loader.loadMany(args),\n };\n}\n","import type {\n GetAccountInfoApi,\n GetBlockApi,\n GetMultipleAccountsApi,\n GetProgramAccountsApi,\n GetTransactionApi,\n Rpc,\n} from '@solana/rpc';\n\nimport {\n createAccountLoader,\n createBlockLoader,\n createProgramAccountsLoader,\n createTransactionLoader,\n RpcGraphQLLoaders,\n} from './loaders';\n\ntype Config = {\n /**\n * Maximum number of acceptable bytes to waste before splitting two\n * `dataSlice` requests into two requests.\n */\n maxDataSliceByteRange: number;\n /**\n * Maximum number of accounts to fetch in a single batch.\n * See https://docs.solana.com/api/http#getmultipleaccounts.\n */\n maxMultipleAccountsBatchSize: number;\n};\n\nexport interface RpcGraphQLContext {\n loaders: RpcGraphQLLoaders;\n}\n\nexport function createSolanaGraphQLContext(\n rpc: Rpc<GetAccountInfoApi & GetBlockApi & GetMultipleAccountsApi & GetProgramAccountsApi & GetTransactionApi>,\n config: Config,\n): RpcGraphQLContext {\n return {\n loaders: {\n account: createAccountLoader(rpc, config),\n block: createBlockLoader(rpc),\n programAccounts: createProgramAccountsLoader(rpc, config),\n transaction: createTransactionLoader(rpc),\n },\n };\n}\n","import { Address } from '@solana/addresses';\nimport { Commitment, DataSlice, Slot } from '@solana/rpc-types';\nimport { ArgumentNode, GraphQLResolveInfo, isInterfaceType } from 'graphql';\n\nimport { AccountLoaderArgs, ProgramAccountsLoaderArgs } from '../../loaders';\nimport { injectableRootVisitor, onlyFieldsRequested } from './visitor';\n\nfunction findArgumentNodeByName(argumentNodes: readonly ArgumentNode[], name: string): ArgumentNode | undefined {\n return argumentNodes.find(argumentNode => argumentNode.name.value === name);\n}\n\nfunction parseAccountEncodingArgument(\n argumentNodes: readonly ArgumentNode[],\n variableValues: {\n [variable: string]: unknown;\n },\n): AccountLoaderArgs['encoding'] | undefined {\n const argumentNode = findArgumentNodeByName(argumentNodes, 'encoding');\n if (argumentNode) {\n if (argumentNode.value.kind === 'EnumValue') {\n if (argumentNode.value.value === 'BASE_58') {\n return 'base58';\n }\n if (argumentNode.value.value === 'BASE_64') {\n return 'base64';\n }\n if (argumentNode.value.value === 'BASE_64_ZSTD') {\n return 'base64+zstd';\n }\n }\n if (argumentNode.value.kind === 'Variable') {\n return variableValues[argumentNode.value.name.value] as AccountLoaderArgs['encoding'];\n }\n } else {\n return undefined;\n }\n}\n\nfunction parseAccountDataSliceArgument(\n argumentNodes: readonly ArgumentNode[],\n variableValues: { [variable: string]: unknown },\n): AccountLoaderArgs['dataSlice'] {\n const argumentNode = findArgumentNodeByName(argumentNodes, 'dataSlice');\n if (argumentNode) {\n if (argumentNode.value.kind === 'ObjectValue') {\n const offsetArg = argumentNode.value.fields?.find(field => field.name.value === 'offset');\n const lengthArg = argumentNode.value.fields?.find(field => field.name.value === 'length');\n const length =\n lengthArg?.value.kind === 'IntValue'\n ? parseInt(lengthArg.value.value)\n : lengthArg?.value.kind === 'Variable'\n ? (variableValues[lengthArg.value.name.value] as number)\n : undefined;\n const offset =\n offsetArg?.value.kind === 'IntValue'\n ? parseInt(offsetArg.value.value)\n : offsetArg?.value.kind === 'Variable'\n ? (variableValues[offsetArg.value.name.value] as number)\n : undefined;\n return length !== undefined && length !== null && offset !== undefined && offset !== null\n ? { length, offset }\n : undefined;\n }\n if (argumentNode.value.kind === 'Variable') {\n return variableValues[argumentNode.value.name.value] as DataSlice;\n }\n } else {\n return undefined;\n }\n}\n\nexport function buildAccountArgSetWithVisitor<TArgs extends AccountLoaderArgs | ProgramAccountsLoaderArgs>(\n args: TArgs,\n info: GraphQLResolveInfo,\n): TArgs[] {\n const argSet = [args];\n\n function buildArgSetWithVisitor(root: Parameters<typeof injectableRootVisitor>[1]) {\n injectableRootVisitor(info, root, {\n fieldNodeOperation(info, node) {\n if (node.name.value !== 'data') {\n return;\n }\n // At least `encoding` is required on the `data` field.\n if (node.arguments) {\n const { variableValues } = info;\n const encoding = parseAccountEncodingArgument(node.arguments, variableValues);\n const dataSlice = parseAccountDataSliceArgument(node.arguments, variableValues);\n argSet.push({ ...args, dataSlice, encoding });\n }\n },\n fragmentSpreadNodeOperation(_info, fragment) {\n buildArgSetWithVisitor(fragment);\n },\n inlineFragmentNodeOperation(info, node) {\n const { schema } = info;\n const accountInterface = schema.getType('Account');\n if (\n isInterfaceType(accountInterface) &&\n // Recursively check if the inline fragment requests any\n // fields outside of the `Account` interface.\n !onlyFieldsRequested(Object.keys(accountInterface.getFields()), info, node)\n ) {\n argSet.push({ ...args, encoding: 'jsonParsed' });\n }\n },\n });\n }\n\n buildArgSetWithVisitor(null);\n\n return argSet;\n}\n\n/**\n * Build a set of account loader args by inspecting which fields have\n * been requested in the query (ie. `data` or inline fragments).\n */\nexport function buildAccountLoaderArgSetFromResolveInfo(\n args: {\n address: Address;\n commitment?: Commitment;\n minContextSlot?: Slot;\n },\n info: GraphQLResolveInfo,\n): AccountLoaderArgs[] {\n return buildAccountArgSetWithVisitor(args, info);\n}\n","import {\n ASTNode,\n ASTVisitFn,\n BREAK,\n FieldNode,\n FragmentDefinitionNode,\n FragmentSpreadNode,\n GraphQLResolveInfo,\n InlineFragmentNode,\n visit,\n} from 'graphql';\n\ntype InjectableVisitorOperations = {\n fieldNodeOperation: (info: GraphQLResolveInfo, ...args: Parameters<ASTVisitFn<FieldNode>>) => void;\n fragmentSpreadNodeOperation: (\n info: GraphQLResolveInfo,\n fragment: FragmentDefinitionNode,\n ...args: Parameters<ASTVisitFn<FragmentSpreadNode>>\n ) => void;\n inlineFragmentNodeOperation: (\n info: GraphQLResolveInfo,\n ...args: Parameters<ASTVisitFn<InlineFragmentNode>>\n ) => void;\n};\ntype RootNode = FieldNode | FragmentDefinitionNode | InlineFragmentNode;\n\n/**\n * An AST visitor that keys on the root field provided.\n * This visitor can be injected with custom logic for various types of nodes.\n */\nexport function injectableRootVisitor(\n info: GraphQLResolveInfo,\n rootNode: RootNode | null,\n operations: InjectableVisitorOperations,\n) {\n const { fieldNodes } = info;\n const root = rootNode ?? fieldNodes[0];\n const parentIsRoot = (ancestors: readonly (ASTNode | readonly ASTNode[])[]) =>\n (Array.isArray(ancestors) ? ancestors[0] : ancestors) === root;\n visit(root, {\n Field(node, key, parent, path, ancestors) {\n if (!parentIsRoot(ancestors)) return;\n return operations.fieldNodeOperation(info, node, key, parent, path, ancestors);\n },\n FragmentSpread(node, key, parent, path, ancestors) {\n const fragmentDefinition = info.fragments[node.name.value];\n return operations.fragmentSpreadNodeOperation(info, fragmentDefinition, node, key, parent, path, ancestors);\n },\n InlineFragment(node, key, parent, path, ancestors) {\n if (!parentIsRoot(ancestors)) return;\n return operations.inlineFragmentNodeOperation(info, node, key, parent, path, ancestors);\n },\n });\n}\n\n/**\n * Determine if the query only requests the provided field names\n */\nexport function onlyFieldsRequested(fieldNames: string[], info: GraphQLResolveInfo, rootNode?: RootNode): boolean {\n let onlyFieldsRequested = true;\n\n function checkFieldsWithVisitor(root: RootNode | null) {\n injectableRootVisitor(info, root, {\n fieldNodeOperation(_info, node) {\n onlyFieldsRequested = fieldNames.includes(node.name.value);\n if (!onlyFieldsRequested) {\n return BREAK;\n }\n },\n fragmentSpreadNodeOperation(_info, fragment) {\n checkFieldsWithVisitor(fragment);\n },\n inlineFragmentNodeOperation(_info, node) {\n checkFieldsWithVisitor(node);\n },\n });\n }\n\n checkFieldsWithVisitor(rootNode ?? null);\n\n return onlyFieldsRequested;\n}\n","import { Signature } from '@solana/keys';\nimport { Commitment, Slot } from '@solana/rpc-types';\nimport { ArgumentNode, GraphQLResolveInfo } from 'graphql';\n\nimport { BlockLoaderArgs, TransactionLoaderArgs } from '../../loaders';\nimport { injectableRootVisitor } from './visitor';\n\nfunction findArgumentNodeByName(argumentNodes: readonly ArgumentNode[], name: string): ArgumentNode | undefined {\n return argumentNodes.find(argumentNode => argumentNode.name.value === name);\n}\n\nfunction parseTransactionEncodingArgument(\n argumentNodes: readonly ArgumentNode[],\n variableValues: {\n [variable: string]: unknown;\n },\n): TransactionLoaderArgs['encoding'] | undefined {\n const argumentNode = findArgumentNodeByName(argumentNodes, 'encoding');\n if (argumentNode) {\n if (argumentNode.value.kind === 'EnumValue') {\n if (argumentNode.value.value === 'BASE_58') {\n return 'base58';\n }\n if (argumentNode.value.value === 'BASE_64') {\n return 'base64';\n }\n }\n if (argumentNode.value.kind === 'Variable') {\n return variableValues[argumentNode.value.name.value] as TransactionLoaderArgs['encoding'];\n }\n } else {\n return undefined;\n }\n}\n\nexport function buildTransactionArgSetWithVisitor<TArgs extends BlockLoaderArgs | TransactionLoaderArgs>(\n args: TArgs,\n info: GraphQLResolveInfo,\n): TArgs[] {\n const argSet = [args];\n\n function buildArgSetWithVisitor(root: Parameters<typeof injectableRootVisitor>[1]) {\n injectableRootVisitor(info, root, {\n fieldNodeOperation(info, node) {\n if (node.name.value === 'message' || node.name.value === 'meta') {\n argSet.push({ ...args, encoding: 'jsonParsed' });\n } else if (node.name.value === 'data') {\n // At least `encoding` is required on the `data` field.\n if (node.arguments) {\n const { variableValues } = info;\n const encoding: TransactionLoaderArgs['encoding'] = parseTransactionEncodingArgument(\n node.arguments,\n variableValues,\n );\n argSet.push({ ...args, encoding });\n }\n }\n },\n fragmentSpreadNodeOperation(_info, fragment) {\n buildArgSetWithVisitor(fragment);\n },\n inlineFragmentNodeOperation(_info, _node) {\n // Transaction schema doesn't support inline fragments at the\n // root level.\n return;\n },\n });\n }\n\n buildArgSetWithVisitor(null);\n\n return argSet;\n}\n\n/**\n * Build a set of transaction loader args by inspecting which fields have\n * been requested in the query (ie. `data` or inline fragments).\n */\nexport function buildTransactionLoaderArgSetFromResolveInfo(\n args: {\n commitment?: Omit<Commitment, 'processed'>;\n minContextSlot?: Slot;\n signature: Signature;\n },\n info: GraphQLResolveInfo,\n): TransactionLoaderArgs[] {\n return buildTransactionArgSetWithVisitor(args, info);\n}\n","import { Commitment, Slot } from '@solana/rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { BlockLoaderArgs } from '../../loaders';\nimport { buildTransactionArgSetWithVisitor } from './transaction';\nimport { injectableRootVisitor } from './visitor';\n\n/**\n * Build a set of block loader args by inspecting which fields have\n * been requested in the query (ie. `data` or inline fragments).\n */\nexport function buildBlockLoaderArgSetFromResolveInfo(\n args: {\n commitment?: Omit<Commitment, 'processed'>;\n minContextSlot?: Slot;\n slot: Slot;\n },\n info: GraphQLResolveInfo,\n): BlockLoaderArgs[] {\n const argSet: BlockLoaderArgs[] = [args];\n\n function buildArgSetWithVisitor(root: Parameters<typeof injectableRootVisitor>[1]) {\n injectableRootVisitor(info, root, {\n fieldNodeOperation(info, node) {\n if (node.name.value === 'signatures') {\n argSet.push({ ...args, transactionDetails: 'signatures' });\n } else if (node.name.value === 'transactions') {\n argSet.push(...buildTransactionArgSetWithVisitor({ ...args, transactionDetails: 'full' }, info));\n }\n },\n fragmentSpreadNodeOperation(_info, fragment) {\n buildArgSetWithVisitor(fragment);\n },\n inlineFragmentNodeOperation(_info, _node) {\n // Block schema doesn't support inline fragments at the\n // root level.\n return;\n },\n });\n }\n\n buildArgSetWithVisitor(null);\n\n return argSet;\n}\n","import { Address } from '@solana/addresses';\nimport { Commitment, Slot } from '@solana/rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { ProgramAccountsLoaderArgs } from '../../loaders';\nimport { buildAccountArgSetWithVisitor } from './account';\n\n/**\n * Build a set of account loader args by inspecting which fields have\n * been requested in the query (ie. `data` or inline fragments).\n */\nexport function buildProgramAccountsLoaderArgSetFromResolveInfo(\n args: {\n commitment?: Commitment;\n filters?: readonly { memcmp: { bytes: string; offset: number } }[];\n minContextSlot?: Slot;\n programAddress: Address;\n },\n info: GraphQLResolveInfo,\n): ProgramAccountsLoaderArgs[] {\n return buildAccountArgSetWithVisitor(args, info);\n}\n","import { Address } from '@solana/addresses';\nimport { Commitment, Slot } from '@solana/rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { AccountLoaderValue, cacheKeyFn } from '../loaders';\nimport { buildAccountLoaderArgSetFromResolveInfo, onlyFieldsRequested } from './resolve-info';\n\ntype Encoding = 'base58' | 'base64' | 'base64+zstd';\ntype DataSlice = { length: number; offset: number };\n\nexport type EncodedAccountData = {\n [key: string]: string;\n};\n\nexport type AccountResult = Partial<Omit<AccountLoaderValue, 'data'>> & {\n address: Address;\n encodedData?: EncodedAccountData;\n jsonParsedConfigs?: {\n accountType: string;\n programId: Address;\n programName: string;\n };\n ownerProgram?: Address;\n};\n\nconst resolveAccountData = () => {\n return (\n parent: AccountResult | null,\n args: {\n dataSlice?: DataSlice;\n encoding: Encoding;\n },\n ) => {\n return parent === null ? null : parent.encodedData ? parent.encodedData[cacheKeyFn(args)] : null;\n };\n};\n\nexport const resolveAccount = (fieldName?: string) => {\n return async (\n parent: { [x: string]: Address },\n args: { address?: Address; commitment?: Commitment; minContextSlot?: Slot },\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ): Promise<AccountResult | null> => {\n const address = fieldName ? parent[fieldName] : args.address;\n\n if (address) {\n // Do not load any accounts if only the address is requested\n if (onlyFieldsRequested(['address'], info)) {\n return { address };\n }\n\n const argsSet = buildAccountLoaderArgSetFromResolveInfo({ ...args, address }, info);\n const loadedAccounts = await context.loaders.account.loadMany(argsSet);\n\n let result: AccountResult = {\n address,\n encodedData: {},\n };\n\n loadedAccounts.forEach((account, i) => {\n if (account instanceof Error) {\n console.error(account);\n return;\n }\n if (account === null) {\n return;\n }\n if (!result.ownerProgram) {\n result = {\n ...result,\n ...account,\n ownerProgram: account.owner,\n };\n }\n\n const { data } = account;\n const { encoding, dataSlice } = argsSet[i];\n\n if (encoding && result.encodedData) {\n if (Array.isArray(data)) {\n result.encodedData[\n cacheKeyFn({\n dataSlice,\n encoding: encoding === 'jsonParsed' ? 'base64' : encoding,\n })\n ] = data[0];\n } else if (typeof data === 'string') {\n result.encodedData[\n cacheKeyFn({\n dataSlice,\n encoding: 'base58',\n })\n ] = data;\n } else if (typeof data === 'object') {\n const {\n parsed: { info: parsedData, type: accountType },\n program: programName,\n programId,\n } = data;\n result.jsonParsedConfigs = {\n accountType,\n programId,\n programName,\n };\n result = {\n ...result,\n ...(parsedData as object),\n };\n }\n }\n });\n\n return result;\n }\n\n return null;\n };\n};\n\nfunction resolveAccountType(accountResult: AccountResult) {\n const { jsonParsedConfigs } = accountResult;\n if (jsonParsedConfigs) {\n if (jsonParsedConfigs.programName === 'nonce') {\n return 'NonceAccount';\n }\n if (jsonParsedConfigs.accountType === 'mint' && jsonParsedConfigs.programName === 'spl-token') {\n return 'MintAccount';\n }\n if (jsonParsedConfigs.accountType === 'account' && jsonParsedConfigs.programName === 'spl-token') {\n return 'TokenAccount';\n }\n if (jsonParsedConfigs.programName === 'stake') {\n return 'StakeAccount';\n }\n if (jsonParsedConfigs.accountType === 'vote' && jsonParsedConfigs.programName === 'vote') {\n return 'VoteAccount';\n }\n if (\n jsonParsedConfigs.accountType === 'lookupTable' &&\n jsonParsedConfigs.programName === 'address-lookup-table'\n ) {\n return 'LookupTableAccount';\n }\n }\n return 'GenericAccount';\n}\n\nexport const accountResolvers = {\n Account: {\n __resolveType: resolveAccountType,\n data: resolveAccountData(),\n },\n GenericAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n LookupTableAccount: {\n authority: resolveAccount('authority'),\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n MintAccount: {\n data: resolveAccountData(),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mintAuthority: resolveAccount('mintAuthority'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n NonceAccount: {\n authority: resolveAccount('authority'),\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n StakeAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n StakeAccountDataMetaAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeAccountDataMetaLockup: {\n custodian: resolveAccount('custodian'),\n },\n StakeAccountDataStakeDelegation: {\n voter: resolveAccount('voter'),\n },\n TokenAccount: {\n data: resolveAccountData(),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n VoteAccount: {\n authorizedWithdrawer: resolveAccount('authorizedWithdrawer'),\n data: resolveAccountData(),\n node: resolveAccount('nodePubkey'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n VoteAccountDataAuthorizedVoter: {\n authorizedVoter: resolveAccount('authorizedVoter'),\n },\n};\n","import { Address } from '@solana/addresses';\nimport { Signature } from '@solana/keys';\nimport { Commitment } from '@solana/rpc-types';\nimport type { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { cacheKeyFn, TransactionLoaderValue } from '../loaders';\nimport { buildTransactionLoaderArgSetFromResolveInfo, onlyFieldsRequested } from './resolve-info';\n\nexport type EncodedTransactionData = {\n [key: string]: string;\n};\n\nexport type InstructionResult = {\n [key: string]: unknown;\n} & {\n jsonParsedConfigs?: {\n instructionType: string;\n programId: Address;\n programName: string;\n };\n programId?: Address;\n};\n\nexport type TransactionResult = Partial<TransactionLoaderValue> & {\n encodedData?: EncodedTransactionData;\n signature?: Signature;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function mapJsonParsedInstructions(instructions: readonly any[]): InstructionResult[] {\n return instructions.map(instruction => {\n if ('parsed' in instruction) {\n // `jsonParsed`\n if (typeof instruction.parsed === 'string' && instruction.program === 'spl-memo') {\n const { parsed: memo, program: programName, programId } = instruction;\n const instructionType = 'memo';\n const jsonParsedConfigs = {\n instructionType,\n programId,\n programName,\n };\n return { jsonParsedConfigs, memo, programId };\n }\n const {\n parsed: { info: data, type: instructionType },\n program: programName,\n programId,\n } = instruction;\n const jsonParsedConfigs = {\n instructionType,\n programId,\n programName,\n };\n return { jsonParsedConfigs, ...data, programId };\n } else {\n // `json`\n return instruction;\n }\n });\n}\n\nexport function mapJsonParsedInnerInstructions(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n innerInstructions: readonly any[],\n): { index: number; instructions: InstructionResult[] }[] {\n return innerInstructions.map(({ index, instructions }) => ({\n index,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n instructions: mapJsonParsedInstructions(instructions),\n }));\n}\n\nconst resolveTransactionData = () => {\n return (\n parent: TransactionResult | null,\n args: {\n encoding: 'base58' | 'base64';\n },\n ) => {\n return parent === null ? null : parent.encodedData ? parent.encodedData[cacheKeyFn(args)] : null;\n };\n};\n\nexport function resolveTransaction(fieldName?: string) {\n return async (\n parent: { [x: string]: Signature },\n args: {\n commitment?: Omit<Commitment, 'processed'>;\n signature?: Signature;\n },\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ): Promise<TransactionResult | null> => {\n const signature = fieldName ? parent[fieldName] : args.signature;\n\n if (signature) {\n if (onlyFieldsRequested(['signature'], info)) {\n return { signature };\n }\n\n const argsSet = buildTransactionLoaderArgSetFromResolveInfo({ ...args, signature }, info);\n const loadedTransactions = await context.loaders.transaction.loadMany(argsSet);\n\n let result: TransactionResult = {\n encodedData: {},\n signature,\n };\n\n loadedTransactions.forEach((loadedTransaction, i) => {\n if (loadedTransaction instanceof Error) {\n console.error(loadedTransaction);\n return;\n }\n if (loadedTransaction === null) {\n return;\n }\n if (!result.slot) {\n result = {\n ...result,\n ...loadedTransaction,\n };\n }\n\n const { transaction: data } = loadedTransaction;\n const { encoding } = argsSet[i];\n\n if (encoding && result.encodedData) {\n if (Array.isArray(data)) {\n result.encodedData[\n cacheKeyFn({\n encoding,\n })\n ] = data[0];\n } else if (typeof data === 'object') {\n const jsonParsedData = data;\n jsonParsedData.message.instructions = mapJsonParsedInstructions(\n jsonParsedData.message.instructions,\n ) as unknown as (typeof jsonParsedData)['message']['instructions'];\n\n const loadedInnerInstructions = loadedTransaction.meta?.innerInstructions;\n if (loadedInnerInstructions) {\n const innerInstructions = mapJsonParsedInnerInstructions(loadedInnerInstructions);\n const jsonParsedMeta = {\n ...loadedTransaction.meta,\n innerInstructions,\n };\n result = {\n ...result,\n ...jsonParsedData,\n meta: jsonParsedMeta as unknown as (typeof loadedTransaction)['meta'],\n };\n } else {\n result = {\n ...result,\n ...jsonParsedData,\n };\n }\n }\n }\n });\n return result;\n }\n return null;\n };\n}\n\nexport const transactionResolvers = {\n Transaction: {\n data: resolveTransactionData(),\n },\n};\n","import type { Commitment, Slot } from '@solana/rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { BlockLoaderValue, cacheKeyFn } from '../loaders';\nimport { buildBlockLoaderArgSetFromResolveInfo, onlyFieldsRequested } from './resolve-info';\nimport { mapJsonParsedInnerInstructions, mapJsonParsedInstructions, TransactionResult } from './transaction';\n\ntype BlockResult = Partial<BlockLoaderValue> & {\n slot: Slot;\n transactionResults?: { [i: number]: TransactionResult };\n};\n\nexport const resolveBlock = (fieldName?: string) => {\n return async (\n parent: { [x: string]: Slot },\n args: {\n commitment?: Omit<Commitment, 'processed'>;\n slot?: Slot;\n },\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ) => {\n const slot = fieldName ? parent[fieldName] : args.slot;\n\n if (slot) {\n if (onlyFieldsRequested(['slot'], info)) {\n return { slot };\n }\n\n const argsSet = buildBlockLoaderArgSetFromResolveInfo({ ...args, slot }, info);\n const loadedBlocks = await context.loaders.block.loadMany(argsSet);\n\n let result: BlockResult = {\n slot,\n };\n\n loadedBlocks.forEach((loadedBlock, i) => {\n if (loadedBlock instanceof Error) {\n console.error(loadedBlock);\n return;\n }\n if (loadedBlock === null) {\n return;\n }\n if (!result.blockhash) {\n result = {\n ...result,\n ...loadedBlock,\n };\n }\n // @ts-expect-error FIX ME: https://github.com/solana-labs/solana-web3.js/pull/2052\n if (!result.signatures && loadedBlock.signatures) {\n result = {\n ...result,\n // @ts-expect-error FIX ME: https://github.com/solana-labs/solana-web3.js/pull/2052\n signatures: loadedBlock.signatures,\n };\n }\n if (!result.transactionResults && loadedBlock.transactions) {\n result.transactionResults = Array.from({ length: loadedBlock.transactions.length }, (_, i) => ({\n [i]: { encodedData: {} },\n }));\n }\n\n const { transactions } = loadedBlock;\n const { encoding } = argsSet[i];\n\n if (encoding) {\n transactions.forEach((loadedTransaction, j) => {\n const { transaction: data } = loadedTransaction;\n\n if (result.transactionResults) {\n const thisTransactionResult = (result.transactionResults[j] ||= {\n encodedData: {},\n });\n\n if (Array.isArray(data)) {\n const thisEncodedData = (thisTransactionResult.encodedData ||= {});\n thisEncodedData[\n cacheKeyFn({\n encoding,\n })\n ] = data[0];\n } else if (typeof data === 'object') {\n const jsonParsedData = data;\n jsonParsedData.message.instructions = mapJsonParsedInstructions(\n jsonParsedData.message.instructions,\n ) as unknown as (typeof jsonParsedData)['message']['instructions'];\n\n const loadedInnerInstructions = loadedTransaction.meta?.innerInstructions;\n if (loadedInnerInstructions) {\n const innerInstructions = mapJsonParsedInnerInstructions(loadedInnerInstructions);\n const jsonParsedMeta = {\n ...loadedTransaction.meta,\n innerInstructions,\n };\n result.transactionResults[j] = {\n ...thisTransactionResult,\n ...jsonParsedData,\n meta: jsonParsedMeta as unknown as TransactionResult['meta'],\n };\n } else {\n result.transactionResults[j] = {\n ...thisTransactionResult,\n ...jsonParsedData,\n };\n }\n }\n }\n });\n }\n });\n return result;\n }\n return null;\n };\n};\n\nexport const blockResolvers = {\n Block: {\n transactions: (parent?: BlockResult) =>\n parent?.transactionResults ? Object.values(parent.transactionResults) : null,\n },\n};\n","import { resolveAccount } from './account';\nimport { InstructionResult } from './transaction';\n\nexport const instructionResolvers = {\n AdvanceNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n recentBlockhashesSysvar: resolveAccount('recentBlockhashesSysvar'),\n },\n AllocateInstruction: {\n account: resolveAccount('account'),\n },\n AllocateWithSeedInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n AssignInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n AssignWithSeedInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n AuthorizeNonceAccountInstruction: {\n newAuthorized: resolveAccount('newAuthorized'),\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n BpfLoaderFinalizeInstruction: {\n account: resolveAccount('account'),\n },\n BpfLoaderWriteInstruction: {\n account: resolveAccount('account'),\n },\n BpfUpgradeableLoaderCloseInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n programAccount: resolveAccount('programAccount'),\n recipient: resolveAccount('recipient'),\n },\n BpfUpgradeableLoaderDeployWithMaxDataLenInstruction: {\n authority: resolveAccount('authority'),\n bufferAccount: resolveAccount('bufferAccount'),\n clockSysvar: resolveAccount('clockSysvar'),\n payerAccount: resolveAccount('payerAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n BpfUpgradeableLoaderExtendProgramInstruction: {\n payerAccount: resolveAccount('payerAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n BpfUpgradeableLoaderInitializeBufferInstruction: {\n account: resolveAccount('account'),\n },\n BpfUpgradeableLoaderSetAuthorityCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n BpfUpgradeableLoaderSetAuthorityInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n BpfUpgradeableLoaderUpgradeInstruction: {\n authority: resolveAccount('authority'),\n bufferAccount: resolveAccount('bufferAccount'),\n clockSysvar: resolveAccount('clockSysvar'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n BpfUpgradeableLoaderWriteInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n },\n CloseLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n recipient: resolveAccount('recipient'),\n },\n CreateAccountInstruction: {\n newAccount: resolveAccount('newAccount'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n CreateAccountWithSeedInstruction: {\n base: resolveAccount('base'),\n owner: resolveAccount('owner'),\n seed: resolveAccount('seed'),\n },\n CreateLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n payerAccount: resolveAccount('payerAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n DeactivateLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n },\n ExtendLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n payerAccount: resolveAccount('payerAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n FreezeLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n },\n InitializeNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n recentBlockhashesSysvar: resolveAccount('recentBlockhashesSysvar'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n Lockup: {\n custodian: resolveAccount('custodian'),\n },\n SplAssociatedTokenCreateIdempotentInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n source: resolveAccount('source'),\n systemProgram: resolveAccount('systemProgram'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplAssociatedTokenCreateInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n source: resolveAccount('source'),\n systemProgram: resolveAccount('systemProgram'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplAssociatedTokenRecoverNestedInstruction: {\n destination: resolveAccount('destination'),\n nestedMint: resolveAccount('nestedMint'),\n nestedOwner: resolveAccount('nestedOwner'),\n nestedSource: resolveAccount('nestedSource'),\n ownerMint: resolveAccount('ownerMint'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplTokenAmountToUiAmountInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenApproveCheckedInstruction: {\n delegate: resolveAccount('delegate'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenApproveInstruction: {\n delegate: resolveAccount('delegate'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenBurnCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenBurnInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenCloseAccountInstruction: {\n account: resolveAccount('account'),\n destination: resolveAccount('destination'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenFreezeAccountInstruction: {\n account: resolveAccount('account'),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenGetAccountDataSizeInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeAccount2Instruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n SplTokenInitializeAccount3Instruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeAccountInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n SplTokenInitializeMint2Instruction: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n },\n SplTokenInitializeMintCloseAuthorityInstruction: {\n mint: resolveAccount('mint'),\n newAuthority: resolveAccount('newAuthority'),\n },\n SplTokenInitializeMintInstruction: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n SplTokenInitializeMultisig2Instruction: {\n multisig: resolveAccount('multisig'),\n },\n SplTokenInitializeMultisigInstruction: {\n multisig: resolveAccount('multisig'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n SplTokenMintToCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n multisigMintAuthority: resolveAccount('multisigMintAuthority'),\n },\n SplTokenMintToInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n multisigMintAuthority: resolveAccount('multisigMintAuthority'),\n },\n SplTokenRevokeInstruction: {\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenSetAuthorityInstruction: {\n authority: resolveAccount('authority'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n SplTokenSyncNativeInstruction: {\n account: resolveAccount('account'),\n },\n SplTokenThawAccountInstruction: {\n account: resolveAccount('account'),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenTransferCheckedInstruction: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenTransferInstruction: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenUiAmountToAmountInstruction: {\n mint: resolveAccount('mint'),\n },\n StakeAuthorizeCheckedInstruction: {\n authority: resolveAccount('authority'),\n clockSysvar: resolveAccount('clockSysvar'),\n custodian: resolveAccount('custodian'),\n newAuthority: resolveAccount('newAuthority'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeCheckedWithSeedInstruction: {\n authorityBase: resolveAccount('authorityBase'),\n authorityOwner: resolveAccount('authorityOwner'),\n clockSysvar: resolveAccount('clockSysvar'),\n custodian: resolveAccount('custodian'),\n newAuthorized: resolveAccount('newAuthorized'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeInstruction: {\n authority: resolveAccount('authority'),\n clockSysvar: resolveAccount('clockSysvar'),\n custodian: resolveAccount('custodian'),\n newAuthority: resolveAccount('newAuthority'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeWithSeedInstruction: {\n authorityBase: resolveAccount('authorityBase'),\n authorityOwner: resolveAccount('authorityOwner'),\n clockSysvar: resolveAccount('clockSysvar'),\n custodian: resolveAccount('custodian'),\n newAuthorized: resolveAccount('newAuthorized'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeDeactivateDelinquentInstruction: {\n referenceVoteAccount: resolveAccount('referenceVoteAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeDeactivateInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeDelegateStakeInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeConfigAccount: resolveAccount('stakeConfigAccount'),\n stakeHistorySysvar: resolveAccount('stakeHistorySysvar'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeInitializeCheckedInstruction: {\n rentSysvar: resolveAccount('rentSysvar'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeInitializeCheckedInstructionDataAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeInitializeInstruction: {\n rentSysvar: resolveAccount('rentSysvar'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeInitializeInstructionDataAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeMergeInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeHistorySysvar: resolveAccount('stakeHistorySysvar'),\n },\n StakeRedelegateInstruction: {\n newStakeAccount: resolveAccount('newStakeAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeConfigAccount: resolveAccount('stakeConfigAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeSetLockupCheckedInstruction: {\n custodian: resolveAccount('custodian'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeSetLockupInstruction: {\n custodian: resolveAccount('custodian'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeSplitInstruction: {\n newSplitAccount: resolveAccount('newSplitAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeWithdrawInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n destination: resolveAccount('destination'),\n stakeAccount: resolveAccount('stakeAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n TransactionInstruction: {\n __resolveType(instructionResult: InstructionResult) {\n const { jsonParsedConfigs } = instructionResult;\n if (jsonParsedConfigs) {\n if (jsonParsedConfigs.programName === 'address-lookup-table') {\n if (jsonParsedConfigs.instructionType === 'createLookupTable') {\n return 'CreateLookupTableInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'freezeLookupTable') {\n return 'FreezeLookupTableInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'extendLookupTable') {\n return 'ExtendLookupTableInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'deactivateLookupTable') {\n return 'DeactivateLookupTableInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'closeLookupTable') {\n return 'CloseLookupTableInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'bpf-loader') {\n if (jsonParsedConfigs.instructionType === 'write') {\n return 'BpfLoaderWriteInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'finalize') {\n return 'BpfLoaderFinalizeInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'bpf-upgradeable-loader') {\n if (jsonParsedConfigs.instructionType === 'initializeBuffer') {\n return 'BpfUpgradeableLoaderInitializeBufferInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'write') {\n return 'BpfUpgradeableLoaderWriteInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'deployWithMaxDataLen') {\n return 'BpfUpgradeableLoaderDeployWithMaxDataLenInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'upgrade') {\n return 'BpfUpgradeableLoaderUpgradeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setAuthority') {\n return 'BpfUpgradeableLoaderSetAuthorityInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setAuthorityChecked') {\n return 'BpfUpgradeableLoaderSetAuthorityCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'close') {\n return 'BpfUpgradeableLoaderCloseInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'extendProgram') {\n return 'BpfUpgradeableLoaderExtendProgramInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'spl-associated-token-account') {\n if (jsonParsedConfigs.instructionType === 'create') {\n return 'SplAssociatedTokenCreateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'createIdempotent') {\n return 'SplAssociatedTokenCreateIdempotentInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'recoverNested') {\n return 'SplAssociatedTokenRecoverNestedInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'spl-memo') {\n return 'SplMemoInstruction';\n }\n if (jsonParsedConfigs.programName === 'spl-token') {\n if (jsonParsedConfigs.instructionType === 'initializeMint') {\n return 'SplTokenInitializeMintInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeMint2') {\n return 'SplTokenInitializeMint2Instruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeAccount') {\n return 'SplTokenInitializeAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeAccount2') {\n return 'SplTokenInitializeAccount2Instruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeAccount3') {\n return 'SplTokenInitializeAccount3Instruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeMultisig') {\n return 'SplTokenInitializeMultisigInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeMultisig2') {\n return 'SplTokenInitializeMultisig2Instruction';\n }\n if (jsonParsedConfigs.instructionType === 'transfer') {\n return 'SplTokenTransferInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'approve') {\n return 'SplTokenApproveInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'revoke') {\n return 'SplTokenRevokeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setAuthority') {\n return 'SplTokenSetAuthorityInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'mintTo') {\n return 'SplTokenMintToInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'burn') {\n return 'SplTokenBurnInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'closeAccount') {\n return 'SplTokenCloseAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'freezeAccount') {\n return 'SplTokenFreezeAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'thawAccount') {\n return 'SplTokenThawAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'transferChecked') {\n return 'SplTokenTransferCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'approveChecked') {\n return 'SplTokenApproveCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'mintToChecked') {\n return 'SplTokenMintToCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'burnChecked') {\n return 'SplTokenBurnCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'syncNative') {\n return 'SplTokenSyncNativeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'getAccountDataSize') {\n return 'SplTokenGetAccountDataSizeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeImmutableOwner') {\n return 'SplTokenInitializeImmutableOwnerInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'amountToUiAmount') {\n return 'SplTokenAmountToUiAmountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'uiAmountToAmount') {\n return 'SplTokenUiAmountToAmountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeMintCloseAuthority') {\n return 'SplTokenInitializeMintCloseAuthorityInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'stake') {\n if (jsonParsedConfigs.instructionType === 'initialize') {\n return 'StakeInitializeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorize') {\n return 'StakeAuthorizeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'delegate') {\n return 'StakeDelegateStakeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'split') {\n return 'StakeSplitInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'withdraw') {\n return 'StakeWithdrawInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'deactivate') {\n return 'StakeDeactivateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setLockup') {\n return 'StakeSetLockupInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'merge') {\n return 'StakeMergeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeWithSeed') {\n return 'StakeAuthorizeWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeChecked') {\n return 'StakeInitializeCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeChecked') {\n return 'StakeAuthorizeCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeCheckedWithSeed') {\n return 'StakeAuthorizeCheckedWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'setLockupChecked') {\n return 'StakeSetLockupCheckedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'deactivateDelinquent') {\n return 'StakeDeactivateDelinquentInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'redelegate') {\n return 'StakeRedelegateInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'system') {\n if (jsonParsedConfigs.instructionType === 'createAccount') {\n return 'CreateAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'assign') {\n return 'AssignInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'transfer') {\n return 'TransferInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'createAccountWithSeed') {\n return 'CreateAccountWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'advanceNonceAccount') {\n return 'AdvanceNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'withdrawNonceAccount') {\n return 'WithdrawNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'initializeNonceAccount') {\n return 'InitializeNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeNonceAccount') {\n return 'AuthorizeNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'upgradeNonceAccount') {\n return 'UpgradeNonceAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'allocate') {\n return 'AllocateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'allocateWithSeed') {\n return 'AllocateWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'assignWithSeed') {\n return 'AssignWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'transferWithSeed') {\n return 'TransferWithSeedInstruction';\n }\n }\n if (jsonParsedConfigs.programName === 'vote') {\n if (jsonParsedConfigs.instructionType === 'initialize') {\n return 'VoteInitializeAccountInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorize') {\n return 'VoteAuthorizeInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeWithSeed') {\n return 'VoteAuthorizeWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeCheckedWithSeed') {\n return 'VoteAuthorizeCheckedWithSeedInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'vote') {\n return 'VoteVoteInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updatevotestate') {\n return 'VoteUpdateVoteStateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updatevotestateswitch') {\n return 'VoteUpdateVoteStateSwitchInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'compactupdatevotestate') {\n return 'VoteCompactUpdateVoteStateInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'compactupdatevotestateswitch') {\n return 'VoteCompactUpdateVoteStateSwitchInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'withdraw') {\n return 'VoteWithdrawInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateValidatorIdentity') {\n return 'VoteUpdateValidatorIdentityInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'updateCommission') {\n return 'VoteUpdateCommissionInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'voteSwitch') {\n return 'VoteVoteSwitchInstruction';\n }\n if (jsonParsedConfigs.instructionType === 'authorizeChecked') {\n return 'VoteAuthorizeCheckedInstruction';\n }\n }\n }\n return 'GenericInstruction';\n },\n },\n TransferInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n },\n TransferWithSeedInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n sourceOwner: resolveAccount('sourceOwner'),\n },\n UpgradeNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n VoteAuthorizeCheckedInstruction: {\n authority: resolveAccount('authority'),\n clockSysvar: resolveAccount('clockSysvar'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeCheckedWithSeedInstruction: {\n authorityOwner: resolveAccount('authorityOwner'),\n clockSysvar: resolveAccount('clockSysvar'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeInstruction: {\n authority: resolveAccount('authority'),\n clockSysvar: resolveAccount('clockSysvar'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeWithSeedInstruction: {\n authorityOwner: resolveAccount('authorityOwner'),\n clockSysvar: resolveAccount('clockSysvar'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteCompactUpdateVoteStateInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteCompactUpdateVoteStateSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteInitializeAccountInstruction: {\n authorizedVoter: resolveAccount('authorizedVoter'),\n authorizedWithdrawer: resolveAccount('authorizedWithdrawer'),\n clockSysvar: resolveAccount('clockSysvar'),\n node: resolveAccount('node'),\n\n rentSysvar: resolveAccount('rentSysvar'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteUpdateCommissionInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteUpdateValidatorIdentityInstruction: {\n newValidatorIdentity: resolveAccount('newValidatorIdentity'),\n\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteUpdateVoteStateInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteUpdateVoteStateSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteVoteInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n slotHashesSysvar: resolveAccount('slotHashesSysvar'),\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteVoteSwitchInstruction: {\n clockSysvar: resolveAccount('clockSysvar'),\n slotHashesSysvar: resolveAccount('slotHashesSysvar'),\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteWithdrawInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n WithdrawNonceAccountInstruction: {\n destination: resolveAccount('destination'),\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n recentBlockhashesSysvar: resolveAccount('recentBlockhashesSysvar'),\n rentSysvar: resolveAccount('rentSysvar'),\n },\n};\n","import { Address } from '@solana/addresses';\nimport { Commitment, Slot } from '@solana/rpc-types';\nimport type { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { cacheKeyFn } from '../loaders';\nimport { AccountResult } from './account';\nimport { buildProgramAccountsLoaderArgSetFromResolveInfo } from './resolve-info';\n\nexport function resolveProgramAccounts(fieldName?: string) {\n return async (\n parent: { [x: string]: Address },\n args: {\n commitment?: Commitment;\n filters?: readonly { memcmp: { bytes: string; offset: number } }[];\n minContextSlot?: Slot;\n programAddress: Address;\n },\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ): Promise<AccountResult[] | null> => {\n const programAddress = fieldName ? parent[fieldName] : args.programAddress;\n\n if (programAddress) {\n const argsSet = buildProgramAccountsLoaderArgSetFromResolveInfo({ ...args, programAddress }, info);\n const loadedProgramAccountsLists = await context.loaders.programAccounts.loadMany(argsSet);\n\n const result: {\n [address: string]: AccountResult;\n } = {};\n\n loadedProgramAccountsLists.forEach((programAccounts, i) => {\n if (programAccounts instanceof Error) {\n console.error(programAccounts);\n return;\n }\n programAccounts.forEach(programAccount => {\n const { account, pubkey: address } = programAccount;\n\n const thisResult = (result[address] ||= {\n ...account,\n address,\n encodedData: {},\n ownerProgram: account.owner,\n });\n\n const { data } = account;\n const { encoding, dataSlice } = argsSet[i];\n\n if (encoding && thisResult.encodedData) {\n if (Array.isArray(data)) {\n thisResult.encodedData[\n cacheKeyFn({\n dataSlice,\n encoding: encoding === 'jsonParsed' ? 'base64' : encoding,\n })\n ] = data[0];\n } else if (typeof data === 'string') {\n thisResult.encodedData[\n cacheKeyFn({\n dataSlice,\n encoding: 'base58',\n })\n ] = data;\n } else if (typeof data === 'object') {\n const {\n parsed: { info: parsedData, type: accountType },\n program: programName,\n programId,\n } = data;\n thisResult.jsonParsedConfigs = {\n accountType,\n programId,\n programName,\n };\n for (const key in parsedData as object) {\n thisResult[key as keyof typeof thisResult] = parsedData[key];\n }\n }\n }\n });\n });\n return Object.values(result);\n }\n return null;\n };\n}\n","import type { makeExecutableSchema } from '@graphql-tools/schema';\n\nimport { resolveAccount } from './account';\nimport { resolveBlock } from './block';\nimport { resolveProgramAccounts } from './program-accounts';\nimport { resolveTransaction } from './transaction';\n\nexport const rootResolvers: Parameters<typeof makeExecutableSchema>[0]['resolvers'] = {\n Query: {\n account: resolveAccount(),\n block: resolveBlock(),\n programAccounts: resolveProgramAccounts(),\n transaction: resolveTransaction(),\n },\n};\n","import { Kind } from 'graphql';\n\nimport { resolveAccount } from './account';\n\nconst stringScalarAlias = {\n __parseLiteral(ast: { kind: Kind; value: bigint | boolean | number | string }): string | null {\n if (ast.kind === Kind.STRING) {\n return ast.value.toString();\n }\n return null;\n },\n __parseValue(value: string): string {\n return value;\n },\n __serialize(value: string): string {\n return value;\n },\n};\n\nconst bigIntScalarAlias = {\n __parseLiteral(ast: { kind: Kind; value: bigint | boolean | number | string }): bigint | null {\n if (ast.kind === Kind.STRING || ast.kind === Kind.INT || ast.kind === Kind.FLOAT) {\n return BigInt(ast.value);\n }\n return null;\n },\n __parseValue(value: string): bigint {\n return BigInt(value);\n },\n __serialize(value: string): bigint {\n return BigInt(value);\n },\n};\n\nexport const typeTypeResolvers = {\n AccountEncoding: {\n BASE_58: 'base58',\n BASE_64: 'base64',\n BASE_64_ZSTD: 'base64+zstd',\n },\n Address: stringScalarAlias,\n Base58EncodedBytes: stringScalarAlias,\n Base64EncodedBytes: stringScalarAlias,\n Base64ZstdEncodedBytes: stringScalarAlias,\n BigInt: bigIntScalarAlias,\n Commitment: {\n CONFIRMED: 'confirmed',\n FINALIZED: 'finalized',\n PROCESSED: 'processed',\n },\n CommitmentWithoutProcessed: {\n CONFIRMED: 'confirmed',\n FINALIZED: 'finalized',\n },\n Signature: stringScalarAlias,\n Slot: bigIntScalarAlias,\n TokenBalance: {\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n TransactionEncoding: {\n BASE_58: 'base58',\n BASE_64: 'base64',\n },\n};\n","import type { makeExecutableSchema } from '@graphql-tools/schema';\n\nimport { accountResolvers } from '../resolvers/account';\nimport { blockResolvers } from '../resolvers/block';\nimport { instructionResolvers } from '../resolvers/instruction';\nimport { rootResolvers } from '../resolvers/root';\nimport { transactionResolvers } from '../resolvers/transaction';\nimport { typeTypeResolvers } from '../resolvers/types';\n\nexport function createSolanaGraphQLResolvers(): Parameters<typeof makeExecutableSchema>[0]['resolvers'] {\n return {\n ...accountResolvers,\n ...blockResolvers,\n ...instructionResolvers,\n ...rootResolvers,\n ...transactionResolvers,\n ...typeTypeResolvers,\n };\n}\n","export const accountTypeDefs = /* GraphQL */ `\n \"\"\"\n Account interface\n \"\"\"\n interface Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n }\n\n \"\"\"\n Generic base account type\n \"\"\"\n type GenericAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n }\n\n type NonceAccountFeeCalculator {\n lamportsPerSignature: String\n }\n \"\"\"\n A nonce account\n \"\"\"\n type NonceAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n authority: Account\n blockhash: String\n feeCalculator: NonceAccountFeeCalculator\n }\n\n \"\"\"\n A lookup table account\n \"\"\"\n type LookupTableAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n addresses: [Address]\n authority: Account\n deactivationSlot: String\n lastExtendedSlot: String\n lastExtendedSlotStartIndex: Int\n }\n\n \"\"\"\n A mint account\n \"\"\"\n type MintAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n decimals: Int\n freezeAuthority: Account\n isInitialized: Boolean\n mintAuthority: Account\n supply: String\n }\n\n \"\"\"\n A token account\n \"\"\"\n type TokenAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n isNative: Boolean\n mint: Account\n owner: Account\n state: String\n tokenAmount: TokenAmount\n }\n\n type StakeAccountDataMetaAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeAccountDataMetaLockup {\n custodian: Account\n epoch: BigInt\n unixTimestamp: BigInt\n }\n type StakeAccountDataMeta {\n authorized: StakeAccountDataMetaAuthorized\n lockup: StakeAccountDataMetaLockup\n rentExemptReserve: String\n }\n type StakeAccountDataStakeDelegation {\n activationEpoch: BigInt\n deactivationEpoch: BigInt\n stake: String\n voter: Account\n warmupCooldownRate: Int\n }\n type StakeAccountDataStake {\n creditsObserved: BigInt\n delegation: StakeAccountDataStakeDelegation\n }\n \"\"\"\n A stake account\n \"\"\"\n type StakeAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n meta: StakeAccountDataMeta\n stake: StakeAccountDataStake\n }\n\n type VoteAccountDataAuthorizedVoter {\n authorizedVoter: Account\n epoch: BigInt\n }\n type VoteAccountDataEpochCredit {\n credits: String\n epoch: BigInt\n previousCredits: String\n }\n type VoteAccountDataLastTimestamp {\n slot: BigInt\n timestamp: BigInt\n }\n type VoteAccountDataVote {\n confirmationCount: Int\n slot: BigInt\n }\n \"\"\"\n A vote account\n \"\"\"\n type VoteAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n authorizedVoters: [VoteAccountDataAuthorizedVoter]\n authorizedWithdrawer: Account\n commission: Int\n epochCredits: [VoteAccountDataEpochCredit]\n lastTimestamp: VoteAccountDataLastTimestamp\n node: Account\n priorVoters: [Address]\n rootSlot: BigInt\n votes: [VoteAccountDataVote]\n }\n`;\n","export const blockTypeDefs = /* GraphQL */ `\n \"\"\"\n A Solana block\n \"\"\"\n type Block {\n blockhash: String\n blockHeight: BigInt\n blockTime: BigInt\n parentSlot: Slot\n previousBlockhash: String\n rewards: [Reward]\n signatures: [Signature]\n transactions: [Transaction]\n }\n`;\n","// *Note: Any integer value inside a transaction instruction must be `BigInt`\n// until the following issue is resolved:\n// <https://github.com/solana-labs/solana-web3.js/issues/1828>\nexport const instructionTypeDefs = /* GraphQL */ `\n \"\"\"\n Transaction instruction interface\n \"\"\"\n interface TransactionInstruction {\n programId: Address\n }\n\n \"\"\"\n Generic transaction instruction\n \"\"\"\n type GenericInstruction implements TransactionInstruction {\n accounts: [Address]\n data: Base64EncodedBytes\n programId: Address\n }\n\n \"\"\"\n AddressLookupTable: CreateLookupTable instruction\n \"\"\"\n type CreateLookupTableInstruction implements TransactionInstruction {\n programId: Address\n bumpSeed: BigInt # FIXME:*\n lookupTableAccount: Account\n lookupTableAuthority: Account\n payerAccount: Account\n recentSlot: BigInt\n systemProgram: Account\n }\n\n \"\"\"\n AddressLookupTable: ExtendLookupTable instruction\n \"\"\"\n type ExtendLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n newAddresses: [Address]\n payerAccount: Account\n systemProgram: Account\n }\n\n \"\"\"\n AddressLookupTable: FreezeLookupTable instruction\n \"\"\"\n type FreezeLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n }\n\n \"\"\"\n AddressLookupTable: DeactivateLookupTable instruction\n \"\"\"\n type DeactivateLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n }\n\n \"\"\"\n AddressLookupTable: CloseLookupTable instruction\n \"\"\"\n type CloseLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n recipient: Account\n }\n\n \"\"\"\n BpfLoader: Write instruction\n \"\"\"\n type BpfLoaderWriteInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n bytes: Base64EncodedBytes\n offset: BigInt # FIXME:*\n }\n\n \"\"\"\n BpfLoader: Finalize instruction\n \"\"\"\n type BpfLoaderFinalizeInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: InitializeBuffer instruction\n \"\"\"\n type BpfUpgradeableLoaderInitializeBufferInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: Write instruction\n \"\"\"\n type BpfUpgradeableLoaderWriteInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n bytes: Base64EncodedBytes\n offset: BigInt # FIXME:*\n }\n\n \"\"\"\n BpfUpgradeableLoader: DeployWithMaxDataLen instruction\n \"\"\"\n type BpfUpgradeableLoaderDeployWithMaxDataLenInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n bufferAccount: Account\n clockSysvar: Account\n maxDataLen: BigInt\n payerAccount: Account\n programAccount: Account\n programDataAccount: Account\n rentSysvar: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: Upgrade instruction\n \"\"\"\n type BpfUpgradeableLoaderUpgradeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n bufferAccount: Account\n clockSysvar: Account\n programAccount: Account\n programDataAccount: Account\n rentSysvar: Account\n spillAccount: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: SetAuthority instruction\n \"\"\"\n type BpfUpgradeableLoaderSetAuthorityInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n newAuthority: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: SetAuthorityChecked instruction\n \"\"\"\n type BpfUpgradeableLoaderSetAuthorityCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n newAuthority: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: Close instruction\n \"\"\"\n type BpfUpgradeableLoaderCloseInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n programAccount: Account\n recipient: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: ExtendProgram instruction\n \"\"\"\n type BpfUpgradeableLoaderExtendProgramInstruction implements TransactionInstruction {\n programId: Address\n additionalBytes: BigInt\n payerAccount: Account\n programAccount: Account\n programDataAccount: Account\n systemProgram: Account\n }\n\n \"\"\"\n SplAssociatedTokenAccount: Create instruction\n \"\"\"\n type SplAssociatedTokenCreateInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n source: Account\n systemProgram: Account\n tokenProgram: Account\n wallet: Account\n }\n\n \"\"\"\n SplAssociatedTokenAccount: CreateIdempotent instruction\n \"\"\"\n type SplAssociatedTokenCreateIdempotentInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n source: Account\n systemProgram: Account\n tokenProgram: Account\n wallet: Account\n }\n\n \"\"\"\n SplAssociatedTokenAccount: RecoverNested instruction\n \"\"\"\n type SplAssociatedTokenRecoverNestedInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n nestedMint: Account\n nestedOwner: Account\n nestedSource: Account\n ownerMint: Account\n tokenProgram: Account\n wallet: Account\n }\n\n \"\"\"\n SplMemo instruction\n \"\"\"\n type SplMemoInstruction implements TransactionInstruction {\n programId: Address\n memo: String\n }\n\n \"\"\"\n SplToken: InitializeMint instruction\n \"\"\"\n type SplTokenInitializeMintInstruction implements TransactionInstruction {\n programId: Address\n decimals: BigInt # FIXME:*\n freezeAuthority: Account\n mint: Account\n mintAuthority: Account\n rentSysvar: Account\n }\n\n \"\"\"\n SplToken: InitializeMint2 instruction\n \"\"\"\n type SplTokenInitializeMint2Instruction implements TransactionInstruction {\n programId: Address\n decimals: BigInt # FIXME:*\n freezeAuthority: Account\n mint: Account\n mintAuthority: Account\n }\n\n \"\"\"\n SplToken: InitializeAccount instruction\n \"\"\"\n type SplTokenInitializeAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n rentSysvar: Account\n }\n\n \"\"\"\n SplToken: InitializeAccount2 instruction\n \"\"\"\n type SplTokenInitializeAccount2Instruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n rentSysvar: Account\n }\n\n \"\"\"\n SplToken: InitializeAccount3 instruction\n \"\"\"\n type SplTokenInitializeAccount3Instruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n }\n\n \"\"\"\n SplToken: InitializeMultisig instruction\n \"\"\"\n type SplTokenInitializeMultisigInstruction implements TransactionInstruction {\n programId: Address\n m: BigInt # FIXME:*\n multisig: Account\n rentSysvar: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken: InitializeMultisig2 instruction\n \"\"\"\n type SplTokenInitializeMultisig2Instruction implements TransactionInstruction {\n programId: Address\n m: BigInt # FIXME:*\n multisig: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken: Transfer instruction\n \"\"\"\n type SplTokenTransferInstruction implements TransactionInstruction {\n programId: Address\n amount: String\n authority: Account\n destination: Account\n multisigAuthority: Account\n source: Account\n }\n\n \"\"\"\n SplToken: Approve instruction\n \"\"\"\n type SplTokenApproveInstruction implements TransactionInstruction {\n programId: Address\n amount: String\n delegate: Account\n multisigOwner: Account\n owner: Account\n source: Account\n }\n\n \"\"\"\n SplToken: Revoke instruction\n \"\"\"\n type SplTokenRevokeInstruction implements TransactionInstruction {\n programId: Address\n multisigOwner: Account\n owner: Account\n source: Account\n }\n\n \"\"\"\n SplToken: SetAuthority instruction\n \"\"\"\n type SplTokenSetAuthorityInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n multisigAuthority: Account\n newAuthority: Account\n }\n\n \"\"\"\n SplToken: MintTo instruction\n \"\"\"\n type SplTokenMintToInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n amount: String\n authority: Account\n mint: Account\n mintAuthority: Account\n multisigMintAuthority: Account\n }\n\n \"\"\"\n SplToken: Burn instruction\n \"\"\"\n type SplTokenBurnInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n amount: String\n authority: Account\n mint: Account\n multisigAuthority: Account\n }\n\n \"\"\"\n SplToken: CloseAccount instruction\n \"\"\"\n type SplTokenCloseAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n destination: Account\n multisigOwner: Account\n owner: Account\n }\n\n \"\"\"\n SplToken: FreezeAccount instruction\n \"\"\"\n type SplTokenFreezeAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n freezeAuthority: Account\n mint: Account\n multisigFreezeAuthority: Account\n }\n\n \"\"\"\n SplToken: ThawAccount instruction\n \"\"\"\n type SplTokenThawAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n freezeAuthority: Account\n mint: Account\n multisigFreezeAuthority: Account\n }\n\n \"\"\"\n SplToken: TransferChecked instruction\n \"\"\"\n type SplTokenTransferCheckedInstruction implements TransactionInstruction {\n programId: Address\n amount: String\n authority: Account\n decimals: BigInt # FIXME:*\n destination: Account\n mint: Account\n multisigAuthority: Account\n source: Account\n tokenAmount: String\n }\n\n \"\"\"\n SplToken: ApproveChecked instruction\n \"\"\"\n type SplTokenApproveCheckedInstruction implements TransactionInstruction {\n programId: Address\n delegate: Account\n mint: Account\n multisigOwner: Account\n owner: Account\n source: Account\n tokenAmount: String\n }\n\n \"\"\"\n SplToken: MintToChecked instruction\n \"\"\"\n type SplTokenMintToCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n mint: Account\n mintAuthority: Account\n multisigMintAuthority: Account\n tokenAmount: String\n }\n\n \"\"\"\n SplToken: BurnChecked instruction\n \"\"\"\n type SplTokenBurnCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n mint: Account\n multisigAuthority: Account\n tokenAmount: String\n }\n\n \"\"\"\n SplToken: SyncNative instruction\n \"\"\"\n type SplTokenSyncNativeInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n SplToken: GetAccountDataSize instruction\n \"\"\"\n type SplTokenGetAccountDataSizeInstruction implements TransactionInstruction {\n programId: Address\n extensionTypes: [String]\n mint: Account\n }\n\n \"\"\"\n SplToken: InitializeImmutableOwner instruction\n \"\"\"\n type SplTokenInitializeImmutableOwnerInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n SplToken: AmountToUiAmount instruction\n \"\"\"\n type SplTokenAmountToUiAmountInstruction implements TransactionInstruction {\n programId: Address\n amount: String\n mint: Account\n }\n\n \"\"\"\n SplToken: UiAmountToAmount instruction\n \"\"\"\n type SplTokenUiAmountToAmountInstruction implements TransactionInstruction {\n programId: Address\n mint: Account\n uiAmount: String\n }\n\n \"\"\"\n SplToken: InitializeMintCloseAuthority instruction\n \"\"\"\n type SplTokenInitializeMintCloseAuthorityInstruction implements TransactionInstruction {\n programId: Address\n mint: Account\n newAuthority: Account\n }\n\n # TODO: Extensions!\n # - TransferFeeExtension\n # - ConfidentialTransferFeeExtension\n # - DefaultAccountStateExtension\n # - Reallocate\n # - MemoTransferExtension\n # - CreateNativeMint\n # - InitializeNonTransferableMint\n # - InterestBearingMintExtension\n # - CpiGuardExtension\n # - InitializePermanentDelegate\n # - TransferHookExtension\n # - ConfidentialTransferFeeExtension\n # - WithdrawExcessLamports\n # - MetadataPointerExtension\n\n type Lockup {\n custodian: Account\n epoch: BigInt\n unixTimestamp: BigInt\n }\n\n \"\"\"\n Stake: Initialize instruction\n \"\"\"\n type StakeInitializeInstructionDataAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeInitializeInstruction implements TransactionInstruction {\n programId: Address\n authorized: StakeInitializeInstructionDataAuthorized\n lockup: Lockup\n rentSysvar: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: Authorize instruction\n \"\"\"\n type StakeAuthorizeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Account\n custodian: Account\n newAuthority: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: DelegateStake instruction\n \"\"\"\n type StakeDelegateStakeInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n stakeAccount: Account\n stakeAuthority: Account\n stakeConfigAccount: Account\n stakeHistorySysvar: Account\n voteAccount: Account\n }\n\n \"\"\"\n Stake: Split instruction\n \"\"\"\n type StakeSplitInstruction implements TransactionInstruction {\n programId: Address\n lamports: BigInt\n newSplitAccount: Account\n stakeAccount: Account\n stakeAuthority: Account\n }\n\n \"\"\"\n Stake: Withdraw instruction\n \"\"\"\n type StakeWithdrawInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n destination: Account\n lamports: BigInt\n stakeAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Stake: Deactivate instruction\n \"\"\"\n type StakeDeactivateInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n stakeAccount: Account\n stakeAuthority: Account\n }\n\n \"\"\"\n Stake: SetLockup instruction\n \"\"\"\n type StakeSetLockupInstruction implements TransactionInstruction {\n programId: Address\n custodian: Account\n lockup: Lockup\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: Merge instruction\n \"\"\"\n type StakeMergeInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n destination: Account\n source: Account\n stakeAuthority: Account\n stakeHistorySysvar: Account\n }\n\n \"\"\"\n Stake: AuthorizeWithSeed instruction\n \"\"\"\n type StakeAuthorizeWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBase: Account\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Account\n custodian: Account\n newAuthorized: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: InitializeChecked instruction\n \"\"\"\n type StakeInitializeCheckedInstructionDataAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeInitializeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authorized: StakeInitializeCheckedInstructionDataAuthorized\n lockup: Lockup\n rentSysvar: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: AuthorizeChecked instruction\n \"\"\"\n type StakeAuthorizeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Account\n custodian: Account\n newAuthority: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: AuthorizeCheckedWithSeed instruction\n \"\"\"\n type StakeAuthorizeCheckedWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBase: Account\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Account\n custodian: Account\n newAuthorized: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: SetLockupChecked instruction\n \"\"\"\n type StakeSetLockupCheckedInstruction implements TransactionInstruction {\n programId: Address\n custodian: Account\n lockup: Lockup\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: DeactivateDelinquent instruction\n \"\"\"\n type StakeDeactivateDelinquentInstruction implements TransactionInstruction {\n programId: Address\n referenceVoteAccount: Account\n stakeAccount: Account\n voteAccount: Account\n }\n\n \"\"\"\n Stake: Redelegate instruction\n \"\"\"\n type StakeRedelegateInstruction implements TransactionInstruction {\n programId: Address\n newStakeAccount: Account\n stakeAccount: Account\n stakeAuthority: Account\n stakeConfigAccount: Account\n voteAccount: Account\n }\n\n \"\"\"\n System: CreateAccount instruction\n \"\"\"\n type CreateAccountInstruction implements TransactionInstruction {\n programId: Address\n lamports: BigInt\n newAccount: Account\n owner: Account\n source: Account\n space: BigInt\n }\n\n \"\"\"\n System: Assign instruction\n \"\"\"\n type AssignInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n owner: Account\n }\n\n \"\"\"\n System: Transfer instruction\n \"\"\"\n type TransferInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: BigInt\n source: Account\n }\n\n \"\"\"\n System: CreateAccountWithSeed instruction\n \"\"\"\n type CreateAccountWithSeedInstruction implements TransactionInstruction {\n programId: Address\n base: Account\n lamports: BigInt\n owner: Account\n seed: String\n space: BigInt\n }\n\n \"\"\"\n System: AdvanceNonceAccount instruction\n \"\"\"\n type AdvanceNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Account\n }\n\n \"\"\"\n System: WithdrawNonceAccount instruction\n \"\"\"\n type WithdrawNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: BigInt\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Account\n rentSysvar: Account\n }\n\n \"\"\"\n System: InitializeNonceAccount instruction\n \"\"\"\n type InitializeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Account\n rentSysvar: Account\n }\n\n \"\"\"\n System: AuthorizeNonceAccount instruction\n \"\"\"\n type AuthorizeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n newAuthorized: Account\n nonceAccount: Account\n nonceAuthority: Account\n }\n\n \"\"\"\n System: UpgradeNonceAccount instruction\n \"\"\"\n type UpgradeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n }\n\n \"\"\"\n System: Allocate instruction\n \"\"\"\n type AllocateInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n space: BigInt\n }\n\n \"\"\"\n System: AllocateWithSeed instruction\n \"\"\"\n type AllocateWithSeedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n base: Address\n owner: Account\n seed: String\n space: BigInt\n }\n\n \"\"\"\n System: AssignWithSeed instruction\n \"\"\"\n type AssignWithSeedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n base: Address\n owner: Account\n seed: String\n }\n\n \"\"\"\n System: TransferWithSeed instruction\n \"\"\"\n type TransferWithSeedInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: BigInt\n source: Account\n sourceBase: Address\n sourceOwner: Account\n sourceSeed: String\n }\n\n \"\"\"\n Vote: InitializeAccount instruction\n \"\"\"\n type VoteInitializeAccountInstruction implements TransactionInstruction {\n programId: Address\n authorizedVoter: Account\n authorizedWithdrawer: Account\n clockSysvar: Account\n commission: BigInt # FIXME:*\n node: Account\n rentSysvar: Account\n voteAccount: Account\n }\n\n \"\"\"\n Vote: Authorize instruction\n \"\"\"\n type VoteAuthorizeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Account\n newAuthority: Account\n voteAccount: Account\n }\n\n \"\"\"\n Vote: AuthorizeWithSeed instruction\n \"\"\"\n type VoteAuthorizeWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBaseKey: String\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Account\n newAuthority: Account\n voteAccount: Account\n }\n\n \"\"\"\n Vote: AuthorizeCheckedWithSeed instruction\n \"\"\"\n type VoteAuthorizeCheckedWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBaseKey: String\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Account\n newAuthority: Account\n voteAccount: Account\n }\n\n type Vote {\n hash: String\n slots: [BigInt]\n timestamp: BigInt\n }\n\n \"\"\"\n Vote: Vote instruction\n \"\"\"\n type VoteVoteInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n slotHashesSysvar: Account\n vote: Vote\n voteAccount: Account\n voteAuthority: Account\n }\n\n type VoteStateUpdateLockout {\n confirmationCount: BigInt # FIXME:*\n slot: BigInt\n }\n type VoteStateUpdate {\n hash: String\n lockouts: [VoteStateUpdateLockout]\n root: BigInt\n timestamp: BigInt\n }\n\n \"\"\"\n Vote: UpdateVoteState instruction\n \"\"\"\n type VoteUpdateVoteStateInstruction implements TransactionInstruction {\n programId: Address\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: UpdateVoteStateSwitch instruction\n \"\"\"\n type VoteUpdateVoteStateSwitchInstruction implements TransactionInstruction {\n programId: Address\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: CompactUpdateVoteState instruction\n \"\"\"\n type VoteCompactUpdateVoteStateInstruction implements TransactionInstruction {\n programId: Address\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: CompactUpdateVoteStateSwitch instruction\n \"\"\"\n type VoteCompactUpdateVoteStateSwitchInstruction implements TransactionInstruction {\n programId: Address\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: Withdraw instruction\n \"\"\"\n type VoteWithdrawInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: BigInt\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Vote: UpdateValidatorIdentity instruction\n \"\"\"\n type VoteUpdateValidatorIdentityInstruction implements TransactionInstruction {\n programId: Address\n newValidatorIdentity: Account\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Vote: UpdateCommission instruction\n \"\"\"\n type VoteUpdateCommissionInstruction implements TransactionInstruction {\n programId: Address\n commission: BigInt # FIXME:*\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Vote: VoteSwitch instruction\n \"\"\"\n type VoteVoteSwitchInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Account\n hash: String\n slotHashesSysvar: Account\n vote: Vote\n voteAccount: Account\n voteAuthority: Account\n }\n\n \"\"\"\n Vote: AuthorizeChecked instruction\n \"\"\"\n type VoteAuthorizeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Account\n newAuthority: Account\n voteAccount: Account\n }\n`;\n","export const rootTypeDefs = /* GraphQL */ `\n type Query {\n account(address: Address!, commitment: Commitment, minContextSlot: Slot): Account\n block(slot: Slot!, commitment: CommitmentWithoutProcessed): Block\n programAccounts(\n programAddress: Address!\n commitment: Commitment\n filters: [ProgramAccountsFilter]\n minContextSlot: Slot\n ): [Account]\n transaction(signature: Signature!, commitment: CommitmentWithoutProcessed): Transaction\n }\n\n schema {\n query: Query\n }\n`;\n","/* eslint-disable sort-keys-fix/sort-keys-fix */\nexport const transactionTypeDefs = /* GraphQL */ `\n type TransactionStatusOk {\n Ok: String\n }\n type TransactionStatusErr {\n Err: String\n }\n union TransactionStatus = TransactionStatusOk | TransactionStatusErr\n\n type TransactionLoadedAddresses {\n readonly: [String]\n writable: [String]\n }\n\n type TransactionInnerInstruction {\n index: Int\n instructions: [TransactionInstruction]\n }\n\n type TransactionMeta {\n computeUnitsConsumed: BigInt\n err: String\n fee: BigInt\n innerInstructions: [TransactionInnerInstruction]\n loadedAddresses: TransactionLoadedAddresses\n logMessages: [String]\n postBalances: [BigInt]\n postTokenBalances: [TokenBalance]\n preBalances: [BigInt]\n preTokenBalances: [TokenBalance]\n returnData: ReturnData\n rewards: [Reward]\n status: TransactionStatus\n }\n\n type TransactionMessageAccountKey {\n pubkey: Address\n signer: Boolean\n source: String\n writable: Boolean\n }\n\n type TransactionMessageAddressTableLookup {\n accountKey: Address\n readableIndexes: [Int]\n writableIndexes: [Int]\n }\n\n type TransactionMessageHeader {\n numReadonlySignedAccounts: Int\n numReadonlyUnsignedAccounts: Int\n numRequiredSignatures: Int\n }\n\n type TransactionMessage {\n accountKeys: [TransactionMessageAccountKey]\n addressTableLookups: [TransactionMessageAddressTableLookup]\n header: TransactionMessageHeader\n instructions: [TransactionInstruction]\n recentBlockhash: String\n }\n\n \"\"\"\n A Solana transaction\n \"\"\"\n type Transaction {\n blockTime: BigInt\n data(encoding: TransactionEncoding!): String\n message: TransactionMessage\n meta: TransactionMeta\n signatures: [Signature]\n slot: Slot\n version: String\n }\n`;\n","export const typeTypeDefs = /* GraphQL */ `\n enum AccountEncoding {\n BASE_58\n BASE_64\n BASE_64_ZSTD\n }\n\n scalar Address\n\n scalar Base58EncodedBytes\n\n scalar Base64EncodedBytes\n\n scalar Base64ZstdEncodedBytes\n\n scalar BigInt\n\n enum Commitment {\n CONFIRMED\n FINALIZED\n PROCESSED\n }\n\n enum CommitmentWithoutProcessed {\n CONFIRMED\n FINALIZED\n }\n\n input DataSlice {\n offset: Int!\n length: Int!\n }\n\n input ProgramAccountsFilter {\n bytes: BigInt\n dataSize: BigInt\n encoding: AccountEncoding\n offset: BigInt\n }\n\n type ReturnData {\n data: Base64EncodedBytes\n programId: Address\n }\n\n type Reward {\n commission: Int\n lamports: BigInt\n postBalance: BigInt\n pubkey: Address\n rewardType: String\n }\n\n scalar Signature\n\n scalar Slot\n\n type TokenAmount {\n amount: String\n decimals: Int\n uiAmount: BigInt\n uiAmountString: String\n }\n\n type TokenBalance {\n accountIndex: Int\n mint: Account\n owner: Account\n programId: Address\n uiTokenAmount: TokenAmount\n }\n\n enum TransactionEncoding {\n BASE_58\n BASE_64\n }\n`;\n","import { accountTypeDefs } from './account';\nimport { blockTypeDefs } from './block';\nimport { instructionTypeDefs } from './instruction';\nimport { rootTypeDefs } from './root';\nimport { transactionTypeDefs } from './transaction';\nimport { typeTypeDefs } from './types';\n\nexport function createSolanaGraphQLTypeDefs() {\n return [accountTypeDefs, blockTypeDefs, instructionTypeDefs, rootTypeDefs, typeTypeDefs, transactionTypeDefs];\n}\n"]}
|