@solana/rpc-graphql 2.0.0-experimental.ef2569b → 2.0.0-experimental.f2a2e5b

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.
Files changed (40) hide show
  1. package/dist/index.browser.cjs +360 -125
  2. package/dist/index.browser.cjs.map +1 -1
  3. package/dist/index.browser.js +359 -124
  4. package/dist/index.browser.js.map +1 -1
  5. package/dist/index.native.js +359 -124
  6. package/dist/index.native.js.map +1 -1
  7. package/dist/index.node.cjs +360 -125
  8. package/dist/index.node.cjs.map +1 -1
  9. package/dist/index.node.js +359 -124
  10. package/dist/index.node.js.map +1 -1
  11. package/dist/types/context.d.ts +8 -8
  12. package/dist/types/context.d.ts.map +1 -1
  13. package/dist/types/loaders/account.d.ts +10 -2
  14. package/dist/types/loaders/account.d.ts.map +1 -1
  15. package/dist/types/loaders/block.d.ts +9 -2
  16. package/dist/types/loaders/block.d.ts.map +1 -1
  17. package/dist/types/loaders/common/cache-key-fn.d.ts +2 -0
  18. package/dist/types/loaders/common/cache-key-fn.d.ts.map +1 -0
  19. package/dist/types/loaders/program-accounts.d.ts +13 -3
  20. package/dist/types/loaders/program-accounts.d.ts.map +1 -1
  21. package/dist/types/loaders/transaction.d.ts +8 -2
  22. package/dist/types/loaders/transaction.d.ts.map +1 -1
  23. package/dist/types/loaders/transformers/account.d.ts +2 -2
  24. package/dist/types/loaders/transformers/account.d.ts.map +1 -1
  25. package/dist/types/loaders/transformers/transaction.d.ts.map +1 -1
  26. package/dist/types/resolvers/account.d.ts +2 -2
  27. package/dist/types/resolvers/account.d.ts.map +1 -1
  28. package/dist/types/schema/account.d.ts +45 -54
  29. package/dist/types/schema/account.d.ts.map +1 -1
  30. package/dist/types/schema/block.d.ts +1 -9
  31. package/dist/types/schema/block.d.ts.map +1 -1
  32. package/dist/types/schema/common/types.d.ts +2 -2
  33. package/dist/types/schema/index.d.ts.map +1 -1
  34. package/dist/types/schema/instruction.d.ts +256 -256
  35. package/dist/types/schema/instruction.d.ts.map +1 -1
  36. package/dist/types/schema/transaction.d.ts +1 -8
  37. package/dist/types/schema/transaction.d.ts.map +1 -1
  38. package/package.json +11 -11
  39. package/dist/types/schema/program-accounts.d.ts +0 -12
  40. package/dist/types/schema/program-accounts.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/rpc.ts","../src/loaders/account.ts","../src/loaders/common/resolve-info.ts","../src/loaders/transformers/account.ts","../src/loaders/block.ts","../src/loaders/transformers/transaction.ts","../src/loaders/transformers/block.ts","../src/loaders/program-accounts.ts","../src/loaders/transaction.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"],"mappings":"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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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","sourcesContent":["import type { GetAccountInfoApi, GetBlockApi, GetProgramAccountsApi, GetTransactionApi } from '@solana/rpc-core';\nimport type { Rpc } from '@solana/rpc-transport';\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","import { 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';\nimport { transformLoadedAccount } from './transformers/account';\n\n/* Normalizes RPC optional configs to use GraphQL API defaults */\nfunction normalizeArgs({\n address,\n commitment = 'confirmed',\n dataSlice,\n encoding = 'jsonParsed',\n minContextSlot,\n}: AccountQueryArgs) {\n return { address, commitment, dataSlice, encoding, minContextSlot };\n}\n\n/* Load an account from the RPC, transform it, then return it */\nasync function loadAccount(rpc: Rpc, { address, ...config }: ReturnType<typeof normalizeArgs>) {\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 return account === null ? { address } : transformLoadedAccount({ account, address, encoding: config.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 (onlyPresentFieldRequested('address', info)) {\n // If a user only requests the account's address,\n // don't call the RPC or the cache\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 { Address } from '@solana/addresses';\n\nimport { AccountQueryArgs } from '../../schema/account';\n\nfunction transformParsedAccountData(parsedAccountData: any) {\n const {\n parsed: { info: result, type: accountType },\n program: programName,\n programId,\n } = parsedAccountData;\n // Tells GraphQL which account type has been\n // returned by the RPC.\n result.accountType = accountType;\n result.programId = programId;\n // Tells GraphQL which program the returned\n // account belongs to.\n result.programName = programName;\n return result;\n}\n\nexport function transformLoadedAccount({\n account,\n address,\n encoding,\n}: {\n account: any;\n address: Address;\n encoding: AccountQueryArgs['encoding'];\n}) {\n const [\n // The account's data, either encoded or parsed.\n data,\n // Tells GraphQL which encoding has been returned\n // by the RPC.\n responseEncoding,\n ] = Array.isArray(account.data)\n ? encoding === 'jsonParsed'\n ? // The requested encoding is jsonParsed,\n // but the data could not be parsed.\n // Defaults to base64 encoding.\n [{ data: account.data[0] }, 'base64']\n : // The requested encoding is base58,\n // base64, or base64+zstd.\n [{ data: account.data[0] }, encoding]\n : // The account data was returned as an object,\n // so it was parsed successfully.\n [transformParsedAccountData(account.data), 'jsonParsed'];\n account.address = address;\n account.encoding = responseEncoding;\n account.ownerProgram = account.owner;\n return {\n ...account,\n ...data,\n };\n}\n","import { 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 { transformLoadedBlock } from './transformers/block';\n\n/* Normalizes RPC optional configs to use GraphQL API defaults */\nfunction normalizeArgs({\n commitment = 'confirmed',\n encoding = 'jsonParsed',\n slot,\n transactionDetails = 'full',\n}: BlockQueryArgs) {\n return {\n commitment,\n encoding,\n // Always use 0 to avoid silly errors\n maxSupportedTransactionVersion: 0,\n slot,\n transactionDetails,\n };\n}\n\n/* Load a block from the RPC, transform it, then return it */\nasync function loadBlock(rpc: Rpc, { slot, ...config }: ReturnType<typeof normalizeArgs>) {\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 return block === null\n ? { slot }\n : transformLoadedBlock({ block, encoding: config.encoding, transactionDetails: config.transactionDetails });\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 (onlyPresentFieldRequested('slot', info)) {\n // If a user only requests the block's slot,\n // don't call the RPC or the cache\n return { slot: args.slot };\n }\n return loader.load(normalizeArgs(args));\n },\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nfunction transformParsedInstruction(parsedInstruction: any) {\n if ('parsed' in parsedInstruction) {\n const {\n parsed: { info: data, type: instructionType },\n program: programName,\n programId,\n } = parsedInstruction;\n return { instructionType, programId, programName, ...data };\n } else {\n return parsedInstruction;\n }\n}\n\nfunction transformParsedTransaction(parsedTransaction: any) {\n const transactionData = parsedTransaction.transaction;\n const transactionMeta = parsedTransaction.meta;\n transactionData.message.instructions = transactionData.message.instructions.map(transformParsedInstruction);\n transactionMeta.innerInstructions = transactionMeta.innerInstructions.map((innerInstruction: any) => {\n innerInstruction.instructions = innerInstruction.instructions.map(transformParsedInstruction);\n return innerInstruction;\n });\n return [transactionData, transactionMeta];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function transformLoadedTransaction({ encoding, transaction }: { encoding: string; transaction: any }) {\n const [transactionData, transactionMeta] = Array.isArray(transaction.transaction)\n ? // The requested encoding is base58 or base64.\n [transaction.transaction[0], transaction.meta]\n : // The transaction was either partially parsed or\n // fully JSON-parsed, which will be sorted later.\n transformParsedTransaction(transaction);\n transaction.data = transactionData;\n transaction.encoding = encoding;\n transaction.meta = transactionMeta;\n return transaction;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { transformLoadedTransaction } from './transaction';\n\nexport function transformLoadedBlock({\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 block.transactions = block.transactions.map((transaction: any) => {\n if (transactionDetails === 'accounts') {\n return {\n data: transaction.transaction,\n meta: transaction.meta,\n version: transaction.version,\n };\n } else {\n return transformLoadedTransaction({ encoding, transaction });\n }\n });\n }\n block.encoding = encoding;\n block.transactionDetails = transactionDetails;\n return block;\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 { onlyPresentFieldRequested } from './common/resolve-info';\nimport { transformLoadedAccount } from './transformers/account';\n\n/* Normalizes RPC optional configs to use GraphQL API defaults */\nfunction normalizeArgs({\n commitment = 'confirmed',\n dataSlice,\n encoding = 'jsonParsed',\n filters,\n minContextSlot,\n programAddress,\n}: ProgramAccountsQueryArgs) {\n return { commitment, dataSlice, encoding, filters, minContextSlot, programAddress };\n}\n\n/* Load a program's accounts from the RPC, transform them, then return them */\nasync function loadProgramAccounts(rpc: Rpc, { programAddress, ...config }: ReturnType<typeof normalizeArgs>) {\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 return programAccounts.map(programAccount =>\n transformLoadedAccount({\n account: programAccount.account,\n address: programAccount.pubkey,\n encoding: config.encoding,\n }),\n );\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 (onlyPresentFieldRequested('programAddress', info)) {\n // If a user only requests the program's address,\n // don't call the RPC or the cache\n return { programAddress: args.programAddress };\n }\n return loader.load(normalizeArgs(args));\n },\n };\n}\n","import { 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';\nimport { transformLoadedTransaction } from './transformers/transaction';\n\n/* Normalizes RPC optional configs to use GraphQL API defaults */\nfunction normalizeArgs({ commitment = 'confirmed', encoding = 'jsonParsed', signature }: TransactionQueryArgs) {\n return {\n commitment,\n encoding,\n // Always use 0 to avoid silly errors\n maxSupportedTransactionVersion: 0,\n signature,\n };\n}\n\n/* Load a transaction from the RPC, transform it, then return it */\nasync function loadTransaction(rpc: Rpc, { signature, ...config }: ReturnType<typeof normalizeArgs>) {\n const { encoding } = config;\n\n const 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 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 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.meta = transactionJsonParsed.meta;\n }\n\n return transformLoadedTransaction({ encoding, transaction });\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 (onlyPresentFieldRequested('signature', info)) {\n // If a user only requests the transaction's signature,\n // don't call the RPC or the cache\n return { signature: args.signature };\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 type { DataSlice, Slot } from '@solana/rpc-core';\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 executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n }\n\n # An account with base58 encoded data\n type AccountBase58 implements Account {\n address: Address\n data: Base58EncodedBytes\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n }\n\n # An account with base64 encoded data\n type AccountBase64 implements Account {\n address: Address\n data: Base64EncodedBytes\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\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 executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n }\n\n # A nonce account\n type NonceAccountFeeCalculator {\n lamportsPerSignature: String\n }\n type NonceAccount implements Account {\n address: Address\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n authority: Account\n blockhash: String\n feeCalculator: NonceAccountFeeCalculator\n }\n\n # A lookup table account\n type LookupTableAccount implements Account {\n address: Address\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n addresses: [Address]\n authority: Account\n deactivationSlot: String\n lastExtendedSlot: String\n lastExtendedSlotStartIndex: Int\n }\n\n # A mint account\n type MintAccount implements Account {\n address: Address\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n decimals: Int\n freezeAuthority: Account\n isInitialized: Boolean\n mintAuthority: Account\n supply: String\n }\n\n # A token account\n type TokenAccount implements Account {\n address: Address\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n isNative: Boolean\n mint: Account\n owner: Account\n state: String\n tokenAmount: TokenAmount\n }\n\n # 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 StakeAccount implements Account {\n address: Address\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n meta: StakeAccountDataMeta\n stake: StakeAccountDataStake\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 VoteAccount implements Account {\n address: Address\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n authorizedVoters: [VoteAccountDataAuthorizedVoter]\n authorizedWithdrawer: Account\n commission: Int\n epochCredits: [VoteAccountDataEpochCredit]\n lastTimestamp: VoteAccountDataLastTimestamp\n node: Account\n priorVoters: [Address]\n rootSlot: BigInt\n votes: [VoteAccountDataVote]\n }\n`;\n\nexport const accountResolvers = {\n Account: {\n __resolveType(account: { encoding: string; programName: string; accountType: 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.programName === 'nonce') {\n return 'NonceAccount';\n }\n if (account.accountType === 'mint' && account.programName === 'spl-token') {\n return 'MintAccount';\n }\n if (account.accountType === 'account' && account.programName === 'spl-token') {\n return 'TokenAccount';\n }\n if (account.programName === 'stake') {\n return 'StakeAccount';\n }\n if (account.accountType === 'vote' && account.programName === 'vote') {\n return 'VoteAccount';\n }\n if (account.accountType === 'lookupTable' && account.programName === 'address-lookup-table') {\n return 'LookupTableAccount';\n }\n }\n return 'AccountBase64';\n },\n },\n AccountBase58: {\n ownerProgram: resolveAccount('ownerProgram'),\n },\n AccountBase64: {\n ownerProgram: resolveAccount('ownerProgram'),\n },\n AccountBase64Zstd: {\n ownerProgram: resolveAccount('ownerProgram'),\n },\n NonceAccount: {\n authority: resolveAccount('authority'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n LookupTableAccount: {\n authority: resolveAccount('authority'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n MintAccount: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mintAuthority: resolveAccount('mintAuthority'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n TokenAccount: {\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n StakeAccountDataMetaAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeAccountDataMetaLockup: {\n custodian: resolveAccount('custodian'),\n },\n StakeAccountDataStakeDelegation: {\n voter: resolveAccount('voter'),\n },\n StakeAccount: {\n ownerProgram: resolveAccount('ownerProgram'),\n },\n VoteAccountDataAuthorizedVoter: {\n authorizedVoter: resolveAccount('authorizedVoter'),\n },\n VoteAccount: {\n authorizedWithdrawer: resolveAccount('authorizedWithdrawer'),\n node: resolveAccount('nodePubkey'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n};\n","import type { Slot } from '@solana/rpc-core';\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 # 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 CreateLookupTableInstruction implements TransactionInstruction {\n programId: Address\n bumpSeed: BigInt # FIXME:*\n lookupTableAccount: Account\n lookupTableAuthority: Account\n payerAccount: Account\n recentSlot: BigInt\n systemProgram: Account\n }\n\n # AddressLookupTable: ExtendLookupTable\n type ExtendLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n newAddresses: [Address]\n payerAccount: Account\n systemProgram: Account\n }\n\n # AddressLookupTable: FreezeLookupTable\n type FreezeLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n }\n\n # AddressLookupTable: DeactivateLookupTable\n type DeactivateLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n }\n\n # AddressLookupTable: CloseLookupTable\n type CloseLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n recipient: Account\n }\n\n # BpfLoader: Write\n type BpfLoaderWriteInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n bytes: Base64EncodedBytes\n offset: BigInt # FIXME:*\n }\n\n # BpfLoader: Finalize\n type BpfLoaderFinalizeInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n # BpfUpgradeableLoader: InitializeBuffer\n type BpfUpgradeableLoaderInitializeBufferInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n # BpfUpgradeableLoader: Write\n type BpfUpgradeableLoaderWriteInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n bytes: Base64EncodedBytes\n offset: BigInt # FIXME:*\n }\n\n # BpfUpgradeableLoader: DeployWithMaxDataLen\n type BpfUpgradeableLoaderDeployWithMaxDataLenInstruction implements TransactionInstruction {\n programId: Address\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\n # BpfUpgradeableLoader: Upgrade\n type BpfUpgradeableLoaderUpgradeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n bufferAccount: Account\n clockSysvar: Address\n programAccount: Account\n programDataAccount: Account\n rentSysvar: Address\n spillAccount: Account\n }\n\n # BpfUpgradeableLoader: SetAuthority\n\n type BpfUpgradeableLoaderSetAuthorityInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n newAuthority: Account\n }\n\n # BpfUpgradeableLoader: SetAuthorityChecked\n type BpfUpgradeableLoaderSetAuthorityCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n newAuthority: Account\n }\n\n # BpfUpgradeableLoader: Close\n type BpfUpgradeableLoaderCloseInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n programAccount: Account\n recipient: Account\n }\n\n # BpfUpgradeableLoader: ExtendProgram\n type BpfUpgradeableLoaderExtendProgramInstruction implements TransactionInstruction {\n programId: Address\n additionalBytes: BigInt\n payerAccount: Account\n programAccount: Account\n programDataAccount: Account\n systemProgram: Account\n }\n\n # SplAssociatedTokenAccount: Create\n type SplAssociatedTokenCreateInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Address\n source: Account\n systemProgram: Account\n tokenProgram: Account\n wallet: Account\n }\n\n # SplAssociatedTokenAccount: CreateIdempotent\n type SplAssociatedTokenCreateIdempotentInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Address\n source: Account\n systemProgram: Account\n tokenProgram: Account\n wallet: Account\n }\n\n # SplAssociatedTokenAccount: RecoverNested\n type SplAssociatedTokenRecoverNestedInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n nestedMint: Account\n nestedOwner: Account\n nestedSource: Account\n ownerMint: Account\n tokenProgram: Account\n wallet: Account\n }\n\n # SplMemo\n type SplMemoInstruction implements TransactionInstruction {\n programId: Address\n data: String\n }\n\n # SplToken: InitializeMint\n type SplTokenInitializeMintInstruction implements TransactionInstruction {\n programId: Address\n decimals: BigInt # FIXME:*\n freezeAuthority: Account\n mint: Account\n mintAuthority: Account\n rentSysvar: Address\n }\n\n # SplToken: InitializeMint2\n type SplTokenInitializeMint2Instruction implements TransactionInstruction {\n programId: Address\n decimals: BigInt # FIXME:*\n freezeAuthority: Account\n mint: Account\n mintAuthority: Account\n }\n\n # SplToken: InitializeAccount\n type SplTokenInitializeAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n rentSysvar: Address\n }\n\n # SplToken: InitializeAccount2\n type SplTokenInitializeAccount2Instruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n rentSysvar: Address\n }\n\n # SplToken: InitializeAccount3\n type SplTokenInitializeAccount3Instruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n }\n\n # SplToken: InitializeMultisig\n type SplTokenInitializeMultisigInstruction implements TransactionInstruction {\n programId: Address\n m: BigInt # FIXME:*\n multisig: Account\n rentSysvar: Address\n signers: [Address]\n }\n\n # SplToken: InitializeMultisig2\n type SplTokenInitializeMultisig2Instruction implements TransactionInstruction {\n programId: Address\n m: BigInt # FIXME:*\n multisig: Account\n signers: [Address]\n }\n\n # SplToken: Transfer\n type SplTokenTransferInstruction implements TransactionInstruction {\n programId: Address\n amount: String\n authority: Account\n destination: Account\n multisigAuthority: Account\n source: Account\n }\n\n # SplToken: Approve\n type SplTokenApproveInstruction implements TransactionInstruction {\n programId: Address\n amount: String\n delegate: Account\n multisigOwner: Account\n owner: Account\n source: Account\n }\n\n # SplToken: Revoke\n type SplTokenRevokeInstruction implements TransactionInstruction {\n programId: Address\n multisigOwner: Account\n owner: Account\n source: Account\n }\n\n # SplToken: SetAuthority\n type SplTokenSetAuthorityInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n multisigAuthority: Account\n newAuthority: Account\n }\n\n # SplToken: MintTo\n type SplTokenMintToInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n amount: String\n authority: Account\n mint: Account\n mintAuthority: Account\n multisigMintAuthority: Account\n }\n\n # SplToken: Burn\n type SplTokenBurnInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n amount: String\n authority: Account\n mint: Account\n multisigAuthority: Account\n }\n\n # SplToken: CloseAccount\n type SplTokenCloseAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n destination: Account\n multisigOwner: Account\n owner: Account\n }\n\n # SplToken: FreezeAccount\n type SplTokenFreezeAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n freezeAuthority: Account\n mint: Account\n multisigFreezeAuthority: Account\n }\n\n # SplToken: ThawAccount\n type SplTokenThawAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n freezeAuthority: Account\n mint: Account\n multisigFreezeAuthority: Account\n }\n\n # SplToken: TransferChecked\n type SplTokenTransferCheckedInstruction implements TransactionInstruction {\n programId: Address\n amount: String\n authority: Account\n decimals: BigInt # FIXME:*\n destination: Account\n mint: Account\n multisigAuthority: Account\n source: Account\n tokenAmount: String\n }\n\n # SplToken: ApproveChecked\n type SplTokenApproveCheckedInstruction implements TransactionInstruction {\n programId: Address\n delegate: Account\n mint: Account\n multisigOwner: Account\n owner: Account\n source: Account\n tokenAmount: String\n }\n\n # SplToken: MintToChecked\n type SplTokenMintToCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n mint: Account\n mintAuthority: Account\n multisigMintAuthority: Account\n tokenAmount: String\n }\n\n # SplToken: BurnChecked\n type SplTokenBurnCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n mint: Account\n multisigAuthority: Account\n tokenAmount: String\n }\n\n # SplToken: SyncNative\n type SplTokenSyncNativeInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n # SplToken: GetAccountDataSize\n type SplTokenGetAccountDataSizeInstruction implements TransactionInstruction {\n programId: Address\n extensionTypes: [String]\n mint: Account\n }\n\n # SplToken: InitializeImmutableOwner\n type SplTokenInitializeImmutableOwnerInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n # SplToken: AmountToUiAmount\n type SplTokenAmountToUiAmountInstruction implements TransactionInstruction {\n programId: Address\n amount: String\n mint: Account\n }\n\n # SplToken: UiAmountToAmount\n type SplTokenUiAmountToAmountInstruction implements TransactionInstruction {\n programId: Address\n mint: Account\n uiAmount: String\n }\n\n # SplToken: InitializeMintCloseAuthority\n type SplTokenInitializeMintCloseAuthorityInstruction implements TransactionInstruction {\n programId: Address\n mint: Account\n newAuthority: Account\n }\n\n # TODO: Extensions!\n # - TransferFeeExtension\n # - ConfidentialTransferFeeExtension\n # - DefaultAccountStateExtension\n # - Reallocate\n # - MemoTransferExtension\n # - CreateNativeMint\n # - InitializeNonTransferableMint\n # - InterestBearingMintExtension\n # - CpiGuardExtension\n # - InitializePermanentDelegate\n # - TransferHookExtension\n # - ConfidentialTransferFeeExtension\n # - WithdrawExcessLamports\n # - MetadataPointerExtension\n\n type Lockup {\n custodian: Account\n epoch: BigInt\n unixTimestamp: BigInt\n }\n\n # Stake: Initialize\n type StakeInitializeInstructionDataAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeInitializeInstruction implements TransactionInstruction {\n programId: Address\n authorized: StakeInitializeInstructionDataAuthorized\n lockup: Lockup\n rentSysvar: Address\n stakeAccount: Account\n }\n\n # Stake: Authorize\n type StakeAuthorizeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Address\n custodian: Account\n newAuthority: Account\n stakeAccount: Account\n }\n\n # Stake: DelegateStake\n type StakeDelegateStakeInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Address\n stakeAccount: Account\n stakeAuthority: Account\n stakeConfigAccount: Account\n stakeHistorySysvar: Address\n voteAccount: Account\n }\n\n # Stake: Split\n type StakeSplitInstruction implements TransactionInstruction {\n programId: Address\n lamports: BigInt\n newSplitAccount: Account\n stakeAccount: Account\n stakeAuthority: Account\n }\n\n # Stake: Withdraw\n type StakeWithdrawInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Address\n destination: Account\n lamports: BigInt\n stakeAccount: Account\n withdrawAuthority: Account\n }\n\n # Stake: Deactivate\n type StakeDeactivateInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Address\n stakeAccount: Account\n stakeAuthority: Account\n }\n\n # Stake: SetLockup\n type StakeSetLockupInstruction implements TransactionInstruction {\n programId: Address\n custodian: Account\n lockup: Lockup\n stakeAccount: Account\n }\n\n # Stake: Merge\n type StakeMergeInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Address\n destination: Account\n source: Account\n stakeAuthority: Account\n stakeHistorySysvar: Address\n }\n\n # Stake: AuthorizeWithSeed\n type StakeAuthorizeWithSeedInstruction implements TransactionInstruction {\n programId: Address\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\n # Stake: InitializeChecked\n type StakeInitializeCheckedInstructionDataAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeInitializeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authorized: StakeInitializeCheckedInstructionDataAuthorized\n lockup: Lockup\n rentSysvar: Address\n stakeAccount: Account\n }\n\n # Stake: AuthorizeChecked\n type StakeAuthorizeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Address\n custodian: Account\n newAuthority: Account\n stakeAccount: Account\n }\n\n # Stake: AuthorizeCheckedWithSeed\n type StakeAuthorizeCheckedWithSeedInstruction implements TransactionInstruction {\n programId: Address\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\n # Stake: SetLockupChecked\n type StakeSetLockupCheckedInstruction implements TransactionInstruction {\n programId: Address\n custodian: Account\n lockup: Lockup\n stakeAccount: Account\n }\n\n # Stake: DeactivateDelinquent\n type StakeDeactivateDelinquentInstruction implements TransactionInstruction {\n programId: Address\n referenceVoteAccount: Account\n stakeAccount: Account\n voteAccount: Account\n }\n\n # Stake: Redelegate\n type StakeRedelegateInstruction implements TransactionInstruction {\n programId: Address\n newStakeAccount: Account\n stakeAccount: Account\n stakeAuthority: Account\n stakeConfigAccount: Account\n voteAccount: Account\n }\n\n # System: CreateAccount\n type CreateAccountInstruction implements TransactionInstruction {\n programId: Address\n lamports: BigInt\n newAccount: Account\n owner: Account\n source: Account\n space: BigInt\n }\n\n # System: Assign\n type AssignInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n owner: Account\n }\n\n # System: Transfer\n type TransferInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: BigInt\n source: Account\n }\n\n # System: CreateAccountWithSeed\n type CreateAccountWithSeedInstruction implements TransactionInstruction {\n programId: Address\n base: Account\n lamports: BigInt\n owner: Account\n seed: String\n space: BigInt\n }\n\n # System: AdvanceNonceAccount\n type AdvanceNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Address\n }\n\n # System: WithdrawNonceAccount\n type WithdrawNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: BigInt\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Address\n rentSysvar: Address\n }\n\n # System: InitializeNonceAccount\n type InitializeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Address\n rentSysvar: Address\n }\n\n # System: AuthorizeNonceAccount\n type AuthorizeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n newAuthorized: Account\n nonceAccount: Account\n nonceAuthority: Account\n }\n\n # System: UpgradeNonceAccount\n type UpgradeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n }\n\n # System: Allocate\n type AllocateInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n space: BigInt\n }\n\n # System: AllocateWithSeed\n type AllocateWithSeedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n base: Address\n owner: Account\n seed: String\n space: BigInt\n }\n\n # System: AssignWithSeed\n type AssignWithSeedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n base: Address\n owner: Account\n seed: String\n }\n\n # System: TransferWithSeed\n type TransferWithSeedInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: BigInt\n source: Account\n sourceBase: Address\n sourceOwner: Account\n sourceSeed: String\n }\n\n # Vote: InitializeAccount\n type VoteInitializeAccountInstruction implements TransactionInstruction {\n programId: Address\n authorizedVoter: Account\n authorizedWithdrawer: Account\n clockSysvar: Address\n commission: BigInt # FIXME:*\n node: Account\n rentSysvar: Address\n voteAccount: Account\n }\n\n # Vote: Authorize\n type VoteAuthorizeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Address\n newAuthority: Account\n voteAccount: Account\n }\n\n # Vote: AuthorizeWithSeed\n type VoteAuthorizeWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBaseKey: String\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Address\n newAuthority: Account\n voteAccount: Account\n }\n\n # Vote: AuthorizeCheckedWithSeed\n type VoteAuthorizeCheckedWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBaseKey: String\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Address\n newAuthority: Account\n voteAccount: Account\n }\n\n type Vote {\n hash: String\n slots: [BigInt]\n timestamp: BigInt\n }\n\n # Vote: Vote\n type VoteVoteInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Address\n slotHashesSysvar: Address\n vote: Vote\n voteAccount: Account\n voteAuthority: Account\n }\n\n type VoteStateUpdateLockout {\n confirmationCount: BigInt # FIXME:*\n slot: BigInt\n }\n type VoteStateUpdate {\n hash: String\n lockouts: [VoteStateUpdateLockout]\n root: BigInt\n timestamp: BigInt\n }\n\n # Vote: UpdateVoteState\n type VoteUpdateVoteStateInstruction implements TransactionInstruction {\n programId: Address\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n # Vote: UpdateVoteStateSwitch\n type VoteUpdateVoteStateSwitchInstruction implements TransactionInstruction {\n programId: Address\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n # Vote: CompactUpdateVoteState\n type VoteCompactUpdateVoteStateInstruction implements TransactionInstruction {\n programId: Address\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n # Vote: CompactUpdateVoteStateSwitch\n type VoteCompactUpdateVoteStateSwitchInstruction implements TransactionInstruction {\n programId: Address\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n # Vote: Withdraw\n type VoteWithdrawInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: BigInt\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n # Vote: UpdateValidatorIdentity\n type VoteUpdateValidatorIdentityInstruction implements TransactionInstruction {\n programId: Address\n newValidatorIdentity: Account\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n # Vote: UpdateCommission\n type VoteUpdateCommissionInstruction implements TransactionInstruction {\n programId: Address\n commission: BigInt # FIXME:*\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n # Vote: VoteSwitch\n type VoteVoteSwitchInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Address\n hash: String\n slotHashesSysvar: Address\n vote: Vote\n voteAccount: Account\n voteAuthority: Account\n }\n\n # Vote: AuthorizeChecked\n type VoteAuthorizeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Address\n newAuthority: Account\n voteAccount: Account\n }\n`;\n\nexport const instructionResolvers = {\n TransactionInstruction: {\n __resolveType(instruction: { programName: string; instructionType: string }) {\n if (instruction.programName) {\n if (instruction.programName === 'address-lookup-table') {\n if (instruction.instructionType === 'createLookupTable') {\n return 'CreateLookupTableInstruction';\n }\n if (instruction.instructionType === 'freezeLookupTable') {\n return 'FreezeLookupTableInstruction';\n }\n if (instruction.instructionType === 'extendLookupTable') {\n return 'ExtendLookupTableInstruction';\n }\n if (instruction.instructionType === 'deactivateLookupTable') {\n return 'DeactivateLookupTableInstruction';\n }\n if (instruction.instructionType === 'closeLookupTable') {\n return 'CloseLookupTableInstruction';\n }\n }\n if (instruction.programName === 'bpf-loader') {\n if (instruction.instructionType === 'write') {\n return 'BpfLoaderWriteInstruction';\n }\n if (instruction.instructionType === 'finalize') {\n return 'BpfLoaderFinalizeInstruction';\n }\n }\n if (instruction.programName === 'bpf-upgradeable-loader') {\n if (instruction.instructionType === 'initializeBuffer') {\n return 'BpfUpgradeableLoaderInitializeBufferInstruction';\n }\n if (instruction.instructionType === 'write') {\n return 'BpfUpgradeableLoaderWriteInstruction';\n }\n if (instruction.instructionType === 'deployWithMaxDataLen') {\n return 'BpfUpgradeableLoaderDeployWithMaxDataLenInstruction';\n }\n if (instruction.instructionType === 'upgrade') {\n return 'BpfUpgradeableLoaderUpgradeInstruction';\n }\n if (instruction.instructionType === 'setAuthority') {\n return 'BpfUpgradeableLoaderSetAuthorityInstruction';\n }\n if (instruction.instructionType === 'setAuthorityChecked') {\n return 'BpfUpgradeableLoaderSetAuthorityCheckedInstruction';\n }\n if (instruction.instructionType === 'close') {\n return 'BpfUpgradeableLoaderCloseInstruction';\n }\n if (instruction.instructionType === 'extendProgram') {\n return 'BpfUpgradeableLoaderExtendProgramInstruction';\n }\n }\n if (instruction.programName === 'spl-associated-token-account') {\n if (instruction.instructionType === 'create') {\n return 'SplAssociatedTokenCreateInstruction';\n }\n if (instruction.instructionType === 'createIdempotent') {\n return 'SplAssociatedTokenCreateIdempotentInstruction';\n }\n if (instruction.instructionType === 'recoverNested') {\n return 'SplAssociatedTokenRecoverNestedInstruction';\n }\n }\n if (instruction.programName === 'spl-memo') {\n return 'SplMemoInstruction';\n }\n if (instruction.programName === 'spl-token') {\n if (instruction.instructionType === 'initializeMint') {\n return 'SplTokenInitializeMintInstruction';\n }\n if (instruction.instructionType === 'initializeMint2') {\n return 'SplTokenInitializeMint2Instruction';\n }\n if (instruction.instructionType === 'initializeAccount') {\n return 'SplTokenInitializeAccountInstruction';\n }\n if (instruction.instructionType === 'initializeAccount2') {\n return 'SplTokenInitializeAccount2Instruction';\n }\n if (instruction.instructionType === 'initializeAccount3') {\n return 'SplTokenInitializeAccount3Instruction';\n }\n if (instruction.instructionType === 'initializeMultisig') {\n return 'SplTokenInitializeMultisigInstruction';\n }\n if (instruction.instructionType === 'initializeMultisig2') {\n return 'SplTokenInitializeMultisig2Instruction';\n }\n if (instruction.instructionType === 'transfer') {\n return 'SplTokenTransferInstruction';\n }\n if (instruction.instructionType === 'approve') {\n return 'SplTokenApproveInstruction';\n }\n if (instruction.instructionType === 'revoke') {\n return 'SplTokenRevokeInstruction';\n }\n if (instruction.instructionType === 'setAuthority') {\n return 'SplTokenSetAuthorityInstruction';\n }\n if (instruction.instructionType === 'mintTo') {\n return 'SplTokenMintToInstruction';\n }\n if (instruction.instructionType === 'burn') {\n return 'SplTokenBurnInstruction';\n }\n if (instruction.instructionType === 'closeAccount') {\n return 'SplTokenCloseAccountInstruction';\n }\n if (instruction.instructionType === 'freezeAccount') {\n return 'SplTokenFreezeAccountInstruction';\n }\n if (instruction.instructionType === 'thawAccount') {\n return 'SplTokenThawAccountInstruction';\n }\n if (instruction.instructionType === 'transferChecked') {\n return 'SplTokenTransferCheckedInstruction';\n }\n if (instruction.instructionType === 'approveChecked') {\n return 'SplTokenApproveCheckedInstruction';\n }\n if (instruction.instructionType === 'mintToChecked') {\n return 'SplTokenMintToCheckedInstruction';\n }\n if (instruction.instructionType === 'burnChecked') {\n return 'SplTokenBurnCheckedInstruction';\n }\n if (instruction.instructionType === 'syncNative') {\n return 'SplTokenSyncNativeInstruction';\n }\n if (instruction.instructionType === 'getAccountDataSize') {\n return 'SplTokenGetAccountDataSizeInstruction';\n }\n if (instruction.instructionType === 'initializeImmutableOwner') {\n return 'SplTokenInitializeImmutableOwnerInstruction';\n }\n if (instruction.instructionType === 'amountToUiAmount') {\n return 'SplTokenAmountToUiAmountInstruction';\n }\n if (instruction.instructionType === 'uiAmountToAmount') {\n return 'SplTokenUiAmountToAmountInstruction';\n }\n if (instruction.instructionType === 'initializeMintCloseAuthority') {\n return 'SplTokenInitializeMintCloseAuthorityInstruction';\n }\n }\n if (instruction.programName === 'stake') {\n if (instruction.instructionType === 'initialize') {\n return 'StakeInitializeInstruction';\n }\n if (instruction.instructionType === 'authorize') {\n return 'StakeAuthorizeInstruction';\n }\n if (instruction.instructionType === 'delegate') {\n return 'StakeDelegateStakeInstruction';\n }\n if (instruction.instructionType === 'split') {\n return 'StakeSplitInstruction';\n }\n if (instruction.instructionType === 'withdraw') {\n return 'StakeWithdrawInstruction';\n }\n if (instruction.instructionType === 'deactivate') {\n return 'StakeDeactivateInstruction';\n }\n if (instruction.instructionType === 'setLockup') {\n return 'StakeSetLockupInstruction';\n }\n if (instruction.instructionType === 'merge') {\n return 'StakeMergeInstruction';\n }\n if (instruction.instructionType === 'authorizeWithSeed') {\n return 'StakeAuthorizeWithSeedInstruction';\n }\n if (instruction.instructionType === 'initializeChecked') {\n return 'StakeInitializeCheckedInstruction';\n }\n if (instruction.instructionType === 'authorizeChecked') {\n return 'StakeAuthorizeCheckedInstruction';\n }\n if (instruction.instructionType === 'authorizeCheckedWithSeed') {\n return 'StakeAuthorizeCheckedWithSeedInstruction';\n }\n if (instruction.instructionType === 'setLockupChecked') {\n return 'StakeSetLockupCheckedInstruction';\n }\n if (instruction.instructionType === 'deactivateDelinquent') {\n return 'StakeDeactivateDelinquentInstruction';\n }\n if (instruction.instructionType === 'redelegate') {\n return 'StakeRedelegateInstruction';\n }\n }\n if (instruction.programName === 'system') {\n if (instruction.instructionType === 'createAccount') {\n return 'CreateAccountInstruction';\n }\n if (instruction.instructionType === 'assign') {\n return 'AssignInstruction';\n }\n if (instruction.instructionType === 'transfer') {\n return 'TransferInstruction';\n }\n if (instruction.instructionType === 'createAccountWithSeed') {\n return 'CreateAccountWithSeedInstruction';\n }\n if (instruction.instructionType === 'advanceNonceAccount') {\n return 'AdvanceNonceAccountInstruction';\n }\n if (instruction.instructionType === 'withdrawNonceAccount') {\n return 'WithdrawNonceAccountInstruction';\n }\n if (instruction.instructionType === 'initializeNonceAccount') {\n return 'InitializeNonceAccountInstruction';\n }\n if (instruction.instructionType === 'authorizeNonceAccount') {\n return 'AuthorizeNonceAccountInstruction';\n }\n if (instruction.instructionType === 'upgradeNonceAccount') {\n return 'UpgradeNonceAccountInstruction';\n }\n if (instruction.instructionType === 'allocate') {\n return 'AllocateInstruction';\n }\n if (instruction.instructionType === 'allocateWithSeed') {\n return 'AllocateWithSeedInstruction';\n }\n if (instruction.instructionType === 'assignWithSeed') {\n return 'AssignWithSeedInstruction';\n }\n if (instruction.instructionType === 'transferWithSeed') {\n return 'TransferWithSeedInstruction';\n }\n }\n if (instruction.programName === 'vote') {\n if (instruction.instructionType === 'initialize') {\n return 'VoteInitializeAccountInstruction';\n }\n if (instruction.instructionType === 'authorize') {\n return 'VoteAuthorizeInstruction';\n }\n if (instruction.instructionType === 'authorizeWithSeed') {\n return 'VoteAuthorizeWithSeedInstruction';\n }\n if (instruction.instructionType === 'authorizeCheckedWithSeed') {\n return 'VoteAuthorizeCheckedWithSeedInstruction';\n }\n if (instruction.instructionType === 'vote') {\n return 'VoteVoteInstruction';\n }\n if (instruction.instructionType === 'updatevotestate') {\n return 'VoteUpdateVoteStateInstruction';\n }\n if (instruction.instructionType === 'updatevotestateswitch') {\n return 'VoteUpdateVoteStateSwitchInstruction';\n }\n if (instruction.instructionType === 'compactupdatevotestate') {\n return 'VoteCompactUpdateVoteStateInstruction';\n }\n if (instruction.instructionType === 'compactupdatevotestateswitch') {\n return 'VoteCompactUpdateVoteStateSwitchInstruction';\n }\n if (instruction.instructionType === 'withdraw') {\n return 'VoteWithdrawInstruction';\n }\n if (instruction.instructionType === 'updateValidatorIdentity') {\n return 'VoteUpdateValidatorIdentityInstruction';\n }\n if (instruction.instructionType === 'updateCommission') {\n return 'VoteUpdateCommissionInstruction';\n }\n if (instruction.instructionType === 'voteSwitch') {\n return 'VoteVoteSwitchInstruction';\n }\n if (instruction.instructionType === 'authorizeChecked') {\n return 'VoteAuthorizeCheckedInstruction';\n }\n }\n }\n return 'GenericInstruction';\n },\n },\n CreateLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n payerAccount: resolveAccount('payerAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n ExtendLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n payerAccount: resolveAccount('payerAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n FreezeLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n },\n DeactivateLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n },\n CloseLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n recipient: resolveAccount('recipient'),\n },\n BpfLoaderWriteInstruction: {\n account: resolveAccount('account'),\n },\n BpfLoaderFinalizeInstruction: {\n account: resolveAccount('account'),\n },\n BpfUpgradeableLoaderInitializeBufferInstruction: {\n account: resolveAccount('account'),\n },\n BpfUpgradeableLoaderWriteInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n },\n BpfUpgradeableLoaderDeployWithMaxDataLenInstruction: {\n authority: resolveAccount('authority'),\n bufferAccount: resolveAccount('bufferAccount'),\n payerAccount: resolveAccount('payerAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n },\n BpfUpgradeableLoaderUpgradeInstruction: {\n authority: resolveAccount('authority'),\n bufferAccount: resolveAccount('bufferAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n },\n BpfUpgradeableLoaderSetAuthorityInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n BpfUpgradeableLoaderSetAuthorityCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n BpfUpgradeableLoaderCloseInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n programAccount: resolveAccount('programAccount'),\n recipient: resolveAccount('recipient'),\n },\n BpfUpgradeableLoaderExtendProgramInstruction: {\n payerAccount: resolveAccount('payerAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n SplAssociatedTokenCreateInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n source: resolveAccount('source'),\n systemProgram: resolveAccount('systemProgram'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplAssociatedTokenCreateIdempotentInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n source: resolveAccount('source'),\n systemProgram: resolveAccount('systemProgram'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplAssociatedTokenRecoverNestedInstruction: {\n destination: resolveAccount('destination'),\n nestedMint: resolveAccount('nestedMint'),\n nestedOwner: resolveAccount('nestedOwner'),\n nestedSource: resolveAccount('nestedSource'),\n ownerMint: resolveAccount('ownerMint'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplTokenInitializeMintInstruction: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n },\n SplTokenInitializeMint2Instruction: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n },\n SplTokenInitializeAccountInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeAccount2Instruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeAccount3Instruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeMultisigInstruction: {\n multisig: resolveAccount('multisig'),\n },\n SplTokenInitializeMultisig2Instruction: {\n multisig: resolveAccount('multisig'),\n },\n SplTokenTransferInstruction: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenApproveInstruction: {\n delegate: resolveAccount('delegate'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenRevokeInstruction: {\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenSetAuthorityInstruction: {\n authority: resolveAccount('authority'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n SplTokenMintToInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n multisigMintAuthority: resolveAccount('multisigMintAuthority'),\n },\n SplTokenBurnInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenCloseAccountInstruction: {\n account: resolveAccount('account'),\n destination: resolveAccount('destination'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenFreezeAccountInstruction: {\n account: resolveAccount('account'),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenThawAccountInstruction: {\n account: resolveAccount('account'),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenTransferCheckedInstruction: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenApproveCheckedInstruction: {\n delegate: resolveAccount('delegate'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenMintToCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n multisigMintAuthority: resolveAccount('multisigMintAuthority'),\n },\n SplTokenBurnCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenSyncNativeInstruction: {\n account: resolveAccount('account'),\n },\n SplTokenGetAccountDataSizeInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenAmountToUiAmountInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenUiAmountToAmountInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeMintCloseAuthorityInstruction: {\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 StakeInitializeInstruction: {\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeInstruction: {\n authority: resolveAccount('authority'),\n custodian: resolveAccount('custodian'),\n newAuthority: resolveAccount('newAuthority'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeDelegateStakeInstruction: {\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeConfigAccount: resolveAccount('stakeConfigAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeSplitInstruction: {\n newSplitAccount: resolveAccount('newSplitAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeWithdrawInstruction: {\n destination: resolveAccount('destination'),\n stakeAccount: resolveAccount('stakeAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n StakeDeactivateInstruction: {\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeSetLockupInstruction: {\n custodian: resolveAccount('custodian'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeMergeInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeAuthorizeWithSeedInstruction: {\n authorityBase: resolveAccount('authorityBase'),\n authorityOwner: resolveAccount('authorityOwner'),\n custodian: resolveAccount('custodian'),\n newAuthorized: resolveAccount('newAuthorized'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeInitializeCheckedInstructionDataAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeAuthorizeCheckedInstruction: {\n authority: resolveAccount('authority'),\n custodian: resolveAccount('custodian'),\n newAuthority: resolveAccount('newAuthority'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeCheckedWithSeedInstruction: {\n authorityBase: resolveAccount('authorityBase'),\n authorityOwner: resolveAccount('authorityOwner'),\n custodian: resolveAccount('custodian'),\n newAuthorized: resolveAccount('newAuthorized'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeSetLockupCheckedInstruction: {\n custodian: resolveAccount('custodian'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeDeactivateDelinquentInstruction: {\n referenceVoteAccount: resolveAccount('referenceVoteAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeRedelegateInstruction: {\n newStakeAccount: resolveAccount('newStakeAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeConfigAccount: resolveAccount('stakeConfigAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n CreateAccountInstruction: {\n newAccount: resolveAccount('newAccount'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n AssignInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n TransferInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n },\n CreateAccountWithSeedInstruction: {\n base: resolveAccount('base'),\n owner: resolveAccount('owner'),\n seed: resolveAccount('seed'),\n },\n AdvanceNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n WithdrawNonceAccountInstruction: {\n destination: resolveAccount('destination'),\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n InitializeNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n AuthorizeNonceAccountInstruction: {\n newAuthorized: resolveAccount('newAuthorized'),\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n UpgradeNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n AllocateInstruction: {\n account: resolveAccount('account'),\n },\n AllocateWithSeedInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n AssignWithSeedInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n TransferWithSeedInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n sourceOwner: resolveAccount('sourceOwner'),\n },\n VoteInitializeAccountInstruction: {\n authorizedVoter: resolveAccount('authorizedVoter'),\n authorizedWithdrawer: resolveAccount('authorizedWithdrawer'),\n node: resolveAccount('node'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeInstruction: {\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeWithSeedInstruction: {\n authorityOwner: resolveAccount('authorityOwner'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeCheckedWithSeedInstruction: {\n authorityOwner: resolveAccount('authorityOwner'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteVoteInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteUpdateVoteStateInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteUpdateVoteStateSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteCompactUpdateVoteStateInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteCompactUpdateVoteStateSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteWithdrawInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteUpdateValidatorIdentityInstruction: {\n newValidatorIdentity: resolveAccount('newValidatorIdentity'),\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteUpdateCommissionInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteVoteSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteAuthorizeCheckedInstruction: {\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 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 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 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 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"]}
1
+ {"version":3,"sources":["../src/rpc.ts","../src/loaders/account.ts","../src/loaders/common/cache-key-fn.ts","../src/loaders/common/resolve-info.ts","../src/loaders/transformers/account.ts","../src/loaders/block.ts","../src/loaders/transformers/transaction.ts","../src/loaders/transformers/block.ts","../src/loaders/program-accounts.ts","../src/loaders/transaction.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","programName","programId","instructionType","normalizeArgs"],"mappings":"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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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","sourcesContent":["import type { GetAccountInfoApi, GetBlockApi, GetProgramAccountsApi, GetTransactionApi } from '@solana/rpc-core';\nimport type { Rpc } from '@solana/rpc-transport';\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","import { Address } from '@solana/addresses';\nimport { DataSlice, Slot } from '@solana/rpc-core';\nimport DataLoader from 'dataloader';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport type { Rpc } from '../context';\nimport { cacheKeyFn } from './common/cache-key-fn';\nimport { onlyPresentFieldRequested } from './common/resolve-info';\nimport { transformLoadedAccount } from './transformers/account';\n\nexport type AccountLoaderArgs = {\n address: Address;\n dataSlice?: DataSlice;\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n commitment?: 'processed' | 'confirmed' | 'finalized';\n minContextSlot?: Slot;\n};\n\n/* Normalizes RPC optional configs to use GraphQL API defaults */\nfunction normalizeArgs({\n address,\n commitment = 'confirmed',\n dataSlice,\n encoding = 'jsonParsed',\n minContextSlot,\n}: AccountLoaderArgs) {\n return { address, commitment, dataSlice, encoding, minContextSlot };\n}\n\n/* Load an account from the RPC, transform it, then return it */\nasync function loadAccount(rpc: Rpc, { address, ...config }: ReturnType<typeof normalizeArgs>) {\n const account = await rpc\n .getAccountInfo(address, config)\n .send()\n .then(res => res.value)\n .catch(e => {\n throw e;\n });\n return account === null ? { address } : transformLoadedAccount({ account, address, encoding: config.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 });\n return {\n load: async (args: AccountLoaderArgs, info?: GraphQLResolveInfo) => {\n if (onlyPresentFieldRequested('address', info)) {\n // If a user only requests the account's address,\n // don't call the RPC or the cache\n return { address: args.address };\n }\n return loader.load(normalizeArgs(args));\n },\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport stringify from 'json-stable-stringify';\n\nfunction replacer(_: any, value: any) {\n if (typeof value === 'bigint') {\n return value.toString() + 'n';\n }\n return value;\n}\n\nexport const cacheKeyFn = (obj: any) => stringify(obj, { replacer });\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 { Address } from '@solana/addresses';\n\nimport { AccountLoaderArgs } from '../../loaders/account';\n\nfunction transformParsedAccountData(parsedAccountData: any) {\n const {\n parsed: { info: result, type: accountType },\n program: programName,\n programId,\n } = parsedAccountData;\n // Tells GraphQL which account type has been\n // returned by the RPC.\n result.accountType = accountType;\n result.programId = programId;\n // Tells GraphQL which program the returned\n // account belongs to.\n result.programName = programName;\n return result;\n}\n\nexport function transformLoadedAccount({\n account,\n address,\n encoding,\n}: {\n account: any;\n address: Address;\n encoding: AccountLoaderArgs['encoding'];\n}) {\n const [\n // The account's data, either encoded or parsed.\n data,\n // Tells GraphQL which encoding has been returned\n // by the RPC.\n responseEncoding,\n ] = Array.isArray(account.data)\n ? encoding === 'jsonParsed'\n ? // The requested encoding is jsonParsed,\n // but the data could not be parsed.\n // Defaults to base64 encoding.\n [{ data: account.data[0] }, 'base64']\n : // The requested encoding is base58,\n // base64, or base64+zstd.\n [{ data: account.data[0] }, encoding]\n : // The account data was returned as an object,\n // so it was parsed successfully.\n [transformParsedAccountData(account.data), 'jsonParsed'];\n account.address = address;\n account.encoding = responseEncoding;\n account.ownerProgram = account.owner;\n return {\n ...account,\n ...data,\n };\n}\n","import { Slot } from '@solana/rpc-core';\nimport { Commitment } from '@solana/rpc-types';\nimport DataLoader from 'dataloader';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport type { Rpc } from '../context';\nimport { cacheKeyFn } from './common/cache-key-fn';\nimport { onlyPresentFieldRequested } from './common/resolve-info';\nimport { transformLoadedBlock } from './transformers/block';\n\nexport type BlockLoaderArgs = {\n slot: Slot;\n commitment?: Commitment;\n encoding?: 'base58' | 'base64' | 'jsonParsed';\n transactionDetails?: 'accounts' | 'full' | 'none' | 'signatures';\n};\n\n/* Normalizes RPC optional configs to use GraphQL API defaults */\nfunction normalizeArgs({\n commitment = 'confirmed',\n encoding = 'jsonParsed',\n slot,\n transactionDetails = 'full',\n}: BlockLoaderArgs) {\n return {\n commitment,\n encoding,\n // Always use 0 to avoid silly errors\n maxSupportedTransactionVersion: 0,\n slot,\n transactionDetails,\n };\n}\n\n/* Load a block from the RPC, transform it, then return it */\nasync function loadBlock(rpc: Rpc, { slot, ...config }: ReturnType<typeof normalizeArgs>) {\n const block = await rpc\n .getBlock(\n slot,\n // @ts-expect-error FIXME: https://github.com/solana-labs/solana-web3.js/issues/1984\n config,\n )\n .send()\n .catch(e => {\n throw e;\n });\n\n return block === null\n ? { slot }\n : transformLoadedBlock({ block, encoding: config.encoding, transactionDetails: config.transactionDetails });\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 });\n return {\n load: async (args: BlockLoaderArgs, info?: GraphQLResolveInfo) => {\n if (onlyPresentFieldRequested('slot', info)) {\n // If a user only requests the block's slot,\n // don't call the RPC or the cache\n return { slot: args.slot };\n }\n return loader.load(normalizeArgs(args));\n },\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nfunction transformParsedInstruction(parsedInstruction: any) {\n if ('parsed' in parsedInstruction) {\n if (typeof parsedInstruction.parsed === 'string' && parsedInstruction.program === 'spl-memo') {\n const { parsed: memo, program: programName, programId } = parsedInstruction;\n const instructionType = 'memo';\n return { instructionType, memo, programId, programName };\n }\n const {\n parsed: { info: data, type: instructionType },\n program: programName,\n programId,\n } = parsedInstruction;\n return { instructionType, programId, programName, ...data };\n } else {\n return parsedInstruction;\n }\n}\n\nfunction transformParsedTransaction(parsedTransaction: any) {\n const transactionData = parsedTransaction.transaction;\n const transactionMeta = parsedTransaction.meta;\n transactionData.message.instructions = transactionData.message.instructions.map(transformParsedInstruction);\n transactionMeta.innerInstructions = transactionMeta.innerInstructions.map((innerInstruction: any) => {\n innerInstruction.instructions = innerInstruction.instructions.map(transformParsedInstruction);\n return innerInstruction;\n });\n return [transactionData, transactionMeta];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function transformLoadedTransaction({ encoding, transaction }: { encoding: string; transaction: any }) {\n const [transactionData, transactionMeta] = Array.isArray(transaction.transaction)\n ? // The requested encoding is base58 or base64.\n [transaction.transaction[0], transaction.meta]\n : // The transaction was either partially parsed or\n // fully JSON-parsed, which will be sorted later.\n transformParsedTransaction(transaction);\n transaction.data = transactionData;\n transaction.encoding = encoding;\n transaction.meta = transactionMeta;\n return transaction;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { transformLoadedTransaction } from './transaction';\n\nexport function transformLoadedBlock({\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 block.transactions = block.transactions.map((transaction: any) => {\n if (transactionDetails === 'accounts') {\n return {\n data: transaction.transaction,\n meta: transaction.meta,\n version: transaction.version,\n };\n } else {\n return transformLoadedTransaction({ encoding, transaction });\n }\n });\n }\n block.encoding = encoding;\n block.transactionDetails = transactionDetails;\n return block;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Address } from '@solana/addresses';\nimport { DataSlice, GetProgramAccountsDatasizeFilter, GetProgramAccountsMemcmpFilter, Slot } from '@solana/rpc-core';\nimport { Commitment } from '@solana/rpc-types';\nimport DataLoader from 'dataloader';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport type { Rpc } from '../context';\nimport { cacheKeyFn } from './common/cache-key-fn';\nimport { onlyPresentFieldRequested } from './common/resolve-info';\nimport { transformLoadedAccount } from './transformers/account';\n\nexport type ProgramAccountsLoaderArgs = {\n programAddress: Address;\n commitment?: Commitment;\n dataSlice?: DataSlice;\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n filters: (GetProgramAccountsMemcmpFilter | GetProgramAccountsDatasizeFilter)[];\n minContextSlot?: Slot;\n};\n\n/* Normalizes RPC optional configs to use GraphQL API defaults */\nfunction normalizeArgs({\n commitment = 'confirmed',\n dataSlice,\n encoding = 'jsonParsed',\n filters,\n minContextSlot,\n programAddress,\n}: ProgramAccountsLoaderArgs) {\n return { commitment, dataSlice, encoding, filters, minContextSlot, programAddress };\n}\n\n/* Load a program's accounts from the RPC, transform them, then return them */\nasync function loadProgramAccounts(rpc: Rpc, { programAddress, ...config }: ReturnType<typeof normalizeArgs>) {\n const programAccounts = await rpc\n .getProgramAccounts(programAddress, config)\n .send()\n .catch(e => {\n throw e;\n });\n\n return programAccounts.map(programAccount =>\n transformLoadedAccount({\n account: programAccount.account,\n address: programAccount.pubkey,\n encoding: config.encoding,\n }),\n );\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 });\n return {\n load: async (args: ProgramAccountsLoaderArgs, info?: GraphQLResolveInfo) => {\n if (onlyPresentFieldRequested('programAddress', info)) {\n // If a user only requests the program's address,\n // don't call the RPC or the cache\n return { programAddress: args.programAddress };\n }\n return loader.load(normalizeArgs(args));\n },\n };\n}\n","import { Signature } from '@solana/keys';\nimport { Commitment } from '@solana/rpc-types';\nimport DataLoader from 'dataloader';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { TransactionVersion } from '../../../transactions/dist/types';\nimport type { Rpc } from '../context';\nimport { cacheKeyFn } from './common/cache-key-fn';\nimport { onlyPresentFieldRequested } from './common/resolve-info';\nimport { transformLoadedTransaction } from './transformers/transaction';\n\nexport type TransactionLoaderArgs = {\n signature: Signature;\n commitment?: Commitment;\n encoding?: 'base58' | 'base64' | 'jsonParsed';\n};\n\n/* Normalizes RPC optional configs to use GraphQL API defaults */\nfunction normalizeArgs({ commitment = 'confirmed', encoding = 'jsonParsed', signature }: TransactionLoaderArgs) {\n return {\n commitment,\n encoding,\n // Always use 0 to avoid silly errors\n maxSupportedTransactionVersion: 0 as TransactionVersion,\n signature,\n };\n}\n\n/* Load a transaction from the RPC, transform it, then return it */\nasync function loadTransaction(rpc: Rpc, { signature, ...config }: ReturnType<typeof normalizeArgs>) {\n const { encoding } = config;\n\n const transaction = await rpc\n .getTransaction(\n signature,\n // @ts-expect-error FIXME: https://github.com/solana-labs/solana-web3.js/issues/1984\n config,\n )\n .send()\n .catch(e => {\n throw e;\n });\n if (transaction === null) {\n return null;\n }\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 if (encoding !== 'jsonParsed') {\n const jsonParsedConfig = { ...config, encoding: 'jsonParsed' };\n const transactionJsonParsed = await rpc\n .getTransaction(\n signature,\n // @ts-expect-error FIXME: https://github.com/solana-labs/solana-web3.js/issues/1984\n jsonParsedConfig,\n )\n .send()\n .catch(e => {\n throw e;\n });\n if (transactionJsonParsed === null) {\n return null;\n }\n transaction.meta = transactionJsonParsed.meta;\n }\n\n return transformLoadedTransaction({ encoding, transaction });\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 });\n return {\n load: async (args: TransactionLoaderArgs, info?: GraphQLResolveInfo) => {\n if (onlyPresentFieldRequested('signature', info)) {\n // If a user only requests the transaction's signature,\n // don't call the RPC or the cache\n return { signature: args.signature };\n }\n return loader.load(normalizeArgs(args));\n },\n };\n}\n","import { GraphQLResolveInfo } from 'graphql';\n\nimport { createAccountLoader } from './loaders/account';\nimport { AccountLoaderArgs } from './loaders/account';\nimport { createBlockLoader } from './loaders/block';\nimport { BlockLoaderArgs } from './loaders/block';\nimport { createProgramAccountsLoader } from './loaders/program-accounts';\nimport { ProgramAccountsLoaderArgs } from './loaders/program-accounts';\nimport { createTransactionLoader } from './loaders/transaction';\nimport { TransactionLoaderArgs } from './loaders/transaction';\nimport { createRpcGraphQL } from './rpc';\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<AccountLoaderArgs>;\n block: Loader<BlockLoaderArgs>;\n programAccounts: Loader<ProgramAccountsLoaderArgs>;\n transaction: Loader<TransactionLoaderArgs>;\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 { AccountLoaderArgs } from '../loaders/account';\nimport { BlockLoaderArgs } from '../loaders/block';\nimport { ProgramAccountsLoaderArgs } from '../loaders/program-accounts';\nimport { TransactionLoaderArgs } from '../loaders/transaction';\nimport { accountResolvers, accountTypeDefs } from './account';\nimport { 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 { 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: AccountLoaderArgs,\n context: RpcGraphQLContext,\n info?: GraphQLResolveInfo\n ) {\n return context.loaders.account.load(args, info);\n },\n block(\n _: unknown,\n args: BlockLoaderArgs,\n context: RpcGraphQLContext,\n info?: GraphQLResolveInfo\n ) {\n return context.loaders.block.load(args, info);\n },\n programAccounts(\n _: unknown,\n args: ProgramAccountsLoaderArgs,\n context: RpcGraphQLContext,\n info?: GraphQLResolveInfo\n ) {\n return context.loaders.programAccounts.load(args, info);\n },\n transaction(\n _: unknown,\n args: TransactionLoaderArgs,\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 { AccountLoaderArgs } from '../loaders/account';\n\nexport const resolveAccount = (fieldName: string) => {\n return (\n parent: { [x: string]: Address },\n args: AccountLoaderArgs,\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 { resolveAccount } from '../resolvers/account';\n\nexport const accountTypeDefs = /* GraphQL */ `\n \"\"\"\n Account interface\n \"\"\"\n interface Account {\n address: Address\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n }\n\n \"\"\"\n An account with base58 encoded data\n \"\"\"\n type AccountBase58 implements Account {\n address: Address\n data: Base58EncodedBytes\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n }\n\n \"\"\"\n An account with base64 encoded data\n \"\"\"\n type AccountBase64 implements Account {\n address: Address\n data: Base64EncodedBytes\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n }\n\n \"\"\"\n An account with base64+zstd encoded data\n \"\"\"\n type AccountBase64Zstd implements Account {\n address: Address\n data: Base64ZstdEncodedBytes\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n }\n\n type NonceAccountFeeCalculator {\n lamportsPerSignature: String\n }\n \"\"\"\n A nonce account\n \"\"\"\n type NonceAccount implements Account {\n address: Address\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n authority: Account\n blockhash: String\n feeCalculator: NonceAccountFeeCalculator\n }\n\n \"\"\"\n A lookup table account\n \"\"\"\n type LookupTableAccount implements Account {\n address: Address\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n addresses: [Address]\n authority: Account\n deactivationSlot: String\n lastExtendedSlot: String\n lastExtendedSlotStartIndex: Int\n }\n\n \"\"\"\n A mint account\n \"\"\"\n type MintAccount implements Account {\n address: Address\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n decimals: Int\n freezeAuthority: Account\n isInitialized: Boolean\n mintAuthority: Account\n supply: String\n }\n\n \"\"\"\n A token account\n \"\"\"\n type TokenAccount implements Account {\n address: Address\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n isNative: Boolean\n mint: Account\n owner: Account\n state: String\n tokenAmount: TokenAmount\n }\n\n type StakeAccountDataMetaAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeAccountDataMetaLockup {\n custodian: Account\n epoch: BigInt\n unixTimestamp: BigInt\n }\n type StakeAccountDataMeta {\n authorized: StakeAccountDataMetaAuthorized\n lockup: StakeAccountDataMetaLockup\n rentExemptReserve: String\n }\n type StakeAccountDataStakeDelegation {\n activationEpoch: BigInt\n deactivationEpoch: BigInt\n stake: String\n voter: Account\n warmupCooldownRate: Int\n }\n type StakeAccountDataStake {\n creditsObserved: BigInt\n delegation: StakeAccountDataStakeDelegation\n }\n \"\"\"\n A stake account\n \"\"\"\n type StakeAccount implements Account {\n address: Address\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n meta: StakeAccountDataMeta\n stake: StakeAccountDataStake\n }\n\n type VoteAccountDataAuthorizedVoter {\n authorizedVoter: Account\n epoch: BigInt\n }\n type VoteAccountDataEpochCredit {\n credits: String\n epoch: BigInt\n previousCredits: String\n }\n type VoteAccountDataLastTimestamp {\n slot: BigInt\n timestamp: BigInt\n }\n type VoteAccountDataVote {\n confirmationCount: Int\n slot: BigInt\n }\n \"\"\"\n A vote account\n \"\"\"\n type VoteAccount implements Account {\n address: Address\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n authorizedVoters: [VoteAccountDataAuthorizedVoter]\n authorizedWithdrawer: Account\n commission: Int\n epochCredits: [VoteAccountDataEpochCredit]\n lastTimestamp: VoteAccountDataLastTimestamp\n node: Account\n priorVoters: [Address]\n rootSlot: BigInt\n votes: [VoteAccountDataVote]\n }\n`;\n\nexport const accountResolvers = {\n Account: {\n __resolveType(account: { encoding: string; programName: string; accountType: 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.programName === 'nonce') {\n return 'NonceAccount';\n }\n if (account.accountType === 'mint' && account.programName === 'spl-token') {\n return 'MintAccount';\n }\n if (account.accountType === 'account' && account.programName === 'spl-token') {\n return 'TokenAccount';\n }\n if (account.programName === 'stake') {\n return 'StakeAccount';\n }\n if (account.accountType === 'vote' && account.programName === 'vote') {\n return 'VoteAccount';\n }\n if (account.accountType === 'lookupTable' && account.programName === 'address-lookup-table') {\n return 'LookupTableAccount';\n }\n }\n return 'AccountBase64';\n },\n },\n AccountBase58: {\n ownerProgram: resolveAccount('ownerProgram'),\n },\n AccountBase64: {\n ownerProgram: resolveAccount('ownerProgram'),\n },\n AccountBase64Zstd: {\n ownerProgram: resolveAccount('ownerProgram'),\n },\n NonceAccount: {\n authority: resolveAccount('authority'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n LookupTableAccount: {\n authority: resolveAccount('authority'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n MintAccount: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mintAuthority: resolveAccount('mintAuthority'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n TokenAccount: {\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n StakeAccountDataMetaAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeAccountDataMetaLockup: {\n custodian: resolveAccount('custodian'),\n },\n StakeAccountDataStakeDelegation: {\n voter: resolveAccount('voter'),\n },\n StakeAccount: {\n ownerProgram: resolveAccount('ownerProgram'),\n },\n VoteAccountDataAuthorizedVoter: {\n authorizedVoter: resolveAccount('authorizedVoter'),\n },\n VoteAccount: {\n authorizedWithdrawer: resolveAccount('authorizedWithdrawer'),\n node: resolveAccount('nodePubkey'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n};\n","export 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 \"\"\"\n Block interface\n \"\"\"\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 \"\"\"\n A block with account transaction details\n \"\"\"\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 \"\"\"\n A block with full transaction details\n \"\"\"\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 \"\"\"\n A block with no transaction details\n \"\"\"\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 \"\"\"\n A block with signature transaction details\n \"\"\"\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 \"\"\"\n Transaction instruction interface\n \"\"\"\n interface TransactionInstruction {\n programId: Address\n }\n\n \"\"\"\n Generic transaction instruction\n \"\"\"\n type GenericInstruction implements TransactionInstruction {\n accounts: [Address]\n data: Base64EncodedBytes\n programId: Address\n }\n\n \"\"\"\n AddressLookupTable: CreateLookupTable instruction\n \"\"\"\n type CreateLookupTableInstruction implements TransactionInstruction {\n programId: Address\n bumpSeed: BigInt # FIXME:*\n lookupTableAccount: Account\n lookupTableAuthority: Account\n payerAccount: Account\n recentSlot: BigInt\n systemProgram: Account\n }\n\n \"\"\"\n AddressLookupTable: ExtendLookupTable instruction\n \"\"\"\n type ExtendLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n newAddresses: [Address]\n payerAccount: Account\n systemProgram: Account\n }\n\n \"\"\"\n AddressLookupTable: FreezeLookupTable instruction\n \"\"\"\n type FreezeLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n }\n\n \"\"\"\n AddressLookupTable: DeactivateLookupTable instruction\n \"\"\"\n type DeactivateLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n }\n\n \"\"\"\n AddressLookupTable: CloseLookupTable instruction\n \"\"\"\n type CloseLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n recipient: Account\n }\n\n \"\"\"\n BpfLoader: Write instruction\n \"\"\"\n type BpfLoaderWriteInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n bytes: Base64EncodedBytes\n offset: BigInt # FIXME:*\n }\n\n \"\"\"\n BpfLoader: Finalize instruction\n \"\"\"\n type BpfLoaderFinalizeInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: InitializeBuffer instruction\n \"\"\"\n type BpfUpgradeableLoaderInitializeBufferInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: Write instruction\n \"\"\"\n type BpfUpgradeableLoaderWriteInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n bytes: Base64EncodedBytes\n offset: BigInt # FIXME:*\n }\n\n \"\"\"\n BpfUpgradeableLoader: DeployWithMaxDataLen instruction\n \"\"\"\n type BpfUpgradeableLoaderDeployWithMaxDataLenInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n bufferAccount: Account\n clockSysvar: Address\n maxDataLen: BigInt\n payerAccount: Account\n programAccount: Account\n programDataAccount: Account\n rentSysvar: Address\n }\n\n \"\"\"\n BpfUpgradeableLoader: Upgrade instruction\n \"\"\"\n type BpfUpgradeableLoaderUpgradeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n bufferAccount: Account\n clockSysvar: Address\n programAccount: Account\n programDataAccount: Account\n rentSysvar: Address\n spillAccount: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: SetAuthority instruction\n \"\"\"\n type BpfUpgradeableLoaderSetAuthorityInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n newAuthority: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: SetAuthorityChecked instruction\n \"\"\"\n type BpfUpgradeableLoaderSetAuthorityCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n newAuthority: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: Close instruction\n \"\"\"\n type BpfUpgradeableLoaderCloseInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n programAccount: Account\n recipient: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: ExtendProgram instruction\n \"\"\"\n type BpfUpgradeableLoaderExtendProgramInstruction implements TransactionInstruction {\n programId: Address\n additionalBytes: BigInt\n payerAccount: Account\n programAccount: Account\n programDataAccount: Account\n systemProgram: Account\n }\n\n \"\"\"\n SplAssociatedTokenAccount: Create instruction\n \"\"\"\n type SplAssociatedTokenCreateInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Address\n source: Account\n systemProgram: Account\n tokenProgram: Account\n wallet: Account\n }\n\n \"\"\"\n SplAssociatedTokenAccount: CreateIdempotent instruction\n \"\"\"\n type SplAssociatedTokenCreateIdempotentInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Address\n source: Account\n systemProgram: Account\n tokenProgram: Account\n wallet: Account\n }\n\n \"\"\"\n SplAssociatedTokenAccount: RecoverNested instruction\n \"\"\"\n type SplAssociatedTokenRecoverNestedInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n nestedMint: Account\n nestedOwner: Account\n nestedSource: Account\n ownerMint: Account\n tokenProgram: Account\n wallet: Account\n }\n\n \"\"\"\n SplMemo instruction\n \"\"\"\n type SplMemoInstruction implements TransactionInstruction {\n programId: Address\n memo: String\n }\n\n \"\"\"\n SplToken: InitializeMint instruction\n \"\"\"\n type SplTokenInitializeMintInstruction implements TransactionInstruction {\n programId: Address\n decimals: BigInt # FIXME:*\n freezeAuthority: Account\n mint: Account\n mintAuthority: Account\n rentSysvar: Address\n }\n\n \"\"\"\n SplToken: InitializeMint2 instruction\n \"\"\"\n type SplTokenInitializeMint2Instruction implements TransactionInstruction {\n programId: Address\n decimals: BigInt # FIXME:*\n freezeAuthority: Account\n mint: Account\n mintAuthority: Account\n }\n\n \"\"\"\n SplToken: InitializeAccount instruction\n \"\"\"\n type SplTokenInitializeAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n rentSysvar: Address\n }\n\n \"\"\"\n SplToken: InitializeAccount2 instruction\n \"\"\"\n type SplTokenInitializeAccount2Instruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n rentSysvar: Address\n }\n\n \"\"\"\n SplToken: InitializeAccount3 instruction\n \"\"\"\n type SplTokenInitializeAccount3Instruction implements TransactionInstruction {\n programId: Address\n account: Account\n mint: Account\n owner: Account\n }\n\n \"\"\"\n SplToken: InitializeMultisig instruction\n \"\"\"\n type SplTokenInitializeMultisigInstruction implements TransactionInstruction {\n programId: Address\n m: BigInt # FIXME:*\n multisig: Account\n rentSysvar: Address\n signers: [Address]\n }\n\n \"\"\"\n SplToken: InitializeMultisig2 instruction\n \"\"\"\n type SplTokenInitializeMultisig2Instruction implements TransactionInstruction {\n programId: Address\n m: BigInt # FIXME:*\n multisig: Account\n signers: [Address]\n }\n\n \"\"\"\n SplToken: Transfer instruction\n \"\"\"\n type SplTokenTransferInstruction implements TransactionInstruction {\n programId: Address\n amount: String\n authority: Account\n destination: Account\n multisigAuthority: Account\n source: Account\n }\n\n \"\"\"\n SplToken: Approve instruction\n \"\"\"\n type SplTokenApproveInstruction implements TransactionInstruction {\n programId: Address\n amount: String\n delegate: Account\n multisigOwner: Account\n owner: Account\n source: Account\n }\n\n \"\"\"\n SplToken: Revoke instruction\n \"\"\"\n type SplTokenRevokeInstruction implements TransactionInstruction {\n programId: Address\n multisigOwner: Account\n owner: Account\n source: Account\n }\n\n \"\"\"\n SplToken: SetAuthority instruction\n \"\"\"\n type SplTokenSetAuthorityInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n multisigAuthority: Account\n newAuthority: Account\n }\n\n \"\"\"\n SplToken: MintTo instruction\n \"\"\"\n type SplTokenMintToInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n amount: String\n authority: Account\n mint: Account\n mintAuthority: Account\n multisigMintAuthority: Account\n }\n\n \"\"\"\n SplToken: Burn instruction\n \"\"\"\n type SplTokenBurnInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n amount: String\n authority: Account\n mint: Account\n multisigAuthority: Account\n }\n\n \"\"\"\n SplToken: CloseAccount instruction\n \"\"\"\n type SplTokenCloseAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n destination: Account\n multisigOwner: Account\n owner: Account\n }\n\n \"\"\"\n SplToken: FreezeAccount instruction\n \"\"\"\n type SplTokenFreezeAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n freezeAuthority: Account\n mint: Account\n multisigFreezeAuthority: Account\n }\n\n \"\"\"\n SplToken: ThawAccount instruction\n \"\"\"\n type SplTokenThawAccountInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n freezeAuthority: Account\n mint: Account\n multisigFreezeAuthority: Account\n }\n\n \"\"\"\n SplToken: TransferChecked instruction\n \"\"\"\n type SplTokenTransferCheckedInstruction implements TransactionInstruction {\n programId: Address\n amount: String\n authority: Account\n decimals: BigInt # FIXME:*\n destination: Account\n mint: Account\n multisigAuthority: Account\n source: Account\n tokenAmount: String\n }\n\n \"\"\"\n SplToken: ApproveChecked instruction\n \"\"\"\n type SplTokenApproveCheckedInstruction implements TransactionInstruction {\n programId: Address\n delegate: Account\n mint: Account\n multisigOwner: Account\n owner: Account\n source: Account\n tokenAmount: String\n }\n\n \"\"\"\n SplToken: MintToChecked instruction\n \"\"\"\n type SplTokenMintToCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n mint: Account\n mintAuthority: Account\n multisigMintAuthority: Account\n tokenAmount: String\n }\n\n \"\"\"\n SplToken: BurnChecked instruction\n \"\"\"\n type SplTokenBurnCheckedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n mint: Account\n multisigAuthority: Account\n tokenAmount: String\n }\n\n \"\"\"\n SplToken: SyncNative instruction\n \"\"\"\n type SplTokenSyncNativeInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n SplToken: GetAccountDataSize instruction\n \"\"\"\n type SplTokenGetAccountDataSizeInstruction implements TransactionInstruction {\n programId: Address\n extensionTypes: [String]\n mint: Account\n }\n\n \"\"\"\n SplToken: InitializeImmutableOwner instruction\n \"\"\"\n type SplTokenInitializeImmutableOwnerInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n SplToken: AmountToUiAmount instruction\n \"\"\"\n type SplTokenAmountToUiAmountInstruction implements TransactionInstruction {\n programId: Address\n amount: String\n mint: Account\n }\n\n \"\"\"\n SplToken: UiAmountToAmount instruction\n \"\"\"\n type SplTokenUiAmountToAmountInstruction implements TransactionInstruction {\n programId: Address\n mint: Account\n uiAmount: String\n }\n\n \"\"\"\n SplToken: InitializeMintCloseAuthority instruction\n \"\"\"\n type SplTokenInitializeMintCloseAuthorityInstruction implements TransactionInstruction {\n programId: Address\n mint: Account\n newAuthority: Account\n }\n\n # TODO: Extensions!\n # - TransferFeeExtension\n # - ConfidentialTransferFeeExtension\n # - DefaultAccountStateExtension\n # - Reallocate\n # - MemoTransferExtension\n # - CreateNativeMint\n # - InitializeNonTransferableMint\n # - InterestBearingMintExtension\n # - CpiGuardExtension\n # - InitializePermanentDelegate\n # - TransferHookExtension\n # - ConfidentialTransferFeeExtension\n # - WithdrawExcessLamports\n # - MetadataPointerExtension\n\n type Lockup {\n custodian: Account\n epoch: BigInt\n unixTimestamp: BigInt\n }\n\n \"\"\"\n Stake: Initialize instruction\n \"\"\"\n type StakeInitializeInstructionDataAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeInitializeInstruction implements TransactionInstruction {\n programId: Address\n authorized: StakeInitializeInstructionDataAuthorized\n lockup: Lockup\n rentSysvar: Address\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: Authorize instruction\n \"\"\"\n type StakeAuthorizeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Address\n custodian: Account\n newAuthority: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: DelegateStake instruction\n \"\"\"\n type StakeDelegateStakeInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Address\n stakeAccount: Account\n stakeAuthority: Account\n stakeConfigAccount: Account\n stakeHistorySysvar: Address\n voteAccount: Account\n }\n\n \"\"\"\n Stake: Split instruction\n \"\"\"\n type StakeSplitInstruction implements TransactionInstruction {\n programId: Address\n lamports: BigInt\n newSplitAccount: Account\n stakeAccount: Account\n stakeAuthority: Account\n }\n\n \"\"\"\n Stake: Withdraw instruction\n \"\"\"\n type StakeWithdrawInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Address\n destination: Account\n lamports: BigInt\n stakeAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Stake: Deactivate instruction\n \"\"\"\n type StakeDeactivateInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Address\n stakeAccount: Account\n stakeAuthority: Account\n }\n\n \"\"\"\n Stake: SetLockup instruction\n \"\"\"\n type StakeSetLockupInstruction implements TransactionInstruction {\n programId: Address\n custodian: Account\n lockup: Lockup\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: Merge instruction\n \"\"\"\n type StakeMergeInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Address\n destination: Account\n source: Account\n stakeAuthority: Account\n stakeHistorySysvar: Address\n }\n\n \"\"\"\n Stake: AuthorizeWithSeed instruction\n \"\"\"\n type StakeAuthorizeWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBase: Account\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Address\n custodian: Account\n newAuthorized: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: InitializeChecked instruction\n \"\"\"\n type StakeInitializeCheckedInstructionDataAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeInitializeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authorized: StakeInitializeCheckedInstructionDataAuthorized\n lockup: Lockup\n rentSysvar: Address\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: AuthorizeChecked instruction\n \"\"\"\n type StakeAuthorizeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Address\n custodian: Account\n newAuthority: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: AuthorizeCheckedWithSeed instruction\n \"\"\"\n type StakeAuthorizeCheckedWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBase: Account\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Address\n custodian: Account\n newAuthorized: Account\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: SetLockupChecked instruction\n \"\"\"\n type StakeSetLockupCheckedInstruction implements TransactionInstruction {\n programId: Address\n custodian: Account\n lockup: Lockup\n stakeAccount: Account\n }\n\n \"\"\"\n Stake: DeactivateDelinquent instruction\n \"\"\"\n type StakeDeactivateDelinquentInstruction implements TransactionInstruction {\n programId: Address\n referenceVoteAccount: Account\n stakeAccount: Account\n voteAccount: Account\n }\n\n \"\"\"\n Stake: Redelegate instruction\n \"\"\"\n type StakeRedelegateInstruction implements TransactionInstruction {\n programId: Address\n newStakeAccount: Account\n stakeAccount: Account\n stakeAuthority: Account\n stakeConfigAccount: Account\n voteAccount: Account\n }\n\n \"\"\"\n System: CreateAccount instruction\n \"\"\"\n type CreateAccountInstruction implements TransactionInstruction {\n programId: Address\n lamports: BigInt\n newAccount: Account\n owner: Account\n source: Account\n space: BigInt\n }\n\n \"\"\"\n System: Assign instruction\n \"\"\"\n type AssignInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n owner: Account\n }\n\n \"\"\"\n System: Transfer instruction\n \"\"\"\n type TransferInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: BigInt\n source: Account\n }\n\n \"\"\"\n System: CreateAccountWithSeed instruction\n \"\"\"\n type CreateAccountWithSeedInstruction implements TransactionInstruction {\n programId: Address\n base: Account\n lamports: BigInt\n owner: Account\n seed: String\n space: BigInt\n }\n\n \"\"\"\n System: AdvanceNonceAccount instruction\n \"\"\"\n type AdvanceNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Address\n }\n\n \"\"\"\n System: WithdrawNonceAccount instruction\n \"\"\"\n type WithdrawNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: BigInt\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Address\n rentSysvar: Address\n }\n\n \"\"\"\n System: InitializeNonceAccount instruction\n \"\"\"\n type InitializeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n recentBlockhashesSysvar: Address\n rentSysvar: Address\n }\n\n \"\"\"\n System: AuthorizeNonceAccount instruction\n \"\"\"\n type AuthorizeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n newAuthorized: Account\n nonceAccount: Account\n nonceAuthority: Account\n }\n\n \"\"\"\n System: UpgradeNonceAccount instruction\n \"\"\"\n type UpgradeNonceAccountInstruction implements TransactionInstruction {\n programId: Address\n nonceAccount: Account\n nonceAuthority: Account\n }\n\n \"\"\"\n System: Allocate instruction\n \"\"\"\n type AllocateInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n space: BigInt\n }\n\n \"\"\"\n System: AllocateWithSeed instruction\n \"\"\"\n type AllocateWithSeedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n base: Address\n owner: Account\n seed: String\n space: BigInt\n }\n\n \"\"\"\n System: AssignWithSeed instruction\n \"\"\"\n type AssignWithSeedInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n base: Address\n owner: Account\n seed: String\n }\n\n \"\"\"\n System: TransferWithSeed instruction\n \"\"\"\n type TransferWithSeedInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: BigInt\n source: Account\n sourceBase: Address\n sourceOwner: Account\n sourceSeed: String\n }\n\n \"\"\"\n Vote: InitializeAccount instruction\n \"\"\"\n type VoteInitializeAccountInstruction implements TransactionInstruction {\n programId: Address\n authorizedVoter: Account\n authorizedWithdrawer: Account\n clockSysvar: Address\n commission: BigInt # FIXME:*\n node: Account\n rentSysvar: Address\n voteAccount: Account\n }\n\n \"\"\"\n Vote: Authorize instruction\n \"\"\"\n type VoteAuthorizeInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Address\n newAuthority: Account\n voteAccount: Account\n }\n\n \"\"\"\n Vote: AuthorizeWithSeed instruction\n \"\"\"\n type VoteAuthorizeWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBaseKey: String\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Address\n newAuthority: Account\n voteAccount: Account\n }\n\n \"\"\"\n Vote: AuthorizeCheckedWithSeed instruction\n \"\"\"\n type VoteAuthorizeCheckedWithSeedInstruction implements TransactionInstruction {\n programId: Address\n authorityBaseKey: String\n authorityOwner: Account\n authoritySeed: String\n authorityType: String\n clockSysvar: Address\n newAuthority: Account\n voteAccount: Account\n }\n\n type Vote {\n hash: String\n slots: [BigInt]\n timestamp: BigInt\n }\n\n \"\"\"\n Vote: Vote instruction\n \"\"\"\n type VoteVoteInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Address\n slotHashesSysvar: Address\n vote: Vote\n voteAccount: Account\n voteAuthority: Account\n }\n\n type VoteStateUpdateLockout {\n confirmationCount: BigInt # FIXME:*\n slot: BigInt\n }\n type VoteStateUpdate {\n hash: String\n lockouts: [VoteStateUpdateLockout]\n root: BigInt\n timestamp: BigInt\n }\n\n \"\"\"\n Vote: UpdateVoteState instruction\n \"\"\"\n type VoteUpdateVoteStateInstruction implements TransactionInstruction {\n programId: Address\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: UpdateVoteStateSwitch instruction\n \"\"\"\n type VoteUpdateVoteStateSwitchInstruction implements TransactionInstruction {\n programId: Address\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: CompactUpdateVoteState instruction\n \"\"\"\n type VoteCompactUpdateVoteStateInstruction implements TransactionInstruction {\n programId: Address\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: CompactUpdateVoteStateSwitch instruction\n \"\"\"\n type VoteCompactUpdateVoteStateSwitchInstruction implements TransactionInstruction {\n programId: Address\n hash: String\n voteAccount: Account\n voteAuthority: Account\n voteStateUpdate: VoteStateUpdate\n }\n\n \"\"\"\n Vote: Withdraw instruction\n \"\"\"\n type VoteWithdrawInstruction implements TransactionInstruction {\n programId: Address\n destination: Account\n lamports: BigInt\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Vote: UpdateValidatorIdentity instruction\n \"\"\"\n type VoteUpdateValidatorIdentityInstruction implements TransactionInstruction {\n programId: Address\n newValidatorIdentity: Account\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Vote: UpdateCommission instruction\n \"\"\"\n type VoteUpdateCommissionInstruction implements TransactionInstruction {\n programId: Address\n commission: BigInt # FIXME:*\n voteAccount: Account\n withdrawAuthority: Account\n }\n\n \"\"\"\n Vote: VoteSwitch instruction\n \"\"\"\n type VoteVoteSwitchInstruction implements TransactionInstruction {\n programId: Address\n clockSysvar: Address\n hash: String\n slotHashesSysvar: Address\n vote: Vote\n voteAccount: Account\n voteAuthority: Account\n }\n\n \"\"\"\n Vote: AuthorizeChecked instruction\n \"\"\"\n type VoteAuthorizeCheckedInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n authorityType: String\n clockSysvar: Address\n newAuthority: Account\n voteAccount: Account\n }\n`;\n\nexport const instructionResolvers = {\n TransactionInstruction: {\n __resolveType(instruction: { programName: string; instructionType: string }) {\n if (instruction.programName) {\n if (instruction.programName === 'address-lookup-table') {\n if (instruction.instructionType === 'createLookupTable') {\n return 'CreateLookupTableInstruction';\n }\n if (instruction.instructionType === 'freezeLookupTable') {\n return 'FreezeLookupTableInstruction';\n }\n if (instruction.instructionType === 'extendLookupTable') {\n return 'ExtendLookupTableInstruction';\n }\n if (instruction.instructionType === 'deactivateLookupTable') {\n return 'DeactivateLookupTableInstruction';\n }\n if (instruction.instructionType === 'closeLookupTable') {\n return 'CloseLookupTableInstruction';\n }\n }\n if (instruction.programName === 'bpf-loader') {\n if (instruction.instructionType === 'write') {\n return 'BpfLoaderWriteInstruction';\n }\n if (instruction.instructionType === 'finalize') {\n return 'BpfLoaderFinalizeInstruction';\n }\n }\n if (instruction.programName === 'bpf-upgradeable-loader') {\n if (instruction.instructionType === 'initializeBuffer') {\n return 'BpfUpgradeableLoaderInitializeBufferInstruction';\n }\n if (instruction.instructionType === 'write') {\n return 'BpfUpgradeableLoaderWriteInstruction';\n }\n if (instruction.instructionType === 'deployWithMaxDataLen') {\n return 'BpfUpgradeableLoaderDeployWithMaxDataLenInstruction';\n }\n if (instruction.instructionType === 'upgrade') {\n return 'BpfUpgradeableLoaderUpgradeInstruction';\n }\n if (instruction.instructionType === 'setAuthority') {\n return 'BpfUpgradeableLoaderSetAuthorityInstruction';\n }\n if (instruction.instructionType === 'setAuthorityChecked') {\n return 'BpfUpgradeableLoaderSetAuthorityCheckedInstruction';\n }\n if (instruction.instructionType === 'close') {\n return 'BpfUpgradeableLoaderCloseInstruction';\n }\n if (instruction.instructionType === 'extendProgram') {\n return 'BpfUpgradeableLoaderExtendProgramInstruction';\n }\n }\n if (instruction.programName === 'spl-associated-token-account') {\n if (instruction.instructionType === 'create') {\n return 'SplAssociatedTokenCreateInstruction';\n }\n if (instruction.instructionType === 'createIdempotent') {\n return 'SplAssociatedTokenCreateIdempotentInstruction';\n }\n if (instruction.instructionType === 'recoverNested') {\n return 'SplAssociatedTokenRecoverNestedInstruction';\n }\n }\n if (instruction.programName === 'spl-memo') {\n return 'SplMemoInstruction';\n }\n if (instruction.programName === 'spl-token') {\n if (instruction.instructionType === 'initializeMint') {\n return 'SplTokenInitializeMintInstruction';\n }\n if (instruction.instructionType === 'initializeMint2') {\n return 'SplTokenInitializeMint2Instruction';\n }\n if (instruction.instructionType === 'initializeAccount') {\n return 'SplTokenInitializeAccountInstruction';\n }\n if (instruction.instructionType === 'initializeAccount2') {\n return 'SplTokenInitializeAccount2Instruction';\n }\n if (instruction.instructionType === 'initializeAccount3') {\n return 'SplTokenInitializeAccount3Instruction';\n }\n if (instruction.instructionType === 'initializeMultisig') {\n return 'SplTokenInitializeMultisigInstruction';\n }\n if (instruction.instructionType === 'initializeMultisig2') {\n return 'SplTokenInitializeMultisig2Instruction';\n }\n if (instruction.instructionType === 'transfer') {\n return 'SplTokenTransferInstruction';\n }\n if (instruction.instructionType === 'approve') {\n return 'SplTokenApproveInstruction';\n }\n if (instruction.instructionType === 'revoke') {\n return 'SplTokenRevokeInstruction';\n }\n if (instruction.instructionType === 'setAuthority') {\n return 'SplTokenSetAuthorityInstruction';\n }\n if (instruction.instructionType === 'mintTo') {\n return 'SplTokenMintToInstruction';\n }\n if (instruction.instructionType === 'burn') {\n return 'SplTokenBurnInstruction';\n }\n if (instruction.instructionType === 'closeAccount') {\n return 'SplTokenCloseAccountInstruction';\n }\n if (instruction.instructionType === 'freezeAccount') {\n return 'SplTokenFreezeAccountInstruction';\n }\n if (instruction.instructionType === 'thawAccount') {\n return 'SplTokenThawAccountInstruction';\n }\n if (instruction.instructionType === 'transferChecked') {\n return 'SplTokenTransferCheckedInstruction';\n }\n if (instruction.instructionType === 'approveChecked') {\n return 'SplTokenApproveCheckedInstruction';\n }\n if (instruction.instructionType === 'mintToChecked') {\n return 'SplTokenMintToCheckedInstruction';\n }\n if (instruction.instructionType === 'burnChecked') {\n return 'SplTokenBurnCheckedInstruction';\n }\n if (instruction.instructionType === 'syncNative') {\n return 'SplTokenSyncNativeInstruction';\n }\n if (instruction.instructionType === 'getAccountDataSize') {\n return 'SplTokenGetAccountDataSizeInstruction';\n }\n if (instruction.instructionType === 'initializeImmutableOwner') {\n return 'SplTokenInitializeImmutableOwnerInstruction';\n }\n if (instruction.instructionType === 'amountToUiAmount') {\n return 'SplTokenAmountToUiAmountInstruction';\n }\n if (instruction.instructionType === 'uiAmountToAmount') {\n return 'SplTokenUiAmountToAmountInstruction';\n }\n if (instruction.instructionType === 'initializeMintCloseAuthority') {\n return 'SplTokenInitializeMintCloseAuthorityInstruction';\n }\n }\n if (instruction.programName === 'stake') {\n if (instruction.instructionType === 'initialize') {\n return 'StakeInitializeInstruction';\n }\n if (instruction.instructionType === 'authorize') {\n return 'StakeAuthorizeInstruction';\n }\n if (instruction.instructionType === 'delegate') {\n return 'StakeDelegateStakeInstruction';\n }\n if (instruction.instructionType === 'split') {\n return 'StakeSplitInstruction';\n }\n if (instruction.instructionType === 'withdraw') {\n return 'StakeWithdrawInstruction';\n }\n if (instruction.instructionType === 'deactivate') {\n return 'StakeDeactivateInstruction';\n }\n if (instruction.instructionType === 'setLockup') {\n return 'StakeSetLockupInstruction';\n }\n if (instruction.instructionType === 'merge') {\n return 'StakeMergeInstruction';\n }\n if (instruction.instructionType === 'authorizeWithSeed') {\n return 'StakeAuthorizeWithSeedInstruction';\n }\n if (instruction.instructionType === 'initializeChecked') {\n return 'StakeInitializeCheckedInstruction';\n }\n if (instruction.instructionType === 'authorizeChecked') {\n return 'StakeAuthorizeCheckedInstruction';\n }\n if (instruction.instructionType === 'authorizeCheckedWithSeed') {\n return 'StakeAuthorizeCheckedWithSeedInstruction';\n }\n if (instruction.instructionType === 'setLockupChecked') {\n return 'StakeSetLockupCheckedInstruction';\n }\n if (instruction.instructionType === 'deactivateDelinquent') {\n return 'StakeDeactivateDelinquentInstruction';\n }\n if (instruction.instructionType === 'redelegate') {\n return 'StakeRedelegateInstruction';\n }\n }\n if (instruction.programName === 'system') {\n if (instruction.instructionType === 'createAccount') {\n return 'CreateAccountInstruction';\n }\n if (instruction.instructionType === 'assign') {\n return 'AssignInstruction';\n }\n if (instruction.instructionType === 'transfer') {\n return 'TransferInstruction';\n }\n if (instruction.instructionType === 'createAccountWithSeed') {\n return 'CreateAccountWithSeedInstruction';\n }\n if (instruction.instructionType === 'advanceNonceAccount') {\n return 'AdvanceNonceAccountInstruction';\n }\n if (instruction.instructionType === 'withdrawNonceAccount') {\n return 'WithdrawNonceAccountInstruction';\n }\n if (instruction.instructionType === 'initializeNonceAccount') {\n return 'InitializeNonceAccountInstruction';\n }\n if (instruction.instructionType === 'authorizeNonceAccount') {\n return 'AuthorizeNonceAccountInstruction';\n }\n if (instruction.instructionType === 'upgradeNonceAccount') {\n return 'UpgradeNonceAccountInstruction';\n }\n if (instruction.instructionType === 'allocate') {\n return 'AllocateInstruction';\n }\n if (instruction.instructionType === 'allocateWithSeed') {\n return 'AllocateWithSeedInstruction';\n }\n if (instruction.instructionType === 'assignWithSeed') {\n return 'AssignWithSeedInstruction';\n }\n if (instruction.instructionType === 'transferWithSeed') {\n return 'TransferWithSeedInstruction';\n }\n }\n if (instruction.programName === 'vote') {\n if (instruction.instructionType === 'initialize') {\n return 'VoteInitializeAccountInstruction';\n }\n if (instruction.instructionType === 'authorize') {\n return 'VoteAuthorizeInstruction';\n }\n if (instruction.instructionType === 'authorizeWithSeed') {\n return 'VoteAuthorizeWithSeedInstruction';\n }\n if (instruction.instructionType === 'authorizeCheckedWithSeed') {\n return 'VoteAuthorizeCheckedWithSeedInstruction';\n }\n if (instruction.instructionType === 'vote') {\n return 'VoteVoteInstruction';\n }\n if (instruction.instructionType === 'updatevotestate') {\n return 'VoteUpdateVoteStateInstruction';\n }\n if (instruction.instructionType === 'updatevotestateswitch') {\n return 'VoteUpdateVoteStateSwitchInstruction';\n }\n if (instruction.instructionType === 'compactupdatevotestate') {\n return 'VoteCompactUpdateVoteStateInstruction';\n }\n if (instruction.instructionType === 'compactupdatevotestateswitch') {\n return 'VoteCompactUpdateVoteStateSwitchInstruction';\n }\n if (instruction.instructionType === 'withdraw') {\n return 'VoteWithdrawInstruction';\n }\n if (instruction.instructionType === 'updateValidatorIdentity') {\n return 'VoteUpdateValidatorIdentityInstruction';\n }\n if (instruction.instructionType === 'updateCommission') {\n return 'VoteUpdateCommissionInstruction';\n }\n if (instruction.instructionType === 'voteSwitch') {\n return 'VoteVoteSwitchInstruction';\n }\n if (instruction.instructionType === 'authorizeChecked') {\n return 'VoteAuthorizeCheckedInstruction';\n }\n }\n }\n return 'GenericInstruction';\n },\n },\n CreateLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n payerAccount: resolveAccount('payerAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n ExtendLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n payerAccount: resolveAccount('payerAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n FreezeLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n },\n DeactivateLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n },\n CloseLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n recipient: resolveAccount('recipient'),\n },\n BpfLoaderWriteInstruction: {\n account: resolveAccount('account'),\n },\n BpfLoaderFinalizeInstruction: {\n account: resolveAccount('account'),\n },\n BpfUpgradeableLoaderInitializeBufferInstruction: {\n account: resolveAccount('account'),\n },\n BpfUpgradeableLoaderWriteInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n },\n BpfUpgradeableLoaderDeployWithMaxDataLenInstruction: {\n authority: resolveAccount('authority'),\n bufferAccount: resolveAccount('bufferAccount'),\n payerAccount: resolveAccount('payerAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n },\n BpfUpgradeableLoaderUpgradeInstruction: {\n authority: resolveAccount('authority'),\n bufferAccount: resolveAccount('bufferAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n },\n BpfUpgradeableLoaderSetAuthorityInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n BpfUpgradeableLoaderSetAuthorityCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n BpfUpgradeableLoaderCloseInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n programAccount: resolveAccount('programAccount'),\n recipient: resolveAccount('recipient'),\n },\n BpfUpgradeableLoaderExtendProgramInstruction: {\n payerAccount: resolveAccount('payerAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n SplAssociatedTokenCreateInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n source: resolveAccount('source'),\n systemProgram: resolveAccount('systemProgram'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplAssociatedTokenCreateIdempotentInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n source: resolveAccount('source'),\n systemProgram: resolveAccount('systemProgram'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplAssociatedTokenRecoverNestedInstruction: {\n destination: resolveAccount('destination'),\n nestedMint: resolveAccount('nestedMint'),\n nestedOwner: resolveAccount('nestedOwner'),\n nestedSource: resolveAccount('nestedSource'),\n ownerMint: resolveAccount('ownerMint'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplTokenInitializeMintInstruction: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n },\n SplTokenInitializeMint2Instruction: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n },\n SplTokenInitializeAccountInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeAccount2Instruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeAccount3Instruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeMultisigInstruction: {\n multisig: resolveAccount('multisig'),\n },\n SplTokenInitializeMultisig2Instruction: {\n multisig: resolveAccount('multisig'),\n },\n SplTokenTransferInstruction: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenApproveInstruction: {\n delegate: resolveAccount('delegate'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenRevokeInstruction: {\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenSetAuthorityInstruction: {\n authority: resolveAccount('authority'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n SplTokenMintToInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n multisigMintAuthority: resolveAccount('multisigMintAuthority'),\n },\n SplTokenBurnInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenCloseAccountInstruction: {\n account: resolveAccount('account'),\n destination: resolveAccount('destination'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenFreezeAccountInstruction: {\n account: resolveAccount('account'),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenThawAccountInstruction: {\n account: resolveAccount('account'),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenTransferCheckedInstruction: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenApproveCheckedInstruction: {\n delegate: resolveAccount('delegate'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenMintToCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n multisigMintAuthority: resolveAccount('multisigMintAuthority'),\n },\n SplTokenBurnCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenSyncNativeInstruction: {\n account: resolveAccount('account'),\n },\n SplTokenGetAccountDataSizeInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenAmountToUiAmountInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenUiAmountToAmountInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeMintCloseAuthorityInstruction: {\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 StakeInitializeInstruction: {\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeInstruction: {\n authority: resolveAccount('authority'),\n custodian: resolveAccount('custodian'),\n newAuthority: resolveAccount('newAuthority'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeDelegateStakeInstruction: {\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeConfigAccount: resolveAccount('stakeConfigAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeSplitInstruction: {\n newSplitAccount: resolveAccount('newSplitAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeWithdrawInstruction: {\n destination: resolveAccount('destination'),\n stakeAccount: resolveAccount('stakeAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n StakeDeactivateInstruction: {\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeSetLockupInstruction: {\n custodian: resolveAccount('custodian'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeMergeInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeAuthorizeWithSeedInstruction: {\n authorityBase: resolveAccount('authorityBase'),\n authorityOwner: resolveAccount('authorityOwner'),\n custodian: resolveAccount('custodian'),\n newAuthorized: resolveAccount('newAuthorized'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeInitializeCheckedInstructionDataAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeAuthorizeCheckedInstruction: {\n authority: resolveAccount('authority'),\n custodian: resolveAccount('custodian'),\n newAuthority: resolveAccount('newAuthority'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeAuthorizeCheckedWithSeedInstruction: {\n authorityBase: resolveAccount('authorityBase'),\n authorityOwner: resolveAccount('authorityOwner'),\n custodian: resolveAccount('custodian'),\n newAuthorized: resolveAccount('newAuthorized'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeSetLockupCheckedInstruction: {\n custodian: resolveAccount('custodian'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeDeactivateDelinquentInstruction: {\n referenceVoteAccount: resolveAccount('referenceVoteAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeRedelegateInstruction: {\n newStakeAccount: resolveAccount('newStakeAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeConfigAccount: resolveAccount('stakeConfigAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n CreateAccountInstruction: {\n newAccount: resolveAccount('newAccount'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n AssignInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n TransferInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n },\n CreateAccountWithSeedInstruction: {\n base: resolveAccount('base'),\n owner: resolveAccount('owner'),\n seed: resolveAccount('seed'),\n },\n AdvanceNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n WithdrawNonceAccountInstruction: {\n destination: resolveAccount('destination'),\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n InitializeNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n AuthorizeNonceAccountInstruction: {\n newAuthorized: resolveAccount('newAuthorized'),\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n UpgradeNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n AllocateInstruction: {\n account: resolveAccount('account'),\n },\n AllocateWithSeedInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n AssignWithSeedInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n TransferWithSeedInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n sourceOwner: resolveAccount('sourceOwner'),\n },\n VoteInitializeAccountInstruction: {\n authorizedVoter: resolveAccount('authorizedVoter'),\n authorizedWithdrawer: resolveAccount('authorizedWithdrawer'),\n node: resolveAccount('node'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeInstruction: {\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeWithSeedInstruction: {\n authorityOwner: resolveAccount('authorityOwner'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeCheckedWithSeedInstruction: {\n authorityOwner: resolveAccount('authorityOwner'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteVoteInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteUpdateVoteStateInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteUpdateVoteStateSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteCompactUpdateVoteStateInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteCompactUpdateVoteStateSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteWithdrawInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteUpdateValidatorIdentityInstruction: {\n newValidatorIdentity: resolveAccount('newValidatorIdentity'),\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteUpdateCommissionInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n VoteVoteSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteAuthorizeCheckedInstruction: {\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n};\n","/* eslint-disable sort-keys-fix/sort-keys-fix */\nexport const transactionTypeDefs = /* GraphQL */ `\n type TransactionStatusOk {\n Ok: String\n }\n type TransactionStatusErr {\n Err: String\n }\n union TransactionStatus = TransactionStatusOk | TransactionStatusErr\n\n type TransactionLoadedAddresses {\n readonly: [String]\n writable: [String]\n }\n\n type TransactionInnerInstruction {\n index: Int\n instructions: [TransactionInstruction]\n }\n\n type TransactionMeta {\n computeUnitsConsumed: BigInt\n err: String\n fee: BigInt\n innerInstructions: [TransactionInnerInstruction]\n loadedAddresses: TransactionLoadedAddresses\n logMessages: [String]\n postBalances: [BigInt]\n postTokenBalances: [TokenBalance]\n preBalances: [BigInt]\n preTokenBalances: [TokenBalance]\n returnData: ReturnData\n rewards: [Reward]\n status: TransactionStatus\n }\n\n type TransactionMessageAccountKey {\n pubkey: Address\n signer: Boolean\n source: String\n writable: Boolean\n }\n\n type TransactionMessageAddressTableLookup {\n accountKey: Address\n readableIndexes: [Int]\n writableIndexes: [Int]\n }\n\n type TransactionMessageHeader {\n numReadonlySignedAccounts: Int\n numReadonlyUnsignedAccounts: Int\n numRequiredSignatures: Int\n }\n\n type TransactionMessage {\n accountKeys: [TransactionMessageAccountKey]\n addressTableLookups: [TransactionMessageAddressTableLookup]\n header: TransactionMessageHeader\n instructions: [TransactionInstruction]\n recentBlockhash: String\n }\n\n \"\"\"\n Transaction interface\n \"\"\"\n interface Transaction {\n blockTime: String\n meta: TransactionMeta\n slot: BigInt\n version: String\n }\n\n \"\"\"\n A transaction with base58 encoded data\n \"\"\"\n type TransactionBase58 implements Transaction {\n blockTime: String\n data: Base58EncodedBytes\n meta: TransactionMeta\n slot: BigInt\n version: String\n }\n\n \"\"\"\n A transaction with base64 encoded data\n \"\"\"\n type TransactionBase64 implements Transaction {\n blockTime: String\n data: Base64EncodedBytes\n meta: TransactionMeta\n slot: BigInt\n version: String\n }\n\n \"\"\"\n A transaction with JSON encoded data\n \"\"\"\n type TransactionDataParsed {\n message: TransactionMessage\n signatures: [String]\n }\n type TransactionParsed implements Transaction {\n blockTime: String\n data: TransactionDataParsed\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"]}