@solana/rpc-graphql 2.0.0-experimental.ee4214c → 2.0.0-experimental.ef09aec
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 +1088 -30
- package/dist/index.browser.cjs +2790 -1925
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.js +2786 -1926
- package/dist/index.browser.js.map +1 -1
- package/dist/index.native.js +2786 -1922
- package/dist/index.native.js.map +1 -1
- package/dist/index.node.cjs +2790 -1921
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.js +2786 -1922
- package/dist/index.node.js.map +1 -1
- package/dist/types/context.d.ts +18 -16
- package/dist/types/loaders/account.d.ts +28 -0
- package/dist/types/loaders/block.d.ts +16 -0
- package/dist/types/loaders/common/resolve-info.d.ts +3 -0
- package/dist/types/loaders/program-accounts.d.ts +28 -0
- package/dist/types/loaders/transaction.d.ts +39 -0
- package/dist/types/resolvers/account.d.ts +8 -0
- package/dist/types/rpc.d.ts +7 -2
- package/dist/types/schema/account.d.ts +124 -0
- package/dist/types/schema/block.d.ts +17 -0
- package/dist/types/schema/common/inputs.d.ts +3 -0
- package/dist/types/schema/common/scalars.d.ts +45 -0
- package/dist/types/schema/common/types.d.ts +27 -0
- package/dist/types/schema/index.d.ts +2 -0
- package/dist/types/schema/instruction.d.ts +954 -0
- package/dist/types/schema/program-accounts.d.ts +12 -0
- package/dist/types/schema/transaction.d.ts +16 -0
- package/package.json +17 -12
- package/dist/types/cache.d.ts +0 -7
- package/dist/types/schema/account/index.d.ts +0 -3
- package/dist/types/schema/account/query.d.ts +0 -38
- package/dist/types/schema/account/types.d.ts +0 -5
- package/dist/types/schema/block/index.d.ts +0 -3
- package/dist/types/schema/block/query.d.ts +0 -42
- package/dist/types/schema/block/types.d.ts +0 -7
- package/dist/types/schema/inputs.d.ts +0 -9
- package/dist/types/schema/picks.d.ts +0 -36
- package/dist/types/schema/program-accounts/index.d.ts +0 -2
- package/dist/types/schema/program-accounts/query.d.ts +0 -47
- package/dist/types/schema/program-accounts/types.d.ts +0 -3
- package/dist/types/schema/scalars.d.ts +0 -3
- package/dist/types/schema/transaction/index.d.ts +0 -3
- package/dist/types/schema/transaction/query.d.ts +0 -33
- package/dist/types/schema/transaction/types.d.ts +0 -12
package/dist/index.node.cjs.map
CHANGED
|
@@ -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","../src/schema/program-accounts/types.ts"],"names":["GraphQLObjectType","value","programAccount","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';\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): 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) {\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 return null;\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 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 const account = { ...programAccount.account, data, encoding: responseEncoding };\n return {\n account,\n pubkey,\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) {\n return resolveAccount(args, this.cache, this.rpc);\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: 'DataSliceConfig',\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 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 owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n resolve: (parent, args, context) => context.resolveAccount({ ...args, address: parent.owner }),\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 authority: string(),\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 authority: string(),\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 mintAuthority: string(),\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 owner: string(),\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 staker: string(),\n withdrawer: string(),\n }),\n lockup: object('StakeMetaLockup', {\n custodian: string(),\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 voter: string(),\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 authorizedVoter: string(),\n epoch: bigint(),\n })\n ),\n authorizedWithdrawer: string(),\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 nodePubkey: string(),\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 { Commitment } from '@solana/rpc-core';\nimport { DataSlice, Slot } from '@solana/rpc-core/dist/types/rpc-methods/common';\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 resolve: (_parent: unknown, args: AccountQueryArgs, context: RpcGraphQLContext) => context.resolveAccount(args),\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 { 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 mint: string(),\n owner: string(),\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 lookupTableAccount: string(),\n lookupTableAuthority: string(),\n payerAccount: string(),\n recentSlot: bigint(),\n systemProgram: string(),\n }),\n parsedTransactionInstructionType('FreezeLookupTableInstruction', {\n lookupTableAccount: string(),\n lookupTableAuthority: string(),\n }),\n parsedTransactionInstructionType('ExtendLookupTableInstruction', {\n lookupTableAccount: string(),\n lookupTableAuthority: string(),\n newAddresses: list(string()),\n payerAccount: string(),\n systemProgram: string(),\n }),\n parsedTransactionInstructionType('DeactivateLookupTableInstruction', {\n lookupTableAccount: string(),\n lookupTableAuthority: string(),\n }),\n parsedTransactionInstructionType('CloseLookupTableInstruction', {\n lookupTableAccount: string(),\n lookupTableAuthority: string(),\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 account: string(),\n bytes: string(),\n offset: number(),\n }),\n parsedTransactionInstructionType('BpfLoaderFinalizeInstruction', {\n account: string(),\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 account: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderWriteInstruction', {\n account: string(),\n authority: string(),\n bytes: string(),\n offset: number(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderDeployWithMaxDataLenInstruction', {\n authority: string(),\n bufferAccount: string(),\n clockSysvar: string(),\n maxDataLen: bigint(),\n payerAccount: string(),\n programAccount: string(),\n programDataAccount: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderUpgradeInstruction', {\n authority: string(),\n bufferAccount: string(),\n clockSysvar: string(),\n programAccount: string(),\n programDataAccount: string(),\n rentSysvar: string(),\n spillAccount: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderSetAuthorityInstruction', {\n account: string(),\n authority: string(),\n newAuthority: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderSetAuthorityCheckedInstruction', {\n account: string(),\n authority: string(),\n newAuthority: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderCloseInstruction', {\n account: string(),\n authority: string(),\n programAccount: string(),\n recipient: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderExtendProgramInstruction', {\n additionalBytes: bigint(),\n payerAccount: string(),\n programAccount: string(),\n programDataAccount: string(),\n systemProgram: string(),\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 account: string(),\n mint: string(),\n source: string(),\n systemProgram: string(),\n tokenProgram: string(),\n wallet: string(),\n }),\n parsedTransactionInstructionType('SplAssociatedTokenCreateIdempotentInstruction', {\n account: string(),\n mint: string(),\n source: string(),\n systemProgram: string(),\n tokenProgram: string(),\n wallet: string(),\n }),\n parsedTransactionInstructionType('SplAssociatedTokenRecoverNestedInstruction', {\n destination: string(),\n nestedMint: string(),\n nestedOwner: string(),\n nestedSource: string(),\n ownerMint: string(),\n tokenProgram: string(),\n wallet: string(),\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: string(),\n mint: string(),\n mintAuthority: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeMint2Instruction', {\n decimals: number(),\n freezeAuthority: string(),\n mint: string(),\n mintAuthority: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeAccountInstruction', {\n account: string(),\n mint: string(),\n owner: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeAccount2Instruction', {\n account: string(),\n mint: string(),\n owner: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeAccount3Instruction', {\n account: string(),\n mint: string(),\n owner: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeMultisigInstruction', {\n m: number(),\n multisig: string(),\n rentSysvar: string(),\n signers: list(string()),\n }),\n parsedTransactionInstructionType('SplTokenInitializeMultisig2Instruction', {\n m: number(),\n multisig: string(),\n signers: list(string()),\n }),\n parsedTransactionInstructionType('SplTokenTransferInstruction', {\n amount: string(),\n authority: string(),\n destination: string(),\n multisigAuthority: string(),\n source: string(),\n }),\n parsedTransactionInstructionType('SplTokenApproveInstruction', {\n amount: string(),\n delegate: string(),\n multisigOwner: string(),\n owner: string(),\n source: string(),\n }),\n parsedTransactionInstructionType('SplTokenRevokeInstruction', {\n multisigOwner: string(),\n owner: string(),\n source: string(),\n }),\n parsedTransactionInstructionType('SplTokenSetAuthorityInstruction', {\n authority: string(),\n authorityType: string(),\n multisigAuthority: string(),\n newAuthority: string(),\n }),\n parsedTransactionInstructionType('SplTokenMintToInstruction', {\n account: string(),\n amount: string(),\n authority: string(),\n mint: string(),\n mintAuthority: string(),\n multisigMintAuthority: string(),\n }),\n parsedTransactionInstructionType('SplTokenBurnInstruction', {\n account: string(),\n amount: string(),\n authority: string(),\n mint: string(),\n multisigAuthority: string(),\n }),\n parsedTransactionInstructionType('SplTokenCloseAccountInstruction', {\n account: string(),\n destination: string(),\n multisigOwner: string(),\n owner: string(),\n }),\n parsedTransactionInstructionType('SplTokenFreezeAccountInstruction', {\n account: string(),\n freezeAuthority: string(),\n mint: string(),\n multisigFreezeAuthority: string(),\n }),\n parsedTransactionInstructionType('SplTokenThawAccountInstruction', {\n account: string(),\n freezeAuthority: string(),\n mint: string(),\n multisigFreezeAuthority: string(),\n }),\n parsedTransactionInstructionType('SplTokenTransferCheckedInstruction', {\n authority: string(),\n destination: string(),\n mint: string(),\n multisigAuthority: string(),\n source: string(),\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenApproveCheckedInstruction', {\n delegate: string(),\n mint: string(),\n multisigOwner: string(),\n owner: string(),\n source: string(),\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenMintToCheckedInstruction', {\n account: string(),\n authority: string(),\n mint: string(),\n mintAuthority: string(),\n multisigMintAuthority: string(),\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenBurnCheckedInstruction', {\n account: string(),\n authority: string(),\n mint: string(),\n multisigAuthority: string(),\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenSyncNativeInstruction', {\n account: string(),\n }),\n parsedTransactionInstructionType('SplTokenGetAccountDataSizeInstruction', {\n extensionTypes: list(string()),\n mint: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeImmutableOwnerInstruction', {\n account: string(),\n }),\n parsedTransactionInstructionType('SplTokenAmountToUiAmountInstruction', {\n amount: string(),\n mint: string(),\n }),\n parsedTransactionInstructionType('SplTokenUiAmountToAmountInstruction', {\n mint: string(),\n uiAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeMintCloseAuthorityInstruction', {\n mint: string(),\n newAuthority: string(),\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 custodian: string(),\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 staker: string(),\n withdrawer: string(),\n }),\n lockup: object('StakeInitializeInstructionLockup', {\n custodian: string(),\n epoch: bigint(),\n unixTimestamp: bigint(),\n }),\n rentSysvar: string(),\n stakeAccount: string(),\n }),\n parsedTransactionInstructionType('StakeAuthorizeInstruction', {\n authority: string(),\n authorityType: string(),\n clockSysvar: string(),\n custodian: string(),\n newAuthority: string(),\n stakeAccount: string(),\n }),\n parsedTransactionInstructionType('StakeDelegateStakeInstruction', {\n clockSysvar: string(),\n stakeAccount: string(),\n stakeAuthority: string(),\n stakeConfigAccount: string(),\n stakeHistorySysvar: string(),\n voteAccount: string(),\n }),\n parsedTransactionInstructionType('StakeSplitInstruction', {\n lamports: bigint(),\n newSplitAccount: string(),\n stakeAccount: string(),\n stakeAuthority: string(),\n }),\n parsedTransactionInstructionType('StakeWithdrawInstruction', {\n clockSysvar: string(),\n destination: string(),\n lamports: bigint(),\n stakeAccount: string(),\n withdrawAuthority: string(),\n }),\n parsedTransactionInstructionType('StakeDeactivateInstruction', {\n clockSysvar: string(),\n stakeAccount: string(),\n stakeAuthority: string(),\n }),\n parsedTransactionInstructionType('StakeSetLockupInstruction', {\n custodian: string(),\n lockup: type(lockup()),\n stakeAccount: string(),\n }),\n parsedTransactionInstructionType('StakeMergeInstruction', {\n clockSysvar: string(),\n destination: string(),\n source: string(),\n stakeAuthority: string(),\n stakeHistorySysvar: string(),\n }),\n parsedTransactionInstructionType('StakeAuthorizeWithSeedInstruction', {\n authorityBase: string(),\n authorityOwner: string(),\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n custodian: string(),\n newAuthorized: string(),\n stakeAccount: string(),\n }),\n parsedTransactionInstructionType('StakeInitializeCheckedInstruction', {\n rentSysvar: string(),\n stakeAccount: string(),\n staker: string(),\n withdrawer: string(),\n }),\n parsedTransactionInstructionType('StakeAuthorizeCheckedInstruction', {\n authority: string(),\n authorityType: string(),\n clockSysvar: string(),\n custodian: string(),\n newAuthority: string(),\n stakeAccount: string(),\n }),\n parsedTransactionInstructionType('StakeAuthorizeCheckedWithSeedInstruction', {\n authorityBase: string(),\n authorityOwner: string(),\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n custodian: string(),\n newAuthorized: string(),\n stakeAccount: string(),\n }),\n parsedTransactionInstructionType('StakeSetLockupCheckedInstruction', {\n custodian: string(),\n lockup: type(lockup()),\n stakeAccount: string(),\n }),\n parsedTransactionInstructionType('StakeDeactivateDelinquentInstruction', {\n referenceVoteAccount: string(),\n stakeAccount: string(),\n voteAccount: string(),\n }),\n parsedTransactionInstructionType('StakeRedelegateInstruction', {\n newStakeAccount: string(),\n stakeAccount: string(),\n stakeAuthority: string(),\n stakeConfigAccount: string(),\n voteAccount: string(),\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 newAccount: string(),\n owner: string(),\n source: string(),\n space: bigint(),\n }),\n parsedTransactionInstructionType('AssignInstruction', {\n owner: string(),\n }),\n parsedTransactionInstructionType('TransferInstruction', {\n amount: string(),\n lamports: number(),\n source: string(),\n }),\n parsedTransactionInstructionType('CreateAccountWithSeedInstruction', {\n base: string(),\n lamports: bigint(),\n owner: string(),\n seed: string(),\n space: bigint(),\n }),\n parsedTransactionInstructionType('AdvanceNonceAccountInstruction', {\n nonceAccount: string(),\n nonceAuthority: string(),\n recentBlockhashesSysvar: string(),\n }),\n parsedTransactionInstructionType('WithdrawNonceAccountInstruction', {\n destination: string(),\n lamports: bigint(),\n nonceAccount: string(),\n nonceAuthority: string(),\n recentBlockhashesSysvar: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('InitializeNonceAccountInstruction', {\n nonceAccount: string(),\n nonceAuthority: string(),\n recentBlockhashesSysvar: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('AuthorizeNonceAccountInstruction', {\n newAuthorized: string(),\n nonceAccount: string(),\n nonceAuthority: string(),\n }),\n parsedTransactionInstructionType('UpgradeNonceAccountInstruction', {\n nonceAccount: string(),\n }),\n parsedTransactionInstructionType('AllocateInstruction', {\n account: string(),\n space: bigint(),\n }),\n parsedTransactionInstructionType('AllocateWithSeedInstruction', {\n account: string(),\n base: string(),\n owner: string(),\n seed: string(),\n space: bigint(),\n }),\n parsedTransactionInstructionType('AssignWithSeedInstruction', {\n account: string(),\n base: string(),\n owner: string(),\n seed: string(),\n }),\n parsedTransactionInstructionType('TransferWithSeedInstruction', {\n destination: string(),\n lamports: bigint(),\n source: string(),\n sourceBase: string(),\n sourceOwner: string(),\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 authorizedVoter: string(),\n authorizedWithdrawer: string(),\n clockSysvar: string(),\n commission: number(),\n node: string(),\n rentSysvar: string(),\n voteAccount: string(),\n }),\n parsedTransactionInstructionType('VoteAuthorizeInstruction', {\n authority: string(),\n authorityType: string(),\n clockSysvar: string(),\n newAuthority: string(),\n voteAccount: string(),\n }),\n parsedTransactionInstructionType('VoteAuthorizeWithSeedInstruction', {\n authorityBaseKey: string(),\n authorityOwner: string(),\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n newAuthority: string(),\n voteAccount: string(),\n }),\n parsedTransactionInstructionType('VoteAuthorizeCheckedWithSeedInstruction', {\n authorityBaseKey: string(),\n authorityOwner: string(),\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n newAuthority: string(),\n voteAccount: string(),\n }),\n parsedTransactionInstructionType('VoteVoteInstruction', {\n clockSysvar: string(),\n slotHashedSysvar: string(),\n vote: type(vote()),\n voteAccount: string(),\n voteAuthority: string(),\n }),\n parsedTransactionInstructionType('VoteUpdateVoteStateInstruction', {\n hash: string(),\n voteAccount: string(),\n voteAuthority: string(),\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteUpdateVoteStateSwitchInstruction', {\n hash: string(),\n voteAccount: string(),\n voteAuthority: string(),\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteCompactUpdateVoteStateInstruction', {\n hash: string(),\n voteAccount: string(),\n voteAuthority: string(),\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteCompactUpdateVoteStateSwitchInstruction', {\n hash: string(),\n voteAccount: string(),\n voteAuthority: string(),\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteWithdrawInstruction', {\n destination: string(),\n lamports: bigint(),\n voteAccount: string(),\n withdrawAuthority: string(),\n }),\n parsedTransactionInstructionType('VoteUpdateValidatorIdentityInstruction', {\n newValidatorIdentity: string(),\n voteAccount: string(),\n withdrawAuthority: string(),\n }),\n parsedTransactionInstructionType('VoteUpdateCommissionInstruction', {\n commission: string(),\n voteAccount: string(),\n withdrawAuthority: string(),\n }),\n parsedTransactionInstructionType('VoteVoteSwitchInstruction', {\n clockSysvar: string(),\n hash: string(),\n slotHashesSysvar: string(),\n vote: type(vote()),\n voteAccount: string(),\n voteAuthority: string(),\n }),\n parsedTransactionInstructionType('VoteAuthorizeCheckedInstruction', {\n authority: string(),\n authorityType: string(),\n clockSysvar: string(),\n newAuthority: string(),\n voteAccount: string(),\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-core';\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 { Commitment } from '@solana/rpc-core';\nimport { Slot } from '@solana/rpc-core/dist/types/rpc-methods/common';\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 { Commitment } from '@solana/rpc-core';\nimport {\n DataSlice,\n GetProgramAccountsDatasizeFilter,\n GetProgramAccountsMemcmpFilter,\n Slot,\n} from '@solana/rpc-core/dist/types/rpc-methods/common';\nimport { GraphQLList } from 'graphql';\n\nimport { RpcGraphQLContext } from '../../context';\nimport {\n accountEncodingInputType,\n commitmentInputType,\n dataSliceInputType,\n programAccountFilterInputType,\n} from '../inputs';\nimport { bigint, list, nonNull, string, type } from '../picks';\nimport { programAccount } from './types';\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(programAccount()),\n },\n});\n","import { GraphQLObjectType } from 'graphql';\n\nimport { accountInterface } from '../account';\nimport { string, type } from '../picks';\n\nexport const programAccount = () =>\n new GraphQLObjectType({\n fields: {\n account: type(accountInterface()),\n pubkey: string(),\n },\n name: 'ProgramAccount',\n });\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/rpc.ts","../src/loaders/account.ts","../src/loaders/common/resolve-info.ts","../src/loaders/block.ts","../src/loaders/transaction.ts","../src/loaders/program-accounts.ts","../src/context.ts","../src/schema/index.ts","../src/resolvers/account.ts","../src/schema/account.ts","../src/schema/block.ts","../src/schema/common/inputs.ts","../src/schema/common/scalars.ts","../src/schema/common/types.ts","../src/schema/instruction.ts","../src/schema/transaction.ts"],"names":["DataLoader","fastStableStringify","normalizeArgs","processQueryResponse"],"mappings":"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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+rC1C,IAAM,uBAAuB;AAAA,EAChC,wBAAwB;AAAA,IACpB,cAAc,aAA0D;AACpE,UAAI,YAAY,MAAM;AAClB,YAAI,YAAY,KAAK,YAAY,wBAAwB;AACrD,cAAI,YAAY,KAAK,SAAS,qBAAqB;AAC/C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,qBAAqB;AAC/C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,qBAAqB;AAC/C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,yBAAyB;AACnD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,YAAI,YAAY,KAAK,YAAY,cAAc;AAC3C,cAAI,YAAY,KAAK,SAAS,SAAS;AACnC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,YAAY;AACtC,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,YAAI,YAAY,KAAK,YAAY,0BAA0B;AACvD,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,SAAS;AACnC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,wBAAwB;AAClD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,WAAW;AACrC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,gBAAgB;AAC1C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,uBAAuB;AACjD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,SAAS;AACnC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,iBAAiB;AAC3C,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,YAAI,YAAY,KAAK,YAAY,gCAAgC;AAC7D,cAAI,YAAY,KAAK,SAAS,UAAU;AACpC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,iBAAiB;AAC3C,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,YAAI,YAAY,KAAK,YAAY,YAAY;AACzC,iBAAO;AAAA,QACX;AACA,YAAI,YAAY,KAAK,YAAY,aAAa;AAC1C,cAAI,YAAY,KAAK,SAAS,kBAAkB;AAC5C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,mBAAmB;AAC7C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,qBAAqB;AAC/C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,sBAAsB;AAChD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,sBAAsB;AAChD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,sBAAsB;AAChD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,uBAAuB;AACjD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,YAAY;AACtC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,WAAW;AACrC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,UAAU;AACpC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,gBAAgB;AAC1C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,UAAU;AACpC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,QAAQ;AAClC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,gBAAgB;AAC1C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,iBAAiB;AAC3C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,eAAe;AACzC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,mBAAmB;AAC7C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,kBAAkB;AAC5C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,iBAAiB;AAC3C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,eAAe;AACzC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,cAAc;AACxC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,sBAAsB;AAChD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,4BAA4B;AACtD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,gCAAgC;AAC1D,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,YAAI,YAAY,KAAK,YAAY,SAAS;AACtC,cAAI,YAAY,KAAK,SAAS,cAAc;AACxC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,aAAa;AACvC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,YAAY;AACtC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,SAAS;AACnC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,YAAY;AACtC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,cAAc;AACxC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,aAAa;AACvC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,SAAS;AACnC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,qBAAqB;AAC/C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,qBAAqB;AAC/C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,4BAA4B;AACtD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,wBAAwB;AAClD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,cAAc;AACxC,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,YAAI,YAAY,KAAK,YAAY,UAAU;AACvC,cAAI,YAAY,KAAK,SAAS,iBAAiB;AAC3C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,UAAU;AACpC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,YAAY;AACtC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,yBAAyB;AACnD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,uBAAuB;AACjD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,wBAAwB;AAClD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,0BAA0B;AACpD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,yBAAyB;AACnD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,uBAAuB;AACjD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,YAAY;AACtC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,kBAAkB;AAC5C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,YAAI,YAAY,KAAK,YAAY,QAAQ;AACrC,cAAI,YAAY,KAAK,SAAS,cAAc;AACxC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,aAAa;AACvC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,qBAAqB;AAC/C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,4BAA4B;AACtD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,QAAQ;AAClC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,mBAAmB;AAC7C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,yBAAyB;AACnD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,0BAA0B;AACpD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,gCAAgC;AAC1D,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,YAAY;AACtC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,2BAA2B;AACrD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,cAAc;AACxC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AAAA,QACJ;AAAA,MACJ;AACA,aAAO;AAAA,IACX;AAAA,EACJ;AAAA,EACA,kCAAkC;AAAA,IAC9B,oBAAoB,eAAe,oBAAoB;AAAA,IACvD,sBAAsB,eAAe,sBAAsB;AAAA,IAC3D,cAAc,eAAe,cAAc;AAAA,IAC3C,eAAe,eAAe,eAAe;AAAA,EACjD;AAAA,EACA,kCAAkC;AAAA,IAC9B,oBAAoB,eAAe,oBAAoB;AAAA,IACvD,sBAAsB,eAAe,sBAAsB;AAAA,IAC3D,cAAc,eAAe,cAAc;AAAA,IAC3C,eAAe,eAAe,eAAe;AAAA,EACjD;AAAA,EACA,kCAAkC;AAAA,IAC9B,oBAAoB,eAAe,oBAAoB;AAAA,IACvD,sBAAsB,eAAe,sBAAsB;AAAA,EAC/D;AAAA,EACA,sCAAsC;AAAA,IAClC,oBAAoB,eAAe,oBAAoB;AAAA,IACvD,sBAAsB,eAAe,sBAAsB;AAAA,EAC/D;AAAA,EACA,iCAAiC;AAAA,IAC7B,oBAAoB,eAAe,oBAAoB;AAAA,IACvD,sBAAsB,eAAe,sBAAsB;AAAA,IAC3D,WAAW,eAAe,WAAW;AAAA,EACzC;AAAA,EACA,+BAA+B;AAAA,IAC3B,SAAS,eAAe,SAAS;AAAA,EACrC;AAAA,EACA,kCAAkC;AAAA,IAC9B,SAAS,eAAe,SAAS;AAAA,EACrC;AAAA,EACA,qDAAqD;AAAA,IACjD,SAAS,eAAe,SAAS;AAAA,EACrC;AAAA,EACA,0CAA0C;AAAA,IACtC,SAAS,eAAe,SAAS;AAAA,IACjC,WAAW,eAAe,WAAW;AAAA,EACzC;AAAA,EACA,yDAAyD;AAAA,IACrD,WAAW,eAAe,WAAW;AAAA,IACrC,eAAe,eAAe,eAAe;AAAA,IAC7C,cAAc,eAAe,cAAc;AAAA,IAC3C,gBAAgB,eAAe,gBAAgB;AAAA,IAC/C,oBAAoB,eAAe,oBAAoB;AAAA,EAC3D;AAAA,EACA,4CAA4C;AAAA,IACxC,WAAW,eAAe,WAAW;AAAA,IACrC,eAAe,eAAe,eAAe;AAAA,IAC7C,gBAAgB,eAAe,gBAAgB;AAAA,IAC/C,oBAAoB,eAAe,oBAAoB;AAAA,EAC3D;AAAA,EACA,iDAAiD;AAAA,IAC7C,SAAS,eAAe,SAAS;AAAA,IACjC,WAAW,eAAe,WAAW;AAAA,IACrC,cAAc,eAAe,cAAc;AAAA,EAC/C;AAAA,EACA,wDAAwD;AAAA,IACpD,SAAS,eAAe,SAAS;AAAA,IACjC,WAAW,eAAe,WAAW;AAAA,IACrC,cAAc,eAAe,cAAc;AAAA,EAC/C;AAAA,EACA,0CAA0C;AAAA,IACtC,SAAS,eAAe,SAAS;AAAA,IACjC,WAAW,eAAe,WAAW;AAAA,IACrC,gBAAgB,eAAe,gBAAgB;AAAA,IAC/C,WAAW,eAAe,WAAW;AAAA,EACzC;AAAA,EACA,kDAAkD;AAAA,IAC9C,cAAc,eAAe,cAAc;AAAA,IAC3C,gBAAgB,eAAe,gBAAgB;AAAA,IAC/C,oBAAoB,eAAe,oBAAoB;AAAA,IACvD,eAAe,eAAe,eAAe;AAAA,EACjD;AAAA,EACA,yCAAyC;AAAA,IACrC,SAAS,eAAe,SAAS;AAAA,IACjC,MAAM,eAAe,MAAM;AAAA,IAC3B,QAAQ,eAAe,QAAQ;AAAA,IAC/B,eAAe,eAAe,eAAe;AAAA,IAC7C,cAAc,eAAe,cAAc;AAAA,IAC3C,QAAQ,eAAe,QAAQ;AAAA,EACnC;AAAA,EACA,mDAAmD;AAAA,IAC/C,SAAS,eAAe,SAAS;AAAA,IACjC,MAAM,eAAe,MAAM;AAAA,IAC3B,QAAQ,eAAe,QAAQ;AAAA,IAC/B,eAAe,eAAe,eAAe;AAAA,IAC7C,cAAc,eAAe,cAAc;AAAA,IAC3C,QAAQ,eAAe,QAAQ;AAAA,EACnC;AAAA,EACA,gDAAgD;AAAA,IAC5C,aAAa,eAAe,aAAa;AAAA,IACzC,YAAY,eAAe,YAAY;AAAA,IACvC,aAAa,eAAe,aAAa;AAAA,IACzC,cAAc,eAAe,cAAc;AAAA,IAC3C,WAAW,eAAe,WAAW;AAAA,IACrC,cAAc,eAAe,cAAc;AAAA,IAC3C,QAAQ,eAAe,QAAQ;AAAA,EACnC;AAAA,EACA,uCAAuC;AAAA,IACnC,iBAAiB,eAAe,iBAAiB;AAAA,IACjD,MAAM,eAAe,MAAM;AAAA,IAC3B,eAAe,eAAe,eAAe;AAAA,EACjD;AAAA,EACA,wCAAwC;AAAA,IACpC,iBAAiB,eAAe,iBAAiB;AAAA,IACjD,MAAM,eAAe,MAAM;AAAA,IAC3B,eAAe,eAAe,eAAe;AAAA,EACjD;AAAA,EACA,0CAA0C;AAAA,IACtC,SAAS,eAAe,SAAS;AAAA,IACjC,MAAM,eAAe,MAAM;AAAA,IAC3B,OAAO,eAAe,OAAO;AAAA,EACjC;AAAA,EACA,2CAA2C;AAAA,IACvC,SAAS,eAAe,SAAS;AAAA,IACjC,MAAM,eAAe,MAAM;AAAA,IAC3B,OAAO,eAAe,OAAO;AAAA,EACjC;AAAA,EACA,2CAA2C;AAAA,IACvC,SAAS,eAAe,SAAS;AAAA,IACjC,MAAM,eAAe,MAAM;AAAA,IAC3B,OAAO,eAAe,OAAO;AAAA,EACjC;AAAA,EACA,2CAA2C;AAAA,IACvC,UAAU,eAAe,UAAU;AAAA,EACvC;AAAA,EACA,4CAA4C;AAAA,IACxC,UAAU,eAAe,UAAU;AAAA,EACvC;AAAA,EACA,iCAAiC;AAAA,IAC7B,WAAW,eAAe,WAAW;AAAA,IACrC,aAAa,eAAe,aAAa;AAAA,IACzC,mBAAmB,eAAe,mBAAmB;AAAA,IACrD,QAAQ,eAAe,QAAQ;AAAA,EACnC;AAAA,EACA,gCAAgC;AAAA,IAC5B,UAAU,eAAe,UAAU;AAAA,IACnC,eAAe,eAAe,eAAe;AAAA,IAC7C,OAAO,eAAe,OAAO;AAAA,IAC7B,QAAQ,eAAe,QAAQ;AAAA,EACnC;AAAA,EACA,+BAA+B;AAAA,IAC3B,eAAe,eAAe,eAAe;AAAA,IAC7C,OAAO,eAAe,OAAO;AAAA,IAC7B,QAAQ,eAAe,QAAQ;AAAA,EACnC;AAAA,EACA,qCAAqC;AAAA,IACjC,WAAW,eAAe,WAAW;AAAA,IACrC,mBAAmB,eAAe,mBAAmB;AAAA,IACrD,cAAc,eAAe,cAAc;AAAA,EAC/C;AAAA,EACA,+BAA+B;AAAA,IAC3B,SAAS,eAAe,SAAS;AAAA,IACjC,WAAW,eAAe,WAAW;AAAA,IACrC,MAAM,eAAe,MAAM;AAAA,IAC3B,eAAe,eAAe,eAAe;AAAA,IAC7C,uBAAuB,eAAe,uBAAuB;AAAA,EACjE;AAAA,EACA,6BAA6B;AAAA,IACzB,SAAS,eAAe,SAAS;AAAA,IACjC,WAAW,eAAe,WAAW;AAAA,IACrC,MAAM,eAAe,MAAM;AAAA,IAC3B,mBAAmB,eAAe,mBAAmB;AAAA,EACzD;AAAA,EACA,qCAAqC;AAAA,IACjC,SAAS,eAAe,SAAS;AAAA,IACjC,aAAa,eAAe,aAAa;AAAA,IACzC,eAAe,eAAe,eAAe;AAAA,IAC7C,OAAO,eAAe,OAAO;AAAA,EACjC;AAAA,EACA,sCAAsC;AAAA,IAClC,SAAS,eAAe,SAAS;AAAA,IACjC,iBAAiB,eAAe,iBAAiB;AAAA,IACjD,MAAM,eAAe,MAAM;AAAA,IAC3B,yBAAyB,eAAe,yBAAyB;AAAA,EACrE;AAAA,EACA,oCAAoC;AAAA,IAChC,SAAS,eAAe,SAAS;AAAA,IACjC,iBAAiB,eAAe,iBAAiB;AAAA,IACjD,MAAM,eAAe,MAAM;AAAA,IAC3B,yBAAyB,eAAe,yBAAyB;AAAA,EACrE;AAAA,EACA,wCAAwC;AAAA,IACpC,WAAW,eAAe,WAAW;AAAA,IACrC,aAAa,eAAe,aAAa;AAAA,IACzC,MAAM,eAAe,MAAM;AAAA,IAC3B,mBAAmB,eAAe,mBAAmB;AAAA,IACrD,QAAQ,eAAe,QAAQ;AAAA,EACnC;AAAA,EACA,uCAAuC;AAAA,IACnC,UAAU,eAAe,UAAU;AAAA,IACnC,MAAM,eAAe,MAAM;AAAA,IAC3B,eAAe,eAAe,eAAe;AAAA,IAC7C,OAAO,eAAe,OAAO;AAAA,IAC7B,QAAQ,eAAe,QAAQ;AAAA,EACnC;AAAA,EACA,sCAAsC;AAAA,IAClC,SAAS,eAAe,SAAS;AAAA,IACjC,WAAW,eAAe,WAAW;AAAA,IACrC,MAAM,eAAe,MAAM;AAAA,IAC3B,eAAe,eAAe,eAAe;AAAA,IAC7C,uBAAuB,eAAe,uBAAuB;AAAA,EACjE;AAAA,EACA,oCAAoC;AAAA,IAChC,SAAS,eAAe,SAAS;AAAA,IACjC,WAAW,eAAe,WAAW;AAAA,IACrC,MAAM,eAAe,MAAM;AAAA,IAC3B,mBAAmB,eAAe,mBAAmB;AAAA,EACzD;AAAA,EACA,mCAAmC;AAAA,IAC/B,SAAS,eAAe,SAAS;AAAA,EACrC;AAAA,EACA,2CAA2C;AAAA,IACvC,MAAM,eAAe,MAAM;AAAA,EAC/B;AAAA,EACA,yCAAyC;AAAA,IACrC,MAAM,eAAe,MAAM;AAAA,EAC/B;AAAA,EACA,yCAAyC;AAAA,IACrC,MAAM,eAAe,MAAM;AAAA,EAC/B;AAAA,EACA,qDAAqD;AAAA,IACjD,MAAM,eAAe,MAAM;AAAA,IAC3B,cAAc,eAAe,cAAc;AAAA,EAC/C;AAAA,EACA,QAAQ;AAAA,IACJ,WAAW,eAAe,WAAW;AAAA,EACzC;AAAA,EACA,0CAA0C;AAAA,IACtC,QAAQ,eAAe,QAAQ;AAAA,IAC/B,YAAY,eAAe,YAAY;AAAA,EAC3C;AAAA,EACA,gCAAgC;AAAA,IAC5B,cAAc,eAAe,cAAc;AAAA,EAC/C;AAAA,EACA,+BAA+B;AAAA,IAC3B,WAAW,eAAe,WAAW;AAAA,IACrC,WAAW,eAAe,WAAW;AAAA,IACrC,cAAc,eAAe,cAAc;AAAA,IAC3C,cAAc,eAAe,cAAc;AAAA,EAC/C;AAAA,EACA,mCAAmC;AAAA,IAC/B,cAAc,eAAe,cAAc;AAAA,IAC3C,gBAAgB,eAAe,gBAAgB;AAAA,IAC/C,oBAAoB,eAAe,oBAAoB;AAAA,IACvD,aAAa,eAAe,aAAa;AAAA,EAC7C;AAAA,EACA,2BAA2B;AAAA,IACvB,iBAAiB,eAAe,iBAAiB;AAAA,IACjD,cAAc,eAAe,cAAc;AAAA,IAC3C,gBAAgB,eAAe,gBAAgB;AAAA,EACnD;AAAA,EACA,8BAA8B;AAAA,IAC1B,aAAa,eAAe,aAAa;AAAA,IACzC,cAAc,eAAe,cAAc;AAAA,IAC3C,mBAAmB,eAAe,mBAAmB;AAAA,EACzD;AAAA,EACA,gCAAgC;AAAA,IAC5B,cAAc,eAAe,cAAc;AAAA,IAC3C,gBAAgB,eAAe,gBAAgB;AAAA,EACnD;AAAA,EACA,+BAA+B;AAAA,IAC3B,WAAW,eAAe,WAAW;AAAA,IACrC,cAAc,eAAe,cAAc;AAAA,EAC/C;AAAA,EACA,2BAA2B;AAAA,IACvB,aAAa,eAAe,aAAa;AAAA,IACzC,QAAQ,eAAe,QAAQ;AAAA,IAC/B,gBAAgB,eAAe,gBAAgB;AAAA,EACnD;AAAA,EACA,uCAAuC;AAAA,IACnC,eAAe,eAAe,eAAe;AAAA,IAC7C,gBAAgB,eAAe,gBAAgB;AAAA,IAC/C,WAAW,eAAe,WAAW;AAAA,IACrC,eAAe,eAAe,eAAe;AAAA,IAC7C,cAAc,eAAe,cAAc;AAAA,EAC/C;AAAA,EACA,iDAAiD;AAAA,IAC7C,cAAc,eAAe,cAAc;AAAA,IAC3C,QAAQ,eAAe,QAAQ;AAAA,IAC/B,YAAY,eAAe,YAAY;AAAA,EAC3C;AAAA,EACA,sCAAsC;AAAA,IAClC,WAAW,eAAe,WAAW;AAAA,IACrC,WAAW,eAAe,WAAW;AAAA,IACrC,cAAc,eAAe,cAAc;AAAA,IAC3C,cAAc,eAAe,cAAc;AAAA,EAC/C;AAAA,EACA,8CAA8C;AAAA,IAC1C,eAAe,eAAe,eAAe;AAAA,IAC7C,gBAAgB,eAAe,gBAAgB;AAAA,IAC/C,WAAW,eAAe,WAAW;AAAA,IACrC,eAAe,eAAe,eAAe;AAAA,IAC7C,cAAc,eAAe,cAAc;AAAA,EAC/C;AAAA,EACA,sCAAsC;AAAA,IAClC,WAAW,eAAe,WAAW;AAAA,IACrC,cAAc,eAAe,cAAc;AAAA,EAC/C;AAAA,EACA,0CAA0C;AAAA,IACtC,sBAAsB,eAAe,sBAAsB;AAAA,IAC3D,cAAc,eAAe,cAAc;AAAA,IAC3C,aAAa,eAAe,aAAa;AAAA,EAC7C;AAAA,EACA,gCAAgC;AAAA,IAC5B,iBAAiB,eAAe,iBAAiB;AAAA,IACjD,cAAc,eAAe,cAAc;AAAA,IAC3C,gBAAgB,eAAe,gBAAgB;AAAA,IAC/C,oBAAoB,eAAe,oBAAoB;AAAA,IACvD,aAAa,eAAe,aAAa;AAAA,EAC7C;AAAA,EACA,8BAA8B;AAAA,IAC1B,YAAY,eAAe,YAAY;AAAA,IACvC,OAAO,eAAe,OAAO;AAAA,IAC7B,QAAQ,eAAe,QAAQ;AAAA,EACnC;AAAA,EACA,uBAAuB;AAAA,IACnB,SAAS,eAAe,SAAS;AAAA,IACjC,OAAO,eAAe,OAAO;AAAA,EACjC;AAAA,EACA,yBAAyB;AAAA,IACrB,aAAa,eAAe,aAAa;AAAA,IACzC,QAAQ,eAAe,QAAQ;AAAA,EACnC;AAAA,EACA,sCAAsC;AAAA,IAClC,MAAM,eAAe,MAAM;AAAA,IAC3B,OAAO,eAAe,OAAO;AAAA,IAC7B,MAAM,eAAe,MAAM;AAAA,EAC/B;AAAA,EACA,oCAAoC;AAAA,IAChC,cAAc,eAAe,cAAc;AAAA,IAC3C,gBAAgB,eAAe,gBAAgB;AAAA,EACnD;AAAA,EACA,qCAAqC;AAAA,IACjC,aAAa,eAAe,aAAa;AAAA,IACzC,cAAc,eAAe,cAAc;AAAA,IAC3C,gBAAgB,eAAe,gBAAgB;AAAA,EACnD;AAAA,EACA,uCAAuC;AAAA,IACnC,cAAc,eAAe,cAAc;AAAA,IAC3C,gBAAgB,eAAe,gBAAgB;AAAA,EACnD;AAAA,EACA,sCAAsC;AAAA,IAClC,eAAe,eAAe,eAAe;AAAA,IAC7C,cAAc,eAAe,cAAc;AAAA,IAC3C,gBAAgB,eAAe,gBAAgB;AAAA,EACnD;AAAA,EACA,oCAAoC;AAAA,IAChC,cAAc,eAAe,cAAc;AAAA,IAC3C,gBAAgB,eAAe,gBAAgB;AAAA,EACnD;AAAA,EACA,yBAAyB;AAAA,IACrB,SAAS,eAAe,SAAS;AAAA,EACrC;AAAA,EACA,iCAAiC;AAAA,IAC7B,SAAS,eAAe,SAAS;AAAA,IACjC,OAAO,eAAe,OAAO;AAAA,EACjC;AAAA,EACA,+BAA+B;AAAA,IAC3B,SAAS,eAAe,SAAS;AAAA,IACjC,OAAO,eAAe,OAAO;AAAA,EACjC;AAAA,EACA,iCAAiC;AAAA,IAC7B,aAAa,eAAe,aAAa;AAAA,IACzC,QAAQ,eAAe,QAAQ;AAAA,IAC/B,aAAa,eAAe,aAAa;AAAA,EAC7C;AAAA,EACA,sCAAsC;AAAA,IAClC,iBAAiB,eAAe,iBAAiB;AAAA,IACjD,sBAAsB,eAAe,sBAAsB;AAAA,IAC3D,MAAM,eAAe,MAAM;AAAA,IAC3B,aAAa,eAAe,aAAa;AAAA,EAC7C;AAAA,EACA,8BAA8B;AAAA,IAC1B,WAAW,eAAe,WAAW;AAAA,IACrC,cAAc,eAAe,cAAc;AAAA,IAC3C,aAAa,eAAe,aAAa;AAAA,EAC7C;AAAA,EACA,sCAAsC;AAAA,IAClC,gBAAgB,eAAe,gBAAgB;AAAA,IAC/C,cAAc,eAAe,cAAc;AAAA,IAC3C,aAAa,eAAe,aAAa;AAAA,EAC7C;AAAA,EACA,6CAA6C;AAAA,IACzC,gBAAgB,eAAe,gBAAgB;AAAA,IAC/C,cAAc,eAAe,cAAc;AAAA,IAC3C,aAAa,eAAe,aAAa;AAAA,EAC7C;AAAA,EACA,yBAAyB;AAAA,IACrB,aAAa,eAAe,aAAa;AAAA,IACzC,eAAe,eAAe,eAAe;AAAA,EACjD;AAAA,EACA,oCAAoC;AAAA,IAChC,aAAa,eAAe,aAAa;AAAA,IACzC,eAAe,eAAe,eAAe;AAAA,EACjD;AAAA,EACA,0CAA0C;AAAA,IACtC,aAAa,eAAe,aAAa;AAAA,IACzC,eAAe,eAAe,eAAe;AAAA,EACjD;AAAA,EACA,2CAA2C;AAAA,IACvC,aAAa,eAAe,aAAa;AAAA,IACzC,eAAe,eAAe,eAAe;AAAA,EACjD;AAAA,EACA,iDAAiD;AAAA,IAC7C,aAAa,eAAe,aAAa;AAAA,IACzC,eAAe,eAAe,eAAe;AAAA,EACjD;AAAA,EACA,6BAA6B;AAAA,IACzB,aAAa,eAAe,aAAa;AAAA,IACzC,mBAAmB,eAAe,mBAAmB;AAAA,EACzD;AAAA,EACA,4CAA4C;AAAA,IACxC,sBAAsB,eAAe,sBAAsB;AAAA,IAC3D,aAAa,eAAe,aAAa;AAAA,IACzC,mBAAmB,eAAe,mBAAmB;AAAA,EACzD;AAAA,EACA,qCAAqC;AAAA,IACjC,aAAa,eAAe,aAAa;AAAA,IACzC,mBAAmB,eAAe,mBAAmB;AAAA,EACzD;AAAA,EACA,+BAA+B;AAAA,IAC3B,aAAa,eAAe,aAAa;AAAA,IACzC,eAAe,eAAe,eAAe;AAAA,EACjD;AAAA,EACA,qCAAqC;AAAA,IACjC,WAAW,eAAe,WAAW;AAAA,IACrC,cAAc,eAAe,cAAc;AAAA,IAC3C,aAAa,eAAe,aAAa;AAAA,EAC7C;AACJ;;;ACx4DO,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;AA0G1C,IAAM,uBAAuB;AAAA,EAChC,aAAa;AAAA,IACT,cAAc,aAAmC;AAC7C,cAAQ,YAAY,UAAU;AAAA,QAC1B,KAAK;AACD,iBAAO;AAAA,QACX,KAAK;AACD,iBAAO;AAAA,QACX;AACI,iBAAO;AAAA,MACf;AAAA,IACJ;AAAA,EACJ;AACJ;;;ARnHA,IAAM;AAAA;AAAA,EAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoCrC,IAAM,kBAAkB;AAAA,EACpB,OAAO;AAAA,IACH,QACI,GACA,MACA,SACA,MACF;AACE,aAAO,QAAQ,QAAQ,QAAQ,KAAK,MAAM,IAAI;AAAA,IAClD;AAAA,IACA,MACI,GACA,MACA,SACA,MACF;AACE,aAAO,QAAQ,QAAQ,MAAM,KAAK,MAAM,IAAI;AAAA,IAChD;AAAA,IACA,gBACI,GACA,MACA,SACA,MACF;AACE,aAAO,QAAQ,QAAQ,gBAAgB,KAAK,MAAM,IAAI;AAAA,IAC1D;AAAA,IACA,YACI,GACA,MACA,SACA,MACF;AACE,aAAO,QAAQ,QAAQ,YAAY,KAAK,MAAM,IAAI;AAAA,IACtD;AAAA,EACJ;AACJ;AAEO,SAAS,4BAA4B;AACxC,SAAO,qBAAqB;AAAA,IACxB,WAAW;AAAA,MACP,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACP;AAAA,IACA,UAAU;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ,CAAC;AACL;;;APzFO,SAAS,iBAAiB,KAAkC;AAC/D,QAAM,UAAU,2BAA2B,GAAG;AAC9C,QAAM,SAAS,0BAA0B;AACzC,SAAO;AAAA,IACH;AAAA,IACA,MAAM,MAAM,QAAyB,gBAA2D;AAC5F,aAAO,QAAQ;AAAA,QACX,cAAc,KAAK;AAAA,QACnB,QAAQ,KAAK;AAAA,QACb;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,IACA;AAAA,EACJ;AACJ","sourcesContent":["import { GetAccountInfoApi } from '@solana/rpc-core/dist/types/rpc-methods/getAccountInfo';\nimport { GetBlockApi } from '@solana/rpc-core/dist/types/rpc-methods/getBlock';\nimport { GetProgramAccountsApi } from '@solana/rpc-core/dist/types/rpc-methods/getProgramAccounts';\nimport { GetTransactionApi } from '@solana/rpc-core/dist/types/rpc-methods/getTransaction';\nimport { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';\nimport { graphql, GraphQLSchema, Source } from 'graphql';\n\nimport { createSolanaGraphQLContext, RpcGraphQLContext } from './context';\nimport { createSolanaGraphQLSchema } from './schema';\n\ntype RpcMethods = GetAccountInfoApi & GetBlockApi & GetProgramAccountsApi & GetTransactionApi;\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<RpcMethods>): RpcGraphQL {\n const context = createSolanaGraphQLContext(rpc);\n const schema = createSolanaGraphQLSchema();\n return {\n context,\n async query(source: string | Source, variableValues?: { readonly [variable: string]: unknown }) {\n return graphql({\n contextValue: this.context,\n schema: this.schema,\n source,\n variableValues,\n });\n },\n schema,\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Address } from '@solana/addresses';\nimport { SolanaRpcMethods } from '@solana/rpc-core';\nimport DataLoader from 'dataloader';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport fastStableStringify from 'fast-stable-stringify';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport type { Rpc } from '../context';\nimport { AccountQueryArgs } from '../schema/account';\nimport { onlyPresentFieldRequested } from './common/resolve-info';\n\nfunction normalizeArgs(args: AccountQueryArgs) {\n const { address, commitment, dataSlice, encoding, minContextSlot } = args;\n return {\n address,\n commitment: commitment ?? 'confirmed',\n dataSlice,\n encoding: encoding ?? 'jsonParsed',\n minContextSlot,\n };\n}\n\nexport function refineJsonParsedAccountData(jsonParsedAccountData: any) {\n const meta = {\n program: jsonParsedAccountData.program,\n space: jsonParsedAccountData.space,\n type: jsonParsedAccountData.parsed.type,\n };\n const data = jsonParsedAccountData.parsed.info;\n return { data, meta };\n}\n\nfunction processQueryResponse({ address, account, encoding }: { address: Address; account: any; encoding: string }) {\n const [refinedData, responseEncoding] = Array.isArray(account.data)\n ? encoding === 'jsonParsed'\n ? [account.data[0], 'base64']\n : [account.data[0], encoding]\n : [refineJsonParsedAccountData(account.data), 'jsonParsed'];\n\n const responseBase = {\n ...account,\n address,\n encoding: responseEncoding,\n };\n return typeof refinedData === 'object' && 'meta' in refinedData\n ? {\n ...responseBase,\n data: refinedData.data,\n meta: refinedData.meta,\n }\n : {\n ...responseBase,\n data: refinedData,\n };\n}\n\n// Default to jsonParsed encoding if none is provided\nexport async function loadAccount(rpc: Rpc, { address, ...config }: ReturnType<typeof normalizeArgs>) {\n const { encoding } = config;\n\n const account = await rpc\n .getAccountInfo(address, config as Parameters<SolanaRpcMethods['getAccountInfo']>[1])\n .send()\n .then(res => res.value)\n .catch(e => {\n throw e;\n });\n\n // Account does not exist, return only the address\n if (account === null) {\n return { address };\n }\n\n return processQueryResponse({ account, address, encoding });\n}\n\nfunction createAccountBatchLoadFn(rpc: Rpc) {\n const resolveAccountUsingRpc = loadAccount.bind(null, rpc);\n return async (accountQueryArgs: readonly ReturnType<typeof normalizeArgs>[]) => {\n return await Promise.all(accountQueryArgs.map(async args => await resolveAccountUsingRpc(args)));\n };\n}\n\nexport function createAccountLoader(rpc: Rpc) {\n const loader = new DataLoader(createAccountBatchLoadFn(rpc), { cacheKeyFn: fastStableStringify });\n return {\n load: async (args: AccountQueryArgs, info?: GraphQLResolveInfo) => {\n // If a user only requests the account's address, don't call the RPC or the cache\n if (onlyPresentFieldRequested('address', info)) {\n return { address: args.address };\n }\n return loader.load(normalizeArgs(args));\n },\n };\n}\n","import { GraphQLResolveInfo } from 'graphql';\n\nexport function onlyPresentFieldRequested(fieldName: string, info?: GraphQLResolveInfo): boolean {\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] === fieldName) {\n return true;\n }\n }\n return false;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { SolanaRpcMethods } from '@solana/rpc-core';\nimport DataLoader from 'dataloader';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport fastStableStringify from 'fast-stable-stringify';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport type { Rpc } from '../context';\nimport { BlockQueryArgs } from '../schema/block';\nimport { onlyPresentFieldRequested } from './common/resolve-info';\nimport { refineJsonParsedTransaction } from './transaction';\n\nfunction normalizeArgs(args: BlockQueryArgs) {\n const { commitment, encoding, slot, transactionDetails } = args;\n return {\n commitment: commitment ?? 'confirmed',\n encoding: encoding ?? 'jsonParsed',\n // Always use 0 to avoid silly errors\n maxSupportedTransactionVersion: 0,\n slot,\n transactionDetails: transactionDetails ?? 'full',\n };\n}\n\nfunction refineJsonParsedTransactionForAccounts({ transaction }: { transaction: any }) {\n return {\n data: transaction.transaction,\n meta: transaction.meta,\n version: transaction.version,\n };\n}\n\nfunction processQueryResponse({\n encoding,\n block,\n transactionDetails,\n}: {\n block: any;\n encoding: string;\n transactionDetails: string;\n}) {\n if (typeof block === 'object' && 'transactions' in block) {\n const refinedBlock = {\n ...block,\n transactions: block.transactions.map((transaction: unknown) => {\n if (transactionDetails === 'accounts') {\n return refineJsonParsedTransactionForAccounts({ transaction });\n } else {\n return refineJsonParsedTransaction({ encoding, transaction });\n }\n }),\n };\n block = refinedBlock;\n }\n return {\n ...block,\n encoding,\n transactionDetails,\n };\n}\n\nexport async function loadBlock(rpc: Rpc, { slot, ...config }: ReturnType<typeof normalizeArgs>) {\n const { encoding, transactionDetails } = config;\n\n const block = await rpc\n .getBlock(slot, config as unknown as Parameters<SolanaRpcMethods['getBlock']>[1])\n .send()\n .catch(e => {\n throw e;\n });\n\n if (block === null) {\n return { slot };\n }\n\n const queryResponse = processQueryResponse({ block, encoding, transactionDetails });\n\n return queryResponse;\n}\n\nfunction createBlockBatchLoadFn(rpc: Rpc) {\n const resolveBlockUsingRpc = loadBlock.bind(null, rpc);\n return async (blockQueryArgs: readonly ReturnType<typeof normalizeArgs>[]) => {\n return await Promise.all(blockQueryArgs.map(async args => await resolveBlockUsingRpc(args)));\n };\n}\n\nexport function createBlockLoader(rpc: Rpc) {\n const loader = new DataLoader(createBlockBatchLoadFn(rpc), { cacheKeyFn: fastStableStringify });\n return {\n load: async (args: BlockQueryArgs, info?: GraphQLResolveInfo) => {\n // If a user only requests the block's slot, don't call the RPC or the cache\n if (onlyPresentFieldRequested('slot', info)) {\n return { slot: args.slot };\n }\n return loader.load(normalizeArgs(args));\n },\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { SolanaRpcMethods } from '@solana/rpc-core';\nimport DataLoader from 'dataloader';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport fastStableStringify from 'fast-stable-stringify';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport type { Rpc } from '../context';\nimport { TransactionQueryArgs } from '../schema/transaction';\nimport { onlyPresentFieldRequested } from './common/resolve-info';\n\nfunction normalizeArgs(args: TransactionQueryArgs) {\n const { commitment, encoding, signature } = args;\n return {\n commitment: commitment ?? 'confirmed',\n encoding: encoding ?? 'jsonParsed',\n // Always use 0 to avoid silly errors\n maxSupportedTransactionVersion: 0,\n signature,\n };\n}\n\nfunction refineJsonParsedInstructionData(jsonParsedInstructionData: any) {\n if ('parsed' in jsonParsedInstructionData) {\n const meta = {\n program: jsonParsedInstructionData.program,\n type: jsonParsedInstructionData.parsed.type,\n };\n const programId = jsonParsedInstructionData.programId;\n const data = jsonParsedInstructionData.parsed.info;\n return { data, meta, programId };\n } else {\n return jsonParsedInstructionData;\n }\n}\n\nfunction refineJsonParsedTransactionData(jsonParsedTransactionData: any) {\n const refinedInstructions = jsonParsedTransactionData.message.instructions.map((instruction: unknown) =>\n refineJsonParsedInstructionData(instruction)\n );\n const message = {\n ...jsonParsedTransactionData.message,\n instructions: refinedInstructions,\n };\n return { message, signatures: jsonParsedTransactionData.signatures };\n}\n\nfunction refineJsonParsedTransactionMeta(jsonParsedTransactionMeta: any) {\n const refinedInnerInstructions = jsonParsedTransactionMeta.innerInstructions.map(\n ({ index, instructions }: { index: number; instructions: unknown[] }) => {\n return {\n index,\n instructions: instructions.map((instruction: unknown) => refineJsonParsedInstructionData(instruction)),\n };\n }\n );\n return {\n ...jsonParsedTransactionMeta,\n innerInstructions: refinedInnerInstructions,\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function refineJsonParsedTransaction({ encoding, transaction }: { encoding: string; transaction: any }) {\n const [transactionData, transactionMeta] = Array.isArray(transaction.transaction)\n ? [transaction.transaction[0], transaction.meta]\n : [refineJsonParsedTransactionData(transaction.transaction), refineJsonParsedTransactionMeta(transaction.meta)];\n return {\n data: transactionData,\n encoding,\n meta: transactionMeta,\n slot: transaction.slot,\n version: transaction.version,\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction processQueryResponse({ encoding, transaction }: { encoding: string; transaction: any }) {\n return refineJsonParsedTransaction({ encoding, transaction });\n}\n\nexport async function loadTransaction(rpc: Rpc, { signature, ...config }: ReturnType<typeof normalizeArgs>) {\n const { encoding } = config;\n\n // If the requested encoding is `base58` or `base64`,\n // first fetch the transaction with the requested encoding,\n // then fetch it again with `jsonParsed` encoding.\n // This ensures the response always has the full transaction meta.\n let transaction = await rpc\n .getTransaction(signature, config as unknown as Parameters<SolanaRpcMethods['getTransaction']>[1])\n .send()\n .catch(e => {\n throw e;\n });\n if (transaction === null) {\n return null;\n }\n\n if (encoding !== 'jsonParsed') {\n const transactionJsonParsed = await rpc\n .getTransaction(signature, config as unknown as Parameters<SolanaRpcMethods['getTransaction']>[1])\n .send()\n .catch(e => {\n throw e;\n });\n if (transactionJsonParsed === null) {\n return null;\n }\n transaction = {\n ...transaction,\n meta: transactionJsonParsed.meta,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any;\n }\n\n const queryResponse = processQueryResponse({ encoding, transaction });\n\n return queryResponse;\n}\n\nfunction createTransactionBatchLoadFn(rpc: Rpc) {\n const resolveTransactionUsingRpc = loadTransaction.bind(null, rpc);\n return async (transactionQueryArgs: readonly ReturnType<typeof normalizeArgs>[]) => {\n return await Promise.all(transactionQueryArgs.map(async args => await resolveTransactionUsingRpc(args)));\n };\n}\n\nexport function createTransactionLoader(rpc: Rpc) {\n const loader = new DataLoader(createTransactionBatchLoadFn(rpc), { cacheKeyFn: fastStableStringify });\n return {\n load: async (args: TransactionQueryArgs, info?: GraphQLResolveInfo) => {\n // If a user only requests the transaction's signature, don't call the RPC or the cache\n if (onlyPresentFieldRequested('signature', info)) {\n return { signature: args.signature };\n }\n return loader.load(normalizeArgs(args));\n },\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { SolanaRpcMethods } from '@solana/rpc-core';\nimport DataLoader from 'dataloader';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport fastStableStringify from 'fast-stable-stringify';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport type { Rpc } from '../context';\nimport { ProgramAccountsQueryArgs } from '../schema/program-accounts';\nimport { refineJsonParsedAccountData } from './account';\nimport { onlyPresentFieldRequested } from './common/resolve-info';\n\nfunction normalizeArgs(args: ProgramAccountsQueryArgs) {\n const { commitment, dataSlice, encoding, filters, minContextSlot, programAddress } = args;\n return {\n commitment: commitment ?? 'confirmed',\n dataSlice,\n encoding: encoding ?? 'jsonParsed',\n filters,\n minContextSlot,\n programAddress,\n };\n}\n\nfunction processQueryResponse({ encoding, programAccounts }: { encoding: string; programAccounts: any[] }) {\n return programAccounts.map(programAccount => {\n const [refinedData, responseEncoding] = Array.isArray(programAccount.account.data)\n ? encoding === 'jsonParsed'\n ? [programAccount.account.data[0], 'base64']\n : [programAccount.account.data[0], encoding]\n : [refineJsonParsedAccountData(programAccount.account.data), 'jsonParsed'];\n const pubkey = programAccount.pubkey;\n const responseBase = {\n ...programAccount.account,\n address: pubkey,\n encoding: responseEncoding,\n };\n return typeof refinedData === 'object' && 'meta' in refinedData\n ? {\n ...responseBase,\n data: refinedData.data,\n meta: refinedData.meta,\n }\n : {\n ...responseBase,\n data: refinedData,\n };\n });\n}\n\nexport async function loadProgramAccounts(rpc: Rpc, { programAddress, ...config }: ReturnType<typeof normalizeArgs>) {\n const { encoding } = config;\n\n const programAccounts = await rpc\n .getProgramAccounts(programAddress, config 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 = processQueryResponse({ encoding, programAccounts });\n\n return queryResponse;\n}\n\nfunction createProgramAccountsBatchLoadFn(rpc: Rpc) {\n const resolveProgramAccountsUsingRpc = loadProgramAccounts.bind(null, rpc);\n return async (programAccountsQueryArgs: readonly ReturnType<typeof normalizeArgs>[]) => {\n return await Promise.all(\n programAccountsQueryArgs.map(async args => await resolveProgramAccountsUsingRpc(args))\n );\n };\n}\n\nexport function createProgramAccountsLoader(rpc: Rpc) {\n const loader = new DataLoader(createProgramAccountsBatchLoadFn(rpc), { cacheKeyFn: fastStableStringify });\n return {\n load: async (args: ProgramAccountsQueryArgs, info?: GraphQLResolveInfo) => {\n // If a user only requests the program's address, don't call the RPC or the cache\n if (onlyPresentFieldRequested('programAddress', info)) {\n return { programAddress: args.programAddress };\n }\n return loader.load(normalizeArgs(args));\n },\n };\n}\n","import { GraphQLResolveInfo } from 'graphql';\n\nimport { createAccountLoader } from './loaders/account';\nimport { createBlockLoader } from './loaders/block';\nimport { createProgramAccountsLoader } from './loaders/program-accounts';\nimport { createTransactionLoader } from './loaders/transaction';\nimport { createRpcGraphQL } from './rpc';\nimport { AccountQueryArgs } from './schema/account';\nimport { BlockQueryArgs } from './schema/block';\nimport { ProgramAccountsQueryArgs } from './schema/program-accounts';\nimport { TransactionQueryArgs } from './schema/transaction';\n\nexport type Rpc = Parameters<typeof createRpcGraphQL>[0];\n\ntype LoadFn<TArgs> = (args: TArgs, info?: GraphQLResolveInfo | undefined) => Promise<unknown>;\ntype Loader<TArgs> = { load: LoadFn<TArgs> };\ntype RpcGraphQLLoaders = {\n account: Loader<AccountQueryArgs>;\n block: Loader<BlockQueryArgs>;\n programAccounts: Loader<ProgramAccountsQueryArgs>;\n transaction: Loader<TransactionQueryArgs>;\n};\n\nexport interface RpcGraphQLContext {\n loaders: RpcGraphQLLoaders;\n rpc: Rpc;\n}\n\nexport function createSolanaGraphQLContext(rpc: Rpc): RpcGraphQLContext {\n return {\n loaders: {\n account: createAccountLoader(rpc),\n block: createBlockLoader(rpc),\n programAccounts: createProgramAccountsLoader(rpc),\n transaction: createTransactionLoader(rpc),\n },\n rpc,\n };\n}\n","import { makeExecutableSchema } from '@graphql-tools/schema';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { AccountQueryArgs, accountResolvers, accountTypeDefs } from './account';\nimport { BlockQueryArgs, blockResolvers, blockTypeDefs } from './block';\nimport { inputResolvers, inputTypeDefs } from './common/inputs';\nimport { scalarResolvers, scalarTypeDefs } from './common/scalars';\nimport { commonResolvers, commonTypeDefs } from './common/types';\nimport { instructionResolvers, instructionTypeDefs } from './instruction';\nimport { ProgramAccountsQueryArgs } from './program-accounts';\nimport { TransactionQueryArgs, transactionResolvers, transactionTypeDefs } from './transaction';\n\n// prettier-ignore\nconst schemaTypeDefs = /* GraphQL */ `\n type Query {\n account(\n address: String!\n commitment: Commitment\n dataSlice: DataSlice\n encoding: AccountEncoding\n minContextSlot: BigInt\n ): Account\n block(\n slot: BigInt!\n commitment: Commitment\n encoding: TransactionEncoding\n transactionDetails: BlockTransactionDetails\n ): Block\n programAccounts(\n programAddress: String!\n commitment: Commitment\n dataSlice: DataSlice\n encoding: AccountEncoding\n filters: [ProgramAccountsFilter]\n minContextSlot: BigInt\n ): [Account]\n transaction(\n signature: String!\n commitment: Commitment\n encoding: TransactionEncoding\n ): Transaction\n }\n\n schema {\n query: Query\n }\n`;\n\n// prettier-ignore\nconst schemaResolvers = {\n Query: {\n account(\n _: unknown,\n args: AccountQueryArgs,\n context: RpcGraphQLContext,\n info?: GraphQLResolveInfo\n ) {\n return context.loaders.account.load(args, info);\n },\n block(\n _: unknown,\n args: BlockQueryArgs,\n context: RpcGraphQLContext,\n info?: GraphQLResolveInfo\n ) {\n return context.loaders.block.load(args, info);\n },\n programAccounts(\n _: unknown,\n args: ProgramAccountsQueryArgs,\n context: RpcGraphQLContext,\n info?: GraphQLResolveInfo\n ) {\n return context.loaders.programAccounts.load(args, info);\n },\n transaction(\n _: unknown,\n args: TransactionQueryArgs,\n context: RpcGraphQLContext,\n info?: GraphQLResolveInfo\n ) {\n return context.loaders.transaction.load(args, info);\n },\n },\n};\n\nexport function createSolanaGraphQLSchema() {\n return makeExecutableSchema({\n resolvers: {\n ...accountResolvers,\n ...blockResolvers,\n ...commonResolvers,\n ...inputResolvers,\n ...instructionResolvers,\n ...scalarResolvers,\n ...schemaResolvers,\n ...transactionResolvers,\n },\n typeDefs: [\n accountTypeDefs,\n blockTypeDefs,\n commonTypeDefs,\n inputTypeDefs,\n instructionTypeDefs,\n scalarTypeDefs,\n schemaTypeDefs,\n transactionTypeDefs,\n ],\n });\n}\n","import { Address } from '@solana/addresses';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { AccountQueryArgs } from '../schema/account';\n\nexport const resolveAccount = (fieldName: string) => {\n return (\n parent: { [x: string]: Address },\n args: AccountQueryArgs,\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo | undefined\n ) =>\n parent[fieldName] === null ? null : context.loaders.account.load({ ...args, address: parent[fieldName] }, info);\n};\n","/* eslint-disable sort-keys-fix/sort-keys-fix */\nimport { Address } from '@solana/addresses';\nimport { DataSlice, Slot } from '@solana/rpc-core/dist/types/rpc-methods/common';\n\nimport { resolveAccount } from '../resolvers/account';\n\nexport type AccountQueryArgs = {\n address: Address;\n dataSlice?: DataSlice;\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n commitment?: 'processed' | 'confirmed' | 'finalized';\n minContextSlot?: Slot;\n};\n\nexport const accountTypeDefs = /* GraphQL */ `\n # Account interface\n interface Account {\n address: Address\n encoding: AccountEncoding\n executable: Boolean\n lamports: BigInt\n owner: Account\n rentEpoch: BigInt\n }\n\n # An account with base58 encoded data\n type AccountBase58 implements Account {\n address: Address\n data: Base58EncodedBytes\n encoding: AccountEncoding\n executable: Boolean\n lamports: BigInt\n owner: Account\n rentEpoch: BigInt\n }\n\n # An account with base64 encoded data\n type AccountBase64 implements Account {\n address: Address\n data: Base64EncodedBytes\n encoding: AccountEncoding\n executable: Boolean\n lamports: BigInt\n owner: Account\n rentEpoch: BigInt\n }\n\n # An account with base64+zstd encoded data\n type AccountBase64Zstd implements Account {\n address: Address\n data: Base64ZstdEncodedBytes\n encoding: AccountEncoding\n executable: Boolean\n lamports: BigInt\n owner: Account\n rentEpoch: BigInt\n }\n\n # Interface for JSON-parsed meta\n type JsonParsedAccountMeta {\n program: String\n space: BigInt\n type: String\n }\n interface AccountJsonParsed {\n meta: JsonParsedAccountMeta\n }\n\n # A nonce account\n type NonceAccountFeeCalculator {\n lamportsPerSignature: String\n }\n type NonceAccountData {\n authority: Account\n blockhash: String\n feeCalculator: NonceAccountFeeCalculator\n }\n type NonceAccount implements Account & AccountJsonParsed {\n address: Address\n data: NonceAccountData\n encoding: AccountEncoding\n executable: Boolean\n lamports: BigInt\n meta: JsonParsedAccountMeta\n owner: Account\n rentEpoch: BigInt\n }\n\n # A lookup table account\n type LookupTableAccountData {\n addresses: [String]\n authority: Account\n deactivationSlot: String\n lastExtendedSlot: String\n lastExtendedSlotStartIndex: Int\n }\n type LookupTableAccount implements Account & AccountJsonParsed {\n address: Address\n data: LookupTableAccountData\n encoding: AccountEncoding\n executable: Boolean\n lamports: BigInt\n meta: JsonParsedAccountMeta\n owner: Account\n rentEpoch: BigInt\n }\n\n # A mint account\n type MintAccountData {\n decimals: Int\n freezeAuthority: Account\n isInitialized: Boolean\n mintAuthority: Account\n supply: String\n }\n type MintAccount implements Account & AccountJsonParsed {\n address: Address\n data: MintAccountData\n encoding: AccountEncoding\n executable: Boolean\n lamports: BigInt\n meta: JsonParsedAccountMeta\n owner: Account\n rentEpoch: BigInt\n }\n\n # A token account\n type TokenAccountData {\n isNative: Boolean\n mint: Account\n owner: Account\n state: String\n tokenAmount: TokenAmount\n }\n type TokenAccount implements Account & AccountJsonParsed {\n address: Address\n data: TokenAccountData\n encoding: AccountEncoding\n executable: Boolean\n lamports: BigInt\n meta: JsonParsedAccountMeta\n owner: Account\n rentEpoch: BigInt\n }\n\n # A stake account\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 type StakeAccountData {\n meta: StakeAccountDataMeta\n stake: StakeAccountDataStake\n }\n type StakeAccount implements Account & AccountJsonParsed {\n address: Address\n data: StakeAccountData\n encoding: AccountEncoding\n executable: Boolean\n lamports: BigInt\n meta: JsonParsedAccountMeta\n owner: Account\n rentEpoch: BigInt\n }\n\n # A vote account\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 type VoteAccountData {\n authorizedVoters: [VoteAccountDataAuthorizedVoter]\n authorizedWithdrawer: Account\n commission: Int\n epochCredits: [VoteAccountDataEpochCredit]\n lastTimestamp: VoteAccountDataLastTimestamp\n node: Account\n priorVoters: [String]\n rootSlot: BigInt\n votes: [VoteAccountDataVote]\n }\n type VoteAccount implements Account & AccountJsonParsed {\n address: Address\n data: VoteAccountData\n encoding: AccountEncoding\n executable: Boolean\n lamports: BigInt\n meta: JsonParsedAccountMeta\n owner: Account\n rentEpoch: BigInt\n }\n`;\n\nexport const accountResolvers = {\n Account: {\n __resolveType(account: { encoding: string; meta: { program: string; type: string } }) {\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.meta.program === 'nonce') {\n return 'NonceAccount';\n }\n if (account.meta.type === 'mint' && account.meta.program === 'spl-token') {\n return 'MintAccount';\n }\n if (account.meta.type === 'account' && account.meta.program === 'spl-token') {\n return 'TokenAccount';\n }\n if (account.meta.program === 'stake') {\n return 'StakeAccount';\n }\n if (account.meta.type === 'vote' && account.meta.program === 'vote') {\n return 'VoteAccount';\n }\n if (account.meta.type === 'lookupTable' && account.meta.program === 'address-lookup-table') {\n return 'LookupTableAccount';\n }\n }\n return 'AccountBase64';\n },\n },\n AccountBase58: {\n owner: resolveAccount('owner'),\n },\n AccountBase64: {\n owner: resolveAccount('owner'),\n },\n AccountBase64Zstd: {\n owner: resolveAccount('owner'),\n },\n NonceAccountData: {\n authority: resolveAccount('authority'),\n },\n NonceAccount: {\n owner: resolveAccount('owner'),\n },\n LookupTableAccountData: {\n authority: resolveAccount('authority'),\n },\n LookupTableAccount: {\n owner: resolveAccount('owner'),\n },\n MintAccountData: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mintAuthority: resolveAccount('mintAuthority'),\n },\n MintAccount: {\n owner: resolveAccount('owner'),\n },\n TokenAccountData: {\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n TokenAccount: {\n owner: resolveAccount('owner'),\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 StakeAccount: {\n owner: resolveAccount('owner'),\n },\n VoteAccountDataAuthorizedVoter: {\n authorizedVoter: resolveAccount('authorizedVoter'),\n },\n VoteAccountData: {\n authorizedWithdrawer: resolveAccount('authorizedWithdrawer'),\n node: resolveAccount('nodePubkey'),\n },\n VoteAccount: {\n owner: resolveAccount('owner'),\n },\n};\n","import { Slot } from '@solana/rpc-core/dist/types/rpc-methods/common';\nimport { Commitment } from '@solana/rpc-types';\n\nexport type BlockQueryArgs = {\n slot: Slot;\n commitment?: Commitment;\n encoding?: 'base58' | 'base64' | 'jsonParsed';\n transactionDetails?: 'accounts' | 'full' | 'none' | 'signatures';\n};\n\nexport const blockTypeDefs = /* GraphQL */ `\n type TransactionMetaForAccounts {\n err: String\n fee: BigInt\n postBalances: [BigInt]\n postTokenBalances: [TokenBalance]\n preBalances: [BigInt]\n preTokenBalances: [TokenBalance]\n status: TransactionStatus\n }\n\n type TransactionDataForAccounts {\n accountKeys: [Address]\n signatures: [String]\n }\n\n type BlockTransactionAccounts {\n meta: TransactionMetaForAccounts\n data: TransactionDataForAccounts\n version: String\n }\n\n # Block interface\n interface Block {\n blockhash: String\n blockHeight: BigInt\n blockTime: Int\n parentSlot: BigInt\n previousBlockhash: String\n rewards: [Reward]\n transactionDetails: String\n }\n\n # A block with account transaction details\n type BlockWithAccounts implements Block {\n blockhash: String\n blockHeight: BigInt\n blockTime: Int\n parentSlot: BigInt\n previousBlockhash: String\n rewards: [Reward]\n transactions: [BlockTransactionAccounts]\n transactionDetails: String\n }\n\n # A block with full transaction details\n type BlockWithFull implements Block {\n blockhash: String\n blockHeight: BigInt\n blockTime: Int\n parentSlot: BigInt\n previousBlockhash: String\n rewards: [Reward]\n transactions: [Transaction]\n transactionDetails: String\n }\n\n # A block with none transaction details\n type BlockWithNone implements Block {\n blockhash: String\n blockHeight: BigInt\n blockTime: Int\n parentSlot: BigInt\n previousBlockhash: String\n rewards: [Reward]\n transactionDetails: String\n }\n\n # A block with signature transaction details\n type BlockWithSignatures implements Block {\n blockhash: String\n blockHeight: BigInt\n blockTime: Int\n parentSlot: BigInt\n previousBlockhash: String\n rewards: [Reward]\n signatures: [String]\n transactionDetails: String\n }\n`;\n\nexport const blockResolvers = {\n Block: {\n __resolveType(block: { transactionDetails: string }) {\n switch (block.transactionDetails) {\n case 'accounts':\n return 'BlockWithAccounts';\n case 'none':\n return 'BlockWithNone';\n case 'signatures':\n return 'BlockWithSignatures';\n default:\n return 'BlockWithFull';\n }\n },\n },\n};\n","export const inputTypeDefs = /* GraphQL */ `\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\nexport const inputResolvers = {};\n","import { Kind } from 'graphql';\n\nexport const scalarTypeDefs = /* GraphQL */ `\n scalar Address\n scalar Base58EncodedBytes\n scalar Base64EncodedBytes\n scalar Base64ZstdEncodedBytes\n scalar BigInt\n`;\n\nconst stringScalarAlias = {\n __parseLiteral(ast: { kind: Kind; value: string | number | bigint | boolean }): 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\nexport const scalarResolvers = {\n Address: stringScalarAlias,\n Base58EncodedBytes: stringScalarAlias,\n Base64EncodedBytes: stringScalarAlias,\n Base64ZstdEncodedBytes: stringScalarAlias,\n BigInt: {\n __parseLiteral(ast: { kind: Kind; value: string | number | bigint | boolean }): bigint | null {\n if (ast.kind === Kind.STRING) {\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};\n","import { resolveAccount } from '../../resolvers/account';\n\nexport const commonTypeDefs = /* GraphQL */ `\n enum AccountEncoding {\n BASE_58\n BASE_64\n BASE_64_ZSTD\n PARSED\n }\n\n enum BlockTransactionDetails {\n accounts\n full\n none\n signatures\n }\n\n enum Commitment {\n confirmed\n finalized\n processed\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 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 PARSED\n }\n\n enum TransactionVersion {\n LEGACY\n ZERO\n }\n`;\n\nexport const commonResolvers = {\n AccountEncoding: {\n BASE_58: 'base58',\n BASE_64: 'base64',\n BASE_64_ZSTD: 'base64+zstd',\n PARSED: 'jsonParsed',\n },\n TokenBalance: {\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n TransactionEncoding: {\n BASE_58: 'base58',\n BASE_64: 'base64',\n PARSED: 'jsonParsed',\n },\n TransactionVersion: {\n LEGACY: 'legacy',\n ZERO: 0,\n },\n};\n","/* eslint-disable sort-keys-fix/sort-keys-fix */\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>\n\nimport { resolveAccount } from '../resolvers/account';\n\nexport const instructionTypeDefs = /* GraphQL */ `\n type JsonParsedInstructionMeta {\n program: String\n type: String\n }\n\n # Transaction instruction interface\n interface TransactionInstruction {\n programId: Address\n }\n\n # Generic transaction instruction\n type GenericInstruction implements TransactionInstruction {\n accounts: [Address]\n data: Base64EncodedBytes\n programId: Address\n }\n\n # AddressLookupTable: CreateLookupTable\n type CreateLookupTableInstructionData {\n bumpSeed: BigInt # FIXME:*\n lookupTableAccount: Account\n lookupTableAuthority: Account\n payerAccount: Account\n recentSlot: BigInt\n systemProgram: Account\n }\n type CreateLookupTableInstruction implements TransactionInstruction {\n data: CreateLookupTableInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # AddressLookupTable: ExtendLookupTable\n type ExtendLookupTableInstructionData {\n lookupTableAccount: Account\n lookupTableAuthority: Account\n newAddresses: [Address]\n payerAccount: Account\n systemProgram: Account\n }\n type ExtendLookupTableInstruction implements TransactionInstruction {\n data: ExtendLookupTableInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # AddressLookupTable: FreezeLookupTable\n type FreezeLookupTableInstructionData {\n lookupTableAccount: Account\n lookupTableAuthority: Account\n }\n type FreezeLookupTableInstruction implements TransactionInstruction {\n data: FreezeLookupTableInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # AddressLookupTable: DeactivateLookupTable\n type DeactivateLookupTableInstructionData {\n lookupTableAccount: Account\n lookupTableAuthority: Account\n }\n type DeactivateLookupTableInstruction implements TransactionInstruction {\n data: DeactivateLookupTableInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # AddressLookupTable: CloseLookupTable\n type CloseLookupTableInstructionData {\n lookupTableAccount: Account\n lookupTableAuthority: Account\n recipient: Account\n }\n type CloseLookupTableInstruction implements TransactionInstruction {\n data: CloseLookupTableInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # BpfLoader: Write\n type BpfLoaderWriteInstructionData {\n account: Account\n bytes: Base64EncodedBytes\n offset: BigInt # FIXME:*\n }\n type BpfLoaderWriteInstruction implements TransactionInstruction {\n data: BpfLoaderWriteInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # BpfLoader: Finalize\n type BpfLoaderFinalizeInstructionData {\n account: Account\n }\n type BpfLoaderFinalizeInstruction implements TransactionInstruction {\n data: BpfLoaderFinalizeInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # BpfUpgradeableLoader: InitializeBuffer\n type BpfUpgradeableLoaderInitializeBufferInstructionData {\n account: Account\n }\n type BpfUpgradeableLoaderInitializeBufferInstruction implements TransactionInstruction {\n data: BpfUpgradeableLoaderInitializeBufferInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # BpfUpgradeableLoader: Write\n type BpfUpgradeableLoaderWriteInstructionData {\n account: Account\n authority: Account\n bytes: Base64EncodedBytes\n offset: BigInt # FIXME:*\n }\n type BpfUpgradeableLoaderWriteInstruction implements TransactionInstruction {\n data: BpfUpgradeableLoaderWriteInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # BpfUpgradeableLoader: DeployWithMaxDataLen\n type BpfUpgradeableLoaderDeployWithMaxDataLenInstructionData {\n authority: Account\n bufferAccount: Account\n clockSysvar: Address\n maxDataLen: BigInt\n payerAccount: Account\n programAccount: Account\n programDataAccount: Account\n rentSysvar: Address\n }\n type BpfUpgradeableLoaderDeployWithMaxDataLenInstruction implements TransactionInstruction {\n data: BpfUpgradeableLoaderDeployWithMaxDataLenInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # BpfUpgradeableLoader: Upgrade\n type BpfUpgradeableLoaderUpgradeInstructionData {\n authority: Account\n bufferAccount: Account\n clockSysvar: Address\n programAccount: Account\n programDataAccount: Account\n rentSysvar: Address\n spillAccount: Account\n }\n type BpfUpgradeableLoaderUpgradeInstruction implements TransactionInstruction {\n data: BpfUpgradeableLoaderUpgradeInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # BpfUpgradeableLoader: SetAuthority\n type BpfUpgradeableLoaderSetAuthorityInstructionData {\n account: Account\n authority: Account\n newAuthority: Account\n }\n type BpfUpgradeableLoaderSetAuthorityInstruction implements TransactionInstruction {\n data: BpfUpgradeableLoaderSetAuthorityInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # BpfUpgradeableLoader: SetAuthorityChecked\n type BpfUpgradeableLoaderSetAuthorityCheckedInstructionData {\n account: Account\n authority: Account\n newAuthority: Account\n }\n type BpfUpgradeableLoaderSetAuthorityCheckedInstruction implements TransactionInstruction {\n data: BpfUpgradeableLoaderSetAuthorityCheckedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # BpfUpgradeableLoader: Close\n type BpfUpgradeableLoaderCloseInstructionData {\n account: Account\n authority: Account\n programAccount: Account\n recipient: Account\n }\n type BpfUpgradeableLoaderCloseInstruction implements TransactionInstruction {\n data: BpfUpgradeableLoaderCloseInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # BpfUpgradeableLoader: ExtendProgram\n type BpfUpgradeableLoaderExtendProgramInstructionData {\n additionalBytes: BigInt\n payerAccount: Account\n programAccount: Account\n programDataAccount: Account\n systemProgram: Account\n }\n type BpfUpgradeableLoaderExtendProgramInstruction implements TransactionInstruction {\n data: BpfUpgradeableLoaderExtendProgramInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplAssociatedTokenAccount: Create\n type SplAssociatedTokenCreateInstructionData {\n account: Account\n mint: Address\n source: Account\n systemProgram: Account\n tokenProgram: Account\n wallet: Account\n }\n type SplAssociatedTokenCreateInstruction implements TransactionInstruction {\n data: SplAssociatedTokenCreateInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplAssociatedTokenAccount: CreateIdempotent\n type SplAssociatedTokenCreateIdempotentInstructionData {\n account: Account\n mint: Address\n source: Account\n systemProgram: Account\n tokenProgram: Account\n wallet: Account\n }\n type SplAssociatedTokenCreateIdempotentInstruction implements TransactionInstruction {\n data: SplAssociatedTokenCreateIdempotentInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplAssociatedTokenAccount: RecoverNested\n type SplAssociatedTokenRecoverNestedInstructionData {\n destination: Account\n nestedMint: Account\n nestedOwner: Account\n nestedSource: Account\n ownerMint: Account\n tokenProgram: Account\n wallet: Account\n }\n type SplAssociatedTokenRecoverNestedInstruction implements TransactionInstruction {\n data: SplAssociatedTokenRecoverNestedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplMemo\n type SplMemoInstructionData {\n data: String\n }\n type SplMemoInstruction implements TransactionInstruction {\n data: SplMemoInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: InitializeMint\n type SplTokenInitializeMintInstructionData {\n decimals: BigInt # FIXME:*\n freezeAuthority: Account\n mint: Account\n mintAuthority: Account\n rentSysvar: Address\n }\n type SplTokenInitializeMintInstruction implements TransactionInstruction {\n data: SplTokenInitializeMintInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: InitializeMint2\n type SplTokenInitializeMint2InstructionData {\n decimals: BigInt # FIXME:*\n freezeAuthority: Account\n mint: Account\n mintAuthority: Account\n }\n type SplTokenInitializeMint2Instruction implements TransactionInstruction {\n data: SplTokenInitializeMint2InstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: InitializeAccount\n type SplTokenInitializeAccountInstructionData {\n account: Account\n mint: Account\n owner: Account\n rentSysvar: Address\n }\n type SplTokenInitializeAccountInstruction implements TransactionInstruction {\n data: SplTokenInitializeAccountInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: InitializeAccount2\n type SplTokenInitializeAccount2InstructionData {\n account: Account\n mint: Account\n owner: Account\n rentSysvar: Address\n }\n type SplTokenInitializeAccount2Instruction implements TransactionInstruction {\n data: SplTokenInitializeAccount2InstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: InitializeAccount3\n type SplTokenInitializeAccount3InstructionData {\n account: Account\n mint: Account\n owner: Account\n }\n type SplTokenInitializeAccount3Instruction implements TransactionInstruction {\n data: SplTokenInitializeAccount3InstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: InitializeMultisig\n type SplTokenInitializeMultisigInstructionData {\n m: BigInt # FIXME:*\n multisig: Account\n rentSysvar: Address\n signers: [Address]\n }\n type SplTokenInitializeMultisigInstruction implements TransactionInstruction {\n data: SplTokenInitializeMultisigInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: InitializeMultisig2\n type SplTokenInitializeMultisig2InstructionData {\n m: BigInt # FIXME:*\n multisig: Account\n signers: [Address]\n }\n type SplTokenInitializeMultisig2Instruction implements TransactionInstruction {\n data: SplTokenInitializeMultisig2InstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: Transfer\n type SplTokenTransferInstructionData {\n amount: String\n authority: Account\n destination: Account\n multisigAuthority: Account\n source: Account\n }\n type SplTokenTransferInstruction implements TransactionInstruction {\n data: SplTokenTransferInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: Approve\n type SplTokenApproveInstructionData {\n amount: String\n delegate: Account\n multisigOwner: Account\n owner: Account\n source: Account\n }\n type SplTokenApproveInstruction implements TransactionInstruction {\n data: SplTokenApproveInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: Revoke\n type SplTokenRevokeInstructionData {\n multisigOwner: Account\n owner: Account\n source: Account\n }\n type SplTokenRevokeInstruction implements TransactionInstruction {\n data: SplTokenRevokeInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: SetAuthority\n type SplTokenSetAuthorityInstructionData {\n authority: Account\n authorityType: String\n multisigAuthority: Account\n newAuthority: Account\n }\n type SplTokenSetAuthorityInstruction implements TransactionInstruction {\n data: SplTokenSetAuthorityInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: MintTo\n type SplTokenMintToInstructionData {\n account: Account\n amount: String\n authority: Account\n mint: Account\n mintAuthority: Account\n multisigMintAuthority: Account\n }\n type SplTokenMintToInstruction implements TransactionInstruction {\n data: SplTokenMintToInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: Burn\n type SplTokenBurnInstructionData {\n account: Account\n amount: String\n authority: Account\n mint: Account\n multisigAuthority: Account\n }\n type SplTokenBurnInstruction implements TransactionInstruction {\n data: SplTokenBurnInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: CloseAccount\n type SplTokenCloseAccountInstructionData {\n account: Account\n destination: Account\n multisigOwner: Account\n owner: Account\n }\n type SplTokenCloseAccountInstruction implements TransactionInstruction {\n data: SplTokenCloseAccountInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: FreezeAccount\n type SplTokenFreezeAccountInstructionData {\n account: Account\n freezeAuthority: Account\n mint: Account\n multisigFreezeAuthority: Account\n }\n type SplTokenFreezeAccountInstruction implements TransactionInstruction {\n data: SplTokenFreezeAccountInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: ThawAccount\n type SplTokenThawAccountInstructionData {\n account: Account\n freezeAuthority: Account\n mint: Account\n multisigFreezeAuthority: Account\n }\n type SplTokenThawAccountInstruction implements TransactionInstruction {\n data: SplTokenThawAccountInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: TransferChecked\n type SplTokenTransferCheckedInstructionData {\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 type SplTokenTransferCheckedInstruction implements TransactionInstruction {\n data: SplTokenTransferCheckedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: ApproveChecked\n type SplTokenApproveCheckedInstructionData {\n delegate: Account\n mint: Account\n multisigOwner: Account\n owner: Account\n source: Account\n tokenAmount: String\n }\n type SplTokenApproveCheckedInstruction implements TransactionInstruction {\n data: SplTokenApproveCheckedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: MintToChecked\n type SplTokenMintToCheckedInstructionData {\n account: Account\n authority: Account\n mint: Account\n mintAuthority: Account\n multisigMintAuthority: Account\n tokenAmount: String\n }\n type SplTokenMintToCheckedInstruction implements TransactionInstruction {\n data: SplTokenMintToCheckedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: BurnChecked\n type SplTokenBurnCheckedInstructionData {\n account: Account\n authority: Account\n mint: Account\n multisigAuthority: Account\n tokenAmount: String\n }\n type SplTokenBurnCheckedInstruction implements TransactionInstruction {\n data: SplTokenBurnCheckedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: SyncNative\n type SplTokenSyncNativeInstructionData {\n account: Account\n }\n type SplTokenSyncNativeInstruction implements TransactionInstruction {\n data: SplTokenSyncNativeInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: GetAccountDataSize\n type SplTokenGetAccountDataSizeInstructionData {\n extensionTypes: [String]\n mint: Account\n }\n type SplTokenGetAccountDataSizeInstruction implements TransactionInstruction {\n data: SplTokenGetAccountDataSizeInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: InitializeImmutableOwner\n type SplTokenInitializeImmutableOwnerInstructionData {\n account: Account\n }\n type SplTokenInitializeImmutableOwnerInstruction implements TransactionInstruction {\n data: SplTokenInitializeImmutableOwnerInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: AmountToUiAmount\n type SplTokenAmountToUiAmountInstructionData {\n amount: String\n mint: Account\n }\n type SplTokenAmountToUiAmountInstruction implements TransactionInstruction {\n data: SplTokenAmountToUiAmountInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: UiAmountToAmount\n type SplTokenUiAmountToAmountInstructionData {\n mint: Account\n uiAmount: String\n }\n type SplTokenUiAmountToAmountInstruction implements TransactionInstruction {\n data: SplTokenUiAmountToAmountInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # SplToken: InitializeMintCloseAuthority\n type SplTokenInitializeMintCloseAuthorityInstructionData {\n mint: Account\n newAuthority: Account\n }\n type SplTokenInitializeMintCloseAuthorityInstruction implements TransactionInstruction {\n data: SplTokenInitializeMintCloseAuthorityInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\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 # Stake: Initialize\n type StakeInitializeInstructionDataAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeInitializeInstructionData {\n authorized: StakeInitializeInstructionDataAuthorized\n lockup: Lockup\n rentSysvar: Address\n stakeAccount: Account\n }\n type StakeInitializeInstruction implements TransactionInstruction {\n data: StakeInitializeInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Stake: Authorize\n type StakeAuthorizeInstructionData {\n authority: Account\n authorityType: String\n clockSysvar: Address\n custodian: Account\n newAuthority: Account\n stakeAccount: Account\n }\n type StakeAuthorizeInstruction implements TransactionInstruction {\n data: StakeAuthorizeInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Stake: DelegateStake\n type StakeDelegateStakeInstructionData {\n clockSysvar: Address\n stakeAccount: Account\n stakeAuthority: Account\n stakeConfigAccount: Account\n stakeHistorySysvar: Address\n voteAccount: Account\n }\n type StakeDelegateStakeInstruction implements TransactionInstruction {\n data: StakeDelegateStakeInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Stake: Split\n type StakeSplitInstructionData {\n lamports: BigInt\n newSplitAccount: Account\n stakeAccount: Account\n stakeAuthority: Account\n }\n type StakeSplitInstruction implements TransactionInstruction {\n data: StakeSplitInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Stake: Withdraw\n type StakeWithdrawInstructionData {\n clockSysvar: Address\n destination: Account\n lamports: BigInt\n stakeAccount: Account\n withdrawAuthority: Account\n }\n type StakeWithdrawInstruction implements TransactionInstruction {\n data: StakeWithdrawInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Stake: Deactivate\n type StakeDeactivateInstructionData {\n clockSysvar: Address\n stakeAccount: Account\n stakeAuthority: Account\n }\n type StakeDeactivateInstruction implements TransactionInstruction {\n data: StakeDeactivateInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Stake: SetLockup\n type StakeSetLockupInstructionData {\n custodian: Account\n lockup: Lockup\n stakeAccount: Account\n }\n type StakeSetLockupInstruction implements TransactionInstruction {\n data: StakeSetLockupInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Stake: Merge\n type StakeMergeInstructionData {\n clockSysvar: Address\n destination: Account\n source: Account\n stakeAuthority: Account\n stakeHistorySysvar: Address\n }\n type StakeMergeInstruction implements TransactionInstruction {\n data: StakeMergeInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Stake: AuthorizeWithSeed\n type StakeAuthorizeWithSeedInstructionData {\n authorityBase: Account\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Address\n custodian: Account\n newAuthorized: Account\n stakeAccount: Account\n }\n type StakeAuthorizeWithSeedInstruction implements TransactionInstruction {\n data: StakeAuthorizeWithSeedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Stake: InitializeChecked\n type StakeInitializeCheckedInstructionDataAuthorized {\n rentSysvar: Address\n stakeAccount: Account\n staker: Account\n withdrawer: Account\n }\n type StakeInitializeCheckedInstruction implements TransactionInstruction {\n data: StakeInitializeCheckedInstructionDataAuthorized\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Stake: AuthorizeChecked\n type StakeAuthorizeCheckedInstructionData {\n authority: Account\n authorityType: String\n clockSysvar: Address\n custodian: Account\n newAuthority: Account\n stakeAccount: Account\n }\n type StakeAuthorizeCheckedInstruction implements TransactionInstruction {\n data: StakeAuthorizeCheckedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Stake: AuthorizeCheckedWithSeed\n type StakeAuthorizeCheckedWithSeedInstructionData {\n authorityBase: Account\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Address\n custodian: Account\n newAuthorized: Account\n stakeAccount: Account\n }\n type StakeAuthorizeCheckedWithSeedInstruction implements TransactionInstruction {\n data: StakeAuthorizeCheckedWithSeedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Stake: SetLockupChecked\n type StakeSetLockupCheckedInstructionData {\n custodian: Account\n lockup: Lockup\n stakeAccount: Account\n }\n type StakeSetLockupCheckedInstruction implements TransactionInstruction {\n data: StakeSetLockupCheckedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Stake: DeactivateDelinquent\n type StakeDeactivateDelinquentInstructionData {\n referenceVoteAccount: Account\n stakeAccount: Account\n voteAccount: Account\n }\n type StakeDeactivateDelinquentInstruction implements TransactionInstruction {\n data: StakeDeactivateDelinquentInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Stake: Redelegate\n type StakeRedelegateInstructionData {\n newStakeAccount: Account\n stakeAccount: Account\n stakeAuthority: Account\n stakeConfigAccount: Account\n voteAccount: Account\n }\n type StakeRedelegateInstruction implements TransactionInstruction {\n data: StakeRedelegateInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # System: CreateAccount\n type CreateAccountInstructionData {\n lamports: BigInt\n newAccount: Account\n owner: Account\n source: Account\n space: BigInt\n }\n type CreateAccountInstruction implements TransactionInstruction {\n data: CreateAccountInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # System: Assign\n type AssignInstructionData {\n account: Account\n owner: Account\n }\n type AssignInstruction implements TransactionInstruction {\n data: AssignInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # System: Transfer\n type TransferInstructionData {\n destination: Account\n lamports: BigInt\n source: Account\n }\n type TransferInstruction implements TransactionInstruction {\n data: TransferInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # System: CreateAccountWithSeed\n type CreateAccountWithSeedInstructionData {\n base: Account\n lamports: BigInt\n owner: Account\n seed: String\n space: BigInt\n }\n type CreateAccountWithSeedInstruction implements TransactionInstruction {\n data: CreateAccountWithSeedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # System: AdvanceNonceAccount\n type AdvanceNonceAccountInstructionData {\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Address\n }\n type AdvanceNonceAccountInstruction implements TransactionInstruction {\n data: AdvanceNonceAccountInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # System: WithdrawNonceAccount\n type WithdrawNonceAccountInstructionData {\n destination: Account\n lamports: BigInt\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Address\n rentSysvar: Address\n }\n type WithdrawNonceAccountInstruction implements TransactionInstruction {\n data: WithdrawNonceAccountInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # System: InitializeNonceAccount\n type InitializeNonceAccountInstructionData {\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Address\n rentSysvar: Address\n }\n type InitializeNonceAccountInstruction implements TransactionInstruction {\n data: InitializeNonceAccountInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # System: AuthorizeNonceAccount\n type AuthorizeNonceAccountInstructionData {\n newAuthorized: Account\n nonceAccount: Account\n nonceAuthority: Account\n }\n type AuthorizeNonceAccountInstruction implements TransactionInstruction {\n data: AuthorizeNonceAccountInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # System: UpgradeNonceAccount\n type UpgradeNonceAccountInstructionData {\n nonceAccount: Account\n nonceAuthority: Account\n }\n type UpgradeNonceAccountInstruction implements TransactionInstruction {\n data: UpgradeNonceAccountInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # System: Allocate\n type AllocateInstructionData {\n account: Account\n space: BigInt\n }\n type AllocateInstruction implements TransactionInstruction {\n data: AllocateInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # System: AllocateWithSeed\n type AllocateWithSeedInstructionData {\n account: Account\n base: Address\n owner: Account\n seed: String\n space: BigInt\n }\n type AllocateWithSeedInstruction implements TransactionInstruction {\n data: AllocateWithSeedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # System: AssignWithSeed\n type AssignWithSeedInstructionData {\n account: Account\n base: Address\n owner: Account\n seed: String\n }\n type AssignWithSeedInstruction implements TransactionInstruction {\n data: AssignWithSeedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # System: TransferWithSeed\n type TransferWithSeedInstructionData {\n destination: Account\n lamports: BigInt\n source: Account\n sourceBase: Address\n sourceOwner: Account\n sourceSeed: String\n }\n type TransferWithSeedInstruction implements TransactionInstruction {\n data: TransferWithSeedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Vote: InitializeAccount\n type VoteInitializeAccountInstructionData {\n authorizedVoter: Account\n authorizedWithdrawer: Account\n clockSysvar: Address\n commission: BigInt # FIXME:*\n node: Account\n rentSysvar: Address\n voteAccount: Account\n }\n type VoteInitializeAccountInstruction implements TransactionInstruction {\n data: VoteInitializeAccountInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Vote: Authorize\n type VoteAuthorizeInstructionData {\n authority: Account\n authorityType: String\n clockSysvar: Address\n newAuthority: Account\n voteAccount: Account\n }\n type VoteAuthorizeInstruction implements TransactionInstruction {\n data: VoteAuthorizeInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Vote: AuthorizeWithSeed\n type VoteAuthorizeWithSeedInstructionData {\n authorityBaseKey: Address\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Address\n newAuthority: Account\n voteAccount: Account\n }\n type VoteAuthorizeWithSeedInstruction implements TransactionInstruction {\n data: VoteAuthorizeWithSeedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Vote: AuthorizeCheckedWithSeed\n type VoteAuthorizeCheckedWithSeedInstructionData {\n authorityBaseKey: Address\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Address\n newAuthority: Account\n voteAccount: Account\n }\n type VoteAuthorizeCheckedWithSeedInstruction implements TransactionInstruction {\n data: VoteAuthorizeCheckedWithSeedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n type Vote {\n hash: String\n slots: [BigInt]\n timestamp: BigInt\n }\n\n # Vote: Vote\n type VoteVoteInstructionData {\n clockSysvar: Address\n slotHashesSysvar: Address\n vote: Vote\n voteAccount: Account\n voteAuthority: Account\n }\n type VoteVoteInstruction implements TransactionInstruction {\n data: VoteVoteInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\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 # Vote: UpdateVoteState\n type VoteUpdateVoteStateInstructionData {\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n type VoteUpdateVoteStateInstruction implements TransactionInstruction {\n data: VoteUpdateVoteStateInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Vote: UpdateVoteStateSwitch\n type VoteUpdateVoteStateSwitchInstructionData {\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n type VoteUpdateVoteStateSwitchInstruction implements TransactionInstruction {\n data: VoteUpdateVoteStateSwitchInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Vote: CompactUpdateVoteState\n type VoteCompactUpdateVoteStateInstructionData {\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n type VoteCompactUpdateVoteStateInstruction implements TransactionInstruction {\n data: VoteCompactUpdateVoteStateInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Vote: CompactUpdateVoteStateSwitch\n type VoteCompactUpdateVoteStateSwitchInstructionData {\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n type VoteCompactUpdateVoteStateSwitchInstruction implements TransactionInstruction {\n data: VoteCompactUpdateVoteStateSwitchInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Vote: Withdraw\n type VoteWithdrawInstructionData {\n destination: Account\n lamports: BigInt\n voteAccount: Account\n withdrawAuthority: Account\n }\n type VoteWithdrawInstruction implements TransactionInstruction {\n data: VoteWithdrawInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Vote: UpdateValidatorIdentity\n type VoteUpdateValidatorIdentityInstructionData {\n newValidatorIdentity: Account\n voteAccount: Account\n withdrawAuthority: Account\n }\n type VoteUpdateValidatorIdentityInstruction implements TransactionInstruction {\n data: VoteUpdateValidatorIdentityInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Vote: UpdateCommission\n type VoteUpdateCommissionInstructionData {\n commission: BigInt # FIXME:*\n voteAccount: Account\n withdrawAuthority: Account\n }\n type VoteUpdateCommissionInstruction implements TransactionInstruction {\n data: VoteUpdateCommissionInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Vote: VoteSwitch\n type VoteVoteSwitchInstructionData {\n clockSysvar: Address\n hash: String\n slotHashesSysvar: Address\n vote: Vote\n voteAccount: Account\n voteAuthority: Account\n }\n type VoteVoteSwitchInstruction implements TransactionInstruction {\n data: VoteVoteSwitchInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n\n # Vote: AuthorizeChecked\n type VoteAuthorizeCheckedInstructionData {\n authority: Account\n authorityType: String\n clockSysvar: Address\n newAuthority: Account\n voteAccount: Account\n }\n type VoteAuthorizeCheckedInstruction implements TransactionInstruction {\n data: VoteAuthorizeCheckedInstructionData\n meta: JsonParsedInstructionMeta\n programId: Address\n }\n`;\n\nexport const instructionResolvers = {\n TransactionInstruction: {\n __resolveType(instruction: { meta: { program: string; type: string } }) {\n if (instruction.meta) {\n if (instruction.meta.program === 'address-lookup-table') {\n if (instruction.meta.type === 'createLookupTable') {\n return 'CreateLookupTableInstruction';\n }\n if (instruction.meta.type === 'freezeLookupTable') {\n return 'FreezeLookupTableInstruction';\n }\n if (instruction.meta.type === 'extendLookupTable') {\n return 'ExtendLookupTableInstruction';\n }\n if (instruction.meta.type === 'deactivateLookupTable') {\n return 'DeactivateLookupTableInstruction';\n }\n if (instruction.meta.type === 'closeLookupTable') {\n return 'CloseLookupTableInstruction';\n }\n }\n if (instruction.meta.program === 'bpf-loader') {\n if (instruction.meta.type === 'write') {\n return 'BpfLoaderWriteInstruction';\n }\n if (instruction.meta.type === 'finalize') {\n return 'BpfLoaderFinalizeInstruction';\n }\n }\n if (instruction.meta.program === 'bpf-upgradeable-loader') {\n if (instruction.meta.type === 'initializeBuffer') {\n return 'BpfUpgradeableLoaderInitializeBufferInstruction';\n }\n if (instruction.meta.type === 'write') {\n return 'BpfUpgradeableLoaderWriteInstruction';\n }\n if (instruction.meta.type === 'deployWithMaxDataLen') {\n return 'BpfUpgradeableLoaderDeployWithMaxDataLenInstruction';\n }\n if (instruction.meta.type === 'upgrade') {\n return 'BpfUpgradeableLoaderUpgradeInstruction';\n }\n if (instruction.meta.type === 'setAuthority') {\n return 'BpfUpgradeableLoaderSetAuthorityInstruction';\n }\n if (instruction.meta.type === 'setAuthorityChecked') {\n return 'BpfUpgradeableLoaderSetAuthorityCheckedInstruction';\n }\n if (instruction.meta.type === 'close') {\n return 'BpfUpgradeableLoaderCloseInstruction';\n }\n if (instruction.meta.type === 'extendProgram') {\n return 'BpfUpgradeableLoaderExtendProgramInstruction';\n }\n }\n if (instruction.meta.program === 'spl-associated-token-account') {\n if (instruction.meta.type === 'create') {\n return 'SplAssociatedTokenCreateInstruction';\n }\n if (instruction.meta.type === 'createIdempotent') {\n return 'SplAssociatedTokenCreateIdempotentInstruction';\n }\n if (instruction.meta.type === 'recoverNested') {\n return 'SplAssociatedTokenRecoverNestedInstruction';\n }\n }\n if (instruction.meta.program === 'spl-memo') {\n return 'SplMemoInstruction';\n }\n if (instruction.meta.program === 'spl-token') {\n if (instruction.meta.type === 'initializeMint') {\n return 'SplTokenInitializeMintInstruction';\n }\n if (instruction.meta.type === 'initializeMint2') {\n return 'SplTokenInitializeMint2Instruction';\n }\n if (instruction.meta.type === 'initializeAccount') {\n return 'SplTokenInitializeAccountInstruction';\n }\n if (instruction.meta.type === 'initializeAccount2') {\n return 'SplTokenInitializeAccount2Instruction';\n }\n if (instruction.meta.type === 'initializeAccount3') {\n return 'SplTokenInitializeAccount3Instruction';\n }\n if (instruction.meta.type === 'initializeMultisig') {\n return 'SplTokenInitializeMultisigInstruction';\n }\n if (instruction.meta.type === 'initializeMultisig2') {\n return 'SplTokenInitializeMultisig2Instruction';\n }\n if (instruction.meta.type === 'transfer') {\n return 'SplTokenTransferInstruction';\n }\n if (instruction.meta.type === 'approve') {\n return 'SplTokenApproveInstruction';\n }\n if (instruction.meta.type === 'revoke') {\n return 'SplTokenRevokeInstruction';\n }\n if (instruction.meta.type === 'setAuthority') {\n return 'SplTokenSetAuthorityInstruction';\n }\n if (instruction.meta.type === 'mintTo') {\n return 'SplTokenMintToInstruction';\n }\n if (instruction.meta.type === 'burn') {\n return 'SplTokenBurnInstruction';\n }\n if (instruction.meta.type === 'closeAccount') {\n return 'SplTokenCloseAccountInstruction';\n }\n if (instruction.meta.type === 'freezeAccount') {\n return 'SplTokenFreezeAccountInstruction';\n }\n if (instruction.meta.type === 'thawAccount') {\n return 'SplTokenThawAccountInstruction';\n }\n if (instruction.meta.type === 'transferChecked') {\n return 'SplTokenTransferCheckedInstruction';\n }\n if (instruction.meta.type === 'approveChecked') {\n return 'SplTokenApproveCheckedInstruction';\n }\n if (instruction.meta.type === 'mintToChecked') {\n return 'SplTokenMintToCheckedInstruction';\n }\n if (instruction.meta.type === 'burnChecked') {\n return 'SplTokenBurnCheckedInstruction';\n }\n if (instruction.meta.type === 'syncNative') {\n return 'SplTokenSyncNativeInstruction';\n }\n if (instruction.meta.type === 'getAccountDataSize') {\n return 'SplTokenGetAccountDataSizeInstruction';\n }\n if (instruction.meta.type === 'initializeImmutableOwner') {\n return 'SplTokenInitializeImmutableOwnerInstruction';\n }\n if (instruction.meta.type === 'amountToUiAmount') {\n return 'SplTokenAmountToUiAmountInstruction';\n }\n if (instruction.meta.type === 'uiAmountToAmount') {\n return 'SplTokenUiAmountToAmountInstruction';\n }\n if (instruction.meta.type === 'initializeMintCloseAuthority') {\n return 'SplTokenInitializeMintCloseAuthorityInstruction';\n }\n }\n if (instruction.meta.program === 'stake') {\n if (instruction.meta.type === 'initialize') {\n return 'StakeInitializeInstruction';\n }\n if (instruction.meta.type === 'authorize') {\n return 'StakeAuthorizeInstruction';\n }\n if (instruction.meta.type === 'delegate') {\n return 'StakeDelegateStakeInstruction';\n }\n if (instruction.meta.type === 'split') {\n return 'StakeSplitInstruction';\n }\n if (instruction.meta.type === 'withdraw') {\n return 'StakeWithdrawInstruction';\n }\n if (instruction.meta.type === 'deactivate') {\n return 'StakeDeactivateInstruction';\n }\n if (instruction.meta.type === 'setLockup') {\n return 'StakeSetLockupInstruction';\n }\n if (instruction.meta.type === 'merge') {\n return 'StakeMergeInstruction';\n }\n if (instruction.meta.type === 'authorizeWithSeed') {\n return 'StakeAuthorizeWithSeedInstruction';\n }\n if (instruction.meta.type === 'initializeChecked') {\n return 'StakeInitializeCheckedInstruction';\n }\n if (instruction.meta.type === 'authorizeChecked') {\n return 'StakeAuthorizeCheckedInstruction';\n }\n if (instruction.meta.type === 'authorizeCheckedWithSeed') {\n return 'StakeAuthorizeCheckedWithSeedInstruction';\n }\n if (instruction.meta.type === 'setLockupChecked') {\n return 'StakeSetLockupCheckedInstruction';\n }\n if (instruction.meta.type === 'deactivateDelinquent') {\n return 'StakeDeactivateDelinquentInstruction';\n }\n if (instruction.meta.type === 'redelegate') {\n return 'StakeRedelegateInstruction';\n }\n }\n if (instruction.meta.program === 'system') {\n if (instruction.meta.type === 'createAccount') {\n return 'CreateAccountInstruction';\n }\n if (instruction.meta.type === 'assign') {\n return 'AssignInstruction';\n }\n if (instruction.meta.type === 'transfer') {\n return 'TransferInstruction';\n }\n if (instruction.meta.type === 'createAccountWithSeed') {\n return 'CreateAccountWithSeedInstruction';\n }\n if (instruction.meta.type === 'advanceNonceAccount') {\n return 'AdvanceNonceAccountInstruction';\n }\n if (instruction.meta.type === 'withdrawNonceAccount') {\n return 'WithdrawNonceAccountInstruction';\n }\n if (instruction.meta.type === 'initializeNonceAccount') {\n return 'InitializeNonceAccountInstruction';\n }\n if (instruction.meta.type === 'authorizeNonceAccount') {\n return 'AuthorizeNonceAccountInstruction';\n }\n if (instruction.meta.type === 'upgradeNonceAccount') {\n return 'UpgradeNonceAccountInstruction';\n }\n if (instruction.meta.type === 'allocate') {\n return 'AllocateInstruction';\n }\n if (instruction.meta.type === 'allocateWithSeed') {\n return 'AllocateWithSeedInstruction';\n }\n if (instruction.meta.type === 'assignWithSeed') {\n return 'AssignWithSeedInstruction';\n }\n if (instruction.meta.type === 'transferWithSeed') {\n return 'TransferWithSeedInstruction';\n }\n }\n if (instruction.meta.program === 'vote') {\n if (instruction.meta.type === 'initialize') {\n return 'VoteInitializeAccountInstruction';\n }\n if (instruction.meta.type === 'authorize') {\n return 'VoteAuthorizeInstruction';\n }\n if (instruction.meta.type === 'authorizeWithSeed') {\n return 'VoteAuthorizeWithSeedInstruction';\n }\n if (instruction.meta.type === 'authorizeCheckedWithSeed') {\n return 'VoteAuthorizeCheckedWithSeedInstruction';\n }\n if (instruction.meta.type === 'vote') {\n return 'VoteVoteInstruction';\n }\n if (instruction.meta.type === 'updatevotestate') {\n return 'VoteUpdateVoteStateInstruction';\n }\n if (instruction.meta.type === 'updatevotestateswitch') {\n return 'VoteUpdateVoteStateSwitchInstruction';\n }\n if (instruction.meta.type === 'compactupdatevotestate') {\n return 'VoteCompactUpdateVoteStateInstruction';\n }\n if (instruction.meta.type === 'compactupdatevotestateswitch') {\n return 'VoteCompactUpdateVoteStateSwitchInstruction';\n }\n if (instruction.meta.type === 'withdraw') {\n return 'VoteWithdrawInstruction';\n }\n if (instruction.meta.type === 'updateValidatorIdentity') {\n return 'VoteUpdateValidatorIdentityInstruction';\n }\n if (instruction.meta.type === 'updateCommission') {\n return 'VoteUpdateCommissionInstruction';\n }\n if (instruction.meta.type === 'voteSwitch') {\n return 'VoteVoteSwitchInstruction';\n }\n if (instruction.meta.type === 'authorizeChecked') {\n return 'VoteAuthorizeCheckedInstruction';\n }\n }\n }\n return 'GenericInstruction';\n },\n },\n CreateLookupTableInstructionData: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n payerAccount: resolveAccount('payerAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n ExtendLookupTableInstructionData: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n payerAccount: resolveAccount('payerAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n FreezeLookupTableInstructionData: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n },\n DeactivateLookupTableInstructionData: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n },\n CloseLookupTableInstructionData: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n recipient: resolveAccount('recipient'),\n },\n BpfLoaderWriteInstructionData: {\n account: resolveAccount('account'),\n },\n BpfLoaderFinalizeInstructionData: {\n account: resolveAccount('account'),\n },\n BpfUpgradeableLoaderInitializeBufferInstructionData: {\n account: resolveAccount('account'),\n },\n BpfUpgradeableLoaderWriteInstructionData: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n },\n BpfUpgradeableLoaderDeployWithMaxDataLenInstructionData: {\n authority: resolveAccount('authority'),\n bufferAccount: resolveAccount('bufferAccount'),\n payerAccount: resolveAccount('payerAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n },\n BpfUpgradeableLoaderUpgradeInstructionData: {\n authority: resolveAccount('authority'),\n bufferAccount: resolveAccount('bufferAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n },\n BpfUpgradeableLoaderSetAuthorityInstructionData: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n BpfUpgradeableLoaderSetAuthorityCheckedInstructionData: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n BpfUpgradeableLoaderCloseInstructionData: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n programAccount: resolveAccount('programAccount'),\n recipient: resolveAccount('recipient'),\n },\n BpfUpgradeableLoaderExtendProgramInstructionData: {\n payerAccount: resolveAccount('payerAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n SplAssociatedTokenCreateInstructionData: {\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 SplAssociatedTokenCreateIdempotentInstructionData: {\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 SplAssociatedTokenRecoverNestedInstructionData: {\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 SplTokenInitializeMintInstructionData: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n },\n SplTokenInitializeMint2InstructionData: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n },\n SplTokenInitializeAccountInstructionData: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeAccount2InstructionData: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeAccount3InstructionData: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeMultisigInstructionData: {\n multisig: resolveAccount('multisig'),\n },\n SplTokenInitializeMultisig2InstructionData: {\n multisig: resolveAccount('multisig'),\n },\n SplTokenTransferInstructionData: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenApproveInstructionData: {\n delegate: resolveAccount('delegate'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenRevokeInstructionData: {\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenSetAuthorityInstructionData: {\n authority: resolveAccount('authority'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n SplTokenMintToInstructionData: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n multisigMintAuthority: resolveAccount('multisigMintAuthority'),\n },\n SplTokenBurnInstructionData: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenCloseAccountInstructionData: {\n account: resolveAccount('account'),\n destination: resolveAccount('destination'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenFreezeAccountInstructionData: {\n account: resolveAccount('account'),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenThawAccountInstructionData: {\n account: resolveAccount('account'),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenTransferCheckedInstructionData: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenApproveCheckedInstructionData: {\n delegate: resolveAccount('delegate'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenMintToCheckedInstructionData: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n multisigMintAuthority: resolveAccount('multisigMintAuthority'),\n },\n SplTokenBurnCheckedInstructionData: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenSyncNativeInstructionData: {\n account: resolveAccount('account'),\n },\n SplTokenGetAccountDataSizeInstructionData: {\n mint: resolveAccount('mint'),\n },\n SplTokenAmountToUiAmountInstructionData: {\n mint: resolveAccount('mint'),\n },\n SplTokenUiAmountToAmountInstructionData: {\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeMintCloseAuthorityInstructionData: {\n mint: resolveAccount('mint'),\n newAuthority: resolveAccount('newAuthority'),\n },\n Lockup: {\n custodian: resolveAccount('custodian'),\n },\n StakeInitializeInstructionDataAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeInitializeInstructionData: {\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeInstructionData: {\n authority: resolveAccount('authority'),\n custodian: resolveAccount('custodian'),\n newAuthority: resolveAccount('newAuthority'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeDelegateStakeInstructionData: {\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeConfigAccount: resolveAccount('stakeConfigAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeSplitInstructionData: {\n newSplitAccount: resolveAccount('newSplitAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeWithdrawInstructionData: {\n destination: resolveAccount('destination'),\n stakeAccount: resolveAccount('stakeAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n StakeDeactivateInstructionData: {\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeSetLockupInstructionData: {\n custodian: resolveAccount('custodian'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeMergeInstructionData: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeAuthorizeWithSeedInstructionData: {\n authorityBase: resolveAccount('authorityBase'),\n authorityOwner: resolveAccount('authorityOwner'),\n custodian: resolveAccount('custodian'),\n newAuthorized: resolveAccount('newAuthorized'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeInitializeCheckedInstructionDataAuthorized: {\n stakeAccount: resolveAccount('stakeAccount'),\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeAuthorizeCheckedInstructionData: {\n authority: resolveAccount('authority'),\n custodian: resolveAccount('custodian'),\n newAuthority: resolveAccount('newAuthority'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeCheckedWithSeedInstructionData: {\n authorityBase: resolveAccount('authorityBase'),\n authorityOwner: resolveAccount('authorityOwner'),\n custodian: resolveAccount('custodian'),\n newAuthorized: resolveAccount('newAuthorized'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeSetLockupCheckedInstructionData: {\n custodian: resolveAccount('custodian'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeDeactivateDelinquentInstructionData: {\n referenceVoteAccount: resolveAccount('referenceVoteAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeRedelegateInstructionData: {\n newStakeAccount: resolveAccount('newStakeAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeConfigAccount: resolveAccount('stakeConfigAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n CreateAccountInstructionData: {\n newAccount: resolveAccount('newAccount'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n AssignInstructionData: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n TransferInstructionData: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n },\n CreateAccountWithSeedInstructionData: {\n base: resolveAccount('base'),\n owner: resolveAccount('owner'),\n seed: resolveAccount('seed'),\n },\n AdvanceNonceAccountInstructionData: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n WithdrawNonceAccountInstructionData: {\n destination: resolveAccount('destination'),\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n InitializeNonceAccountInstructionData: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n AuthorizeNonceAccountInstructionData: {\n newAuthorized: resolveAccount('newAuthorized'),\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n UpgradeNonceAccountInstructionData: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n AllocateInstructionData: {\n account: resolveAccount('account'),\n },\n AllocateWithSeedInstructionData: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n AssignWithSeedInstructionData: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n TransferWithSeedInstructionData: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n sourceOwner: resolveAccount('sourceOwner'),\n },\n VoteInitializeAccountInstructionData: {\n authorizedVoter: resolveAccount('authorizedVoter'),\n authorizedWithdrawer: resolveAccount('authorizedWithdrawer'),\n node: resolveAccount('node'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeInstructionData: {\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeWithSeedInstructionData: {\n authorityOwner: resolveAccount('authorityOwner'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeCheckedWithSeedInstructionData: {\n authorityOwner: resolveAccount('authorityOwner'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteVoteInstructionData: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteUpdateVoteStateInstructionData: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteUpdateVoteStateSwitchInstructionData: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteCompactUpdateVoteStateInstructionData: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteCompactUpdateVoteStateSwitchInstructionData: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteWithdrawInstructionData: {\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteUpdateValidatorIdentityInstructionData: {\n newValidatorIdentity: resolveAccount('newValidatorIdentity'),\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteUpdateCommissionInstructionData: {\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteVoteSwitchInstructionData: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteAuthorizeCheckedInstructionData: {\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n};\n","/* eslint-disable sort-keys-fix/sort-keys-fix */\nimport { Signature } from '@solana/keys';\nimport { Commitment } from '@solana/rpc-types';\n\nexport type TransactionQueryArgs = {\n signature: Signature;\n commitment?: Commitment;\n encoding?: 'base58' | 'base64' | 'jsonParsed';\n};\n\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 # Transaction interface\n interface Transaction {\n blockTime: String\n encoding: TransactionEncoding\n meta: TransactionMeta\n slot: BigInt\n version: String\n }\n\n # A transaction with base58 encoded data\n type TransactionBase58 implements Transaction {\n blockTime: String\n data: Base58EncodedBytes\n encoding: TransactionEncoding\n meta: TransactionMeta\n slot: BigInt\n version: String\n }\n\n # A transaction with base64 encoded data\n type TransactionBase64 implements Transaction {\n blockTime: String\n data: Base64EncodedBytes\n encoding: TransactionEncoding\n meta: TransactionMeta\n slot: BigInt\n version: String\n }\n\n # A transaction with JSON encoded data\n type TransactionDataParsed {\n message: TransactionMessage\n signatures: [String]\n }\n type TransactionParsed implements Transaction {\n blockTime: String\n data: TransactionDataParsed\n encoding: TransactionEncoding\n meta: TransactionMeta\n slot: BigInt\n version: String\n }\n`;\n\nexport const transactionResolvers = {\n Transaction: {\n __resolveType(transaction: { encoding: string }) {\n switch (transaction.encoding) {\n case 'base58':\n return 'TransactionBase58';\n case 'base64':\n return 'TransactionBase64';\n default:\n return 'TransactionParsed';\n }\n },\n },\n};\n"]}
|