@solana/rpc-graphql 2.0.0-experimental.21e994f → 2.0.0-experimental.2200007
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +1088 -30
- package/dist/index.browser.cjs +2997 -51
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.js +2993 -52
- package/dist/index.browser.js.map +1 -1
- package/dist/index.native.js +2995 -50
- package/dist/index.native.js.map +1 -1
- package/dist/index.node.cjs +2996 -46
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.js +2995 -50
- package/dist/index.node.js.map +1 -1
- package/dist/types/context.d.ts +5 -6
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/index.d.ts +8 -1
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/loaders/account.d.ts +4 -0
- package/dist/types/loaders/account.d.ts.map +1 -0
- package/dist/types/loaders/block.d.ts +4 -0
- package/dist/types/loaders/block.d.ts.map +1 -0
- package/dist/types/loaders/index.d.ts +6 -0
- package/dist/types/loaders/index.d.ts.map +1 -0
- package/dist/types/loaders/loader.d.ts +65 -0
- package/dist/types/loaders/loader.d.ts.map +1 -0
- package/dist/types/loaders/program-accounts.d.ts +4 -0
- package/dist/types/loaders/program-accounts.d.ts.map +1 -0
- package/dist/types/loaders/transaction.d.ts +4 -0
- package/dist/types/loaders/transaction.d.ts.map +1 -0
- package/dist/types/resolvers/account.d.ts +232 -0
- package/dist/types/resolvers/account.d.ts.map +1 -0
- package/dist/types/resolvers/block.d.ts +20 -0
- package/dist/types/resolvers/block.d.ts.map +1 -0
- package/dist/types/resolvers/index.d.ts +3 -0
- package/dist/types/resolvers/index.d.ts.map +1 -0
- package/dist/types/resolvers/instruction.d.ts +1968 -0
- package/dist/types/resolvers/instruction.d.ts.map +1 -0
- package/dist/types/resolvers/program-accounts.d.ts +11 -0
- package/dist/types/resolvers/program-accounts.d.ts.map +1 -0
- package/dist/types/resolvers/resolve-info/account.d.ts +14 -0
- package/dist/types/resolvers/resolve-info/account.d.ts.map +1 -0
- package/dist/types/resolvers/resolve-info/index.d.ts +3 -0
- package/dist/types/resolvers/resolve-info/index.d.ts.map +1 -0
- package/dist/types/resolvers/resolve-info/visitor.d.ts +18 -0
- package/dist/types/resolvers/resolve-info/visitor.d.ts.map +1 -0
- package/dist/types/resolvers/root.d.ts +3 -0
- package/dist/types/resolvers/root.d.ts.map +1 -0
- package/dist/types/resolvers/transaction.d.ts +19 -0
- package/dist/types/resolvers/transaction.d.ts.map +1 -0
- package/dist/types/resolvers/types.d.ts +101 -0
- package/dist/types/resolvers/types.d.ts.map +1 -0
- package/dist/types/schema/account.d.ts +2 -0
- package/dist/types/schema/account.d.ts.map +1 -0
- package/dist/types/schema/block.d.ts +2 -0
- package/dist/types/schema/block.d.ts.map +1 -0
- package/dist/types/schema/index.d.ts +2 -0
- package/dist/types/schema/index.d.ts.map +1 -0
- package/dist/types/schema/instruction.d.ts +2 -0
- package/dist/types/schema/instruction.d.ts.map +1 -0
- package/dist/types/schema/root.d.ts +2 -0
- package/dist/types/schema/root.d.ts.map +1 -0
- package/dist/types/schema/transaction.d.ts +2 -0
- package/dist/types/schema/transaction.d.ts.map +1 -0
- package/dist/types/schema/types.d.ts +2 -0
- package/dist/types/schema/types.d.ts.map +1 -0
- package/package.json +14 -36
- package/dist/types/cache.d.ts +0 -7
- package/dist/types/rpc.d.ts +0 -13
package/dist/index.native.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/rpc.ts","../src/cache.ts","../src/context.ts"],"names":["value"],"mappings":";AAEA,SAAS,SAAS,mBAAmB,qBAA6B;;;ACKlE,IAAM,gBAA2C,CAAC;AAElD,IAAM,iBAAiB,CAAC,UACpB,KAAK,UAAU,OAAO,CAAC,GAAGA,WAAU;AAChC,MAAI,OAAOA,WAAU,UAAU;AAC3B,WAAOA,OAAM,SAAS,IAAI;AAAA,EAC9B;AACA,SAAOA;AACX,CAAC;AAEL,IAAM,aAAa,CAAC,UAChB,KAAK,MAAM,OAAO,CAAC,GAAGA,WAAU;AAC5B,MAAI,OAAOA,WAAU,YAAY,QAAQ,KAAKA,MAAK,GAAG;AAClD,WAAO,OAAOA,OAAM,MAAM,GAAG,EAAE,CAAC;AAAA,EACpC;AACA,SAAOA;AACX,CAAC;AAEL,IAAM,WAAW,CAAC,KAAsB,cACpC,gBAAgB,eAAe,GAAG,CAAC,IAAI,eAAe,SAAS,CAAC;AAE7D,SAAS,qBAAmC;AAC/C,SAAO,QACD;AAAA;AAAA,IAEI,OAAO,MAAM;AAET,eAAS,IAAI,aAAa,SAAS,GAAG,KAAK,GAAG,KAAK;AAC/C,cAAM,aAAa,aAAa,IAAI,CAAC;AACrC,YAAI,cAAc,WAAW,WAAW,eAAe,GAAG;AACtD,uBAAa,WAAW,UAAU;AAAA,QACtC;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,KAAK,CAAC,KAAK,cAAc;AACrB,YAAM,QAAQ,aAAa,QAAQ,SAAS,KAAK,SAAS,CAAC;AAC3D,aAAO,UAAU,OAAO,OAAO,WAAW,KAAK;AAAA,IACnD;AAAA,IACA,QAAQ,CAAC,KAAK,WAAW,UAAU;AAC/B,mBAAa,QAAQ,SAAS,KAAK,SAAS,GAAG,eAAe,KAAK,CAAC;AAAA,IACxE;AAAA,EACJ,IACA;AAAA;AAAA,IAEI,OAAO,MAAM;AACT,aAAO,KAAK,aAAa,EAAE,QAAQ,SAAO,OAAO,cAAc,GAAG,CAAC;AAAA,IACvE;AAAA,IACA,KAAK,CAAC,KAAK,cAAc;AACrB,YAAM,QAAQ,cAAc,SAAS,KAAK,SAAS,CAAC;AACpD,aAAO,UAAU,SAAY,OAAO,WAAW,KAAK;AAAA,IACxD;AAAA,IACA,QAAQ,CAAC,KAAK,WAAW,UAAU;AAC/B,oBAAc,SAAS,KAAK,SAAS,CAAC,IAAI,eAAe,KAAK;AAAA,IAClE;AAAA,EACJ;AACV;;;ACpDO,SAAS,2BAA2B,KAA+C;AACtF,QAAM,QAAQ,mBAAmB;AACjC,SAAO,EAAE,OAAO,IAAI;AACxB;;;AFEO,SAAS,iBAAiB,KAAwC;AACrE,QAAM,UAAU,2BAA2B,GAAG;AAC9C,QAAM,SAAS,IAAI,cAAc;AAAA,IAC7B,OAAO,IAAI,kBAAkB;AAAA,MACzB,QAAQ;AAAA;AAAA,MAER;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AAAA,IACD,OAAO,CAAC;AAAA,EACZ,CAAC;AACD,SAAO;AAAA,IACH;AAAA,IACA,MAAM,MAAM,QAAyB,gBAA2D;AAC5F,YAAM,SAAS,MAAM,QAAQ;AAAA,QACzB,cAAc,KAAK;AAAA,QACnB,QAAQ,KAAK;AAAA,QACb;AAAA,QACA;AAAA,MACJ,CAAC;AACD,WAAK,QAAQ,MAAM,MAAM;AACzB,aAAO;AAAA,IACX;AAAA,IACA;AAAA,EACJ;AACJ","sourcesContent":["import { SolanaRpcMethods } from '@solana/rpc-core';\nimport { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';\nimport { graphql, GraphQLObjectType, GraphQLSchema, Source } from 'graphql';\n\nimport { createSolanaGraphQLContext, RpcGraphQLContext } from './context';\n\nexport interface RpcGraphQL {\n context: RpcGraphQLContext;\n query(\n source: string | Source,\n variableValues?: { readonly [variable: string]: unknown }\n ): ReturnType<typeof graphql>;\n schema: GraphQLSchema;\n}\n\nexport function createRpcGraphQL(rpc: Rpc<SolanaRpcMethods>): RpcGraphQL {\n const context = createSolanaGraphQLContext(rpc);\n const schema = new GraphQLSchema({\n query: new GraphQLObjectType({\n fields: {\n /** Root queries */\n },\n name: 'RootQuery',\n }),\n types: [],\n });\n return {\n context,\n async query(source: string | Source, variableValues?: { readonly [variable: string]: unknown }) {\n const result = await graphql({\n contextValue: this.context,\n schema: this.schema,\n source,\n variableValues,\n });\n this.context.cache.flush();\n return result;\n },\n schema,\n };\n}\n","export interface GraphQLCache {\n flush(): void;\n get(key: string | bigint, variables: unknown): unknown | null;\n insert(key: string | bigint, variables: unknown, value: unknown): void;\n}\n\n// Basic in-memory cache for Node.js\nconst inMemoryCache: { [key: string]: string } = {};\n\nconst stringifyValue = (value: unknown) =>\n JSON.stringify(value, (_, value) => {\n if (typeof value === 'bigint') {\n return value.toString() + 'n';\n }\n return value;\n });\n\nconst parseValue = (value: string) =>\n JSON.parse(value, (_, value) => {\n if (typeof value === 'string' && /\\d+n$/.test(value)) {\n return BigInt(value.slice(0, -1));\n }\n return value;\n });\n\nconst cacheKey = (key: string | bigint, variables: unknown): string =>\n `GraphQLCache:${stringifyValue(key)}:${stringifyValue(variables)}`;\n\nexport function createGraphQLCache(): GraphQLCache {\n return __BROWSER__\n ? {\n // Browser\n flush: () => {\n // Clear all entries from the localStorage related to this cache\n for (let i = localStorage.length - 1; i >= 0; i--) {\n const storageKey = localStorage.key(i);\n if (storageKey && storageKey.startsWith('GraphQLCache:')) {\n localStorage.removeItem(storageKey);\n }\n }\n },\n get: (key, variables) => {\n const value = localStorage.getItem(cacheKey(key, variables));\n return value === null ? null : parseValue(value);\n },\n insert: (key, variables, value) => {\n localStorage.setItem(cacheKey(key, variables), stringifyValue(value));\n },\n }\n : {\n // Node.js\n flush: () => {\n Object.keys(inMemoryCache).forEach(key => delete inMemoryCache[key]);\n },\n get: (key, variables) => {\n const value = inMemoryCache[cacheKey(key, variables)];\n return value === undefined ? null : parseValue(value);\n },\n insert: (key, variables, value) => {\n inMemoryCache[cacheKey(key, variables)] = stringifyValue(value);\n },\n };\n}\n","import { SolanaRpcMethods } from '@solana/rpc-core';\nimport { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';\n\nimport { createGraphQLCache, GraphQLCache } from './cache';\n\nexport interface RpcGraphQLContext {\n cache: GraphQLCache;\n rpc: Rpc<SolanaRpcMethods>;\n}\n\nexport function createSolanaGraphQLContext(rpc: Rpc<SolanaRpcMethods>): RpcGraphQLContext {\n const cache = createGraphQLCache();\n return { cache, rpc };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/loaders/account.ts","../src/loaders/loader.ts","../src/loaders/block.ts","../src/loaders/program-accounts.ts","../src/loaders/transaction.ts","../src/context.ts","../src/resolvers/resolve-info/account.ts","../src/resolvers/resolve-info/visitor.ts","../src/resolvers/account.ts","../src/resolvers/transaction.ts","../src/resolvers/block.ts","../src/resolvers/instruction.ts","../src/resolvers/program-accounts.ts","../src/resolvers/root.ts","../src/resolvers/types.ts","../src/resolvers/index.ts","../src/schema/account.ts","../src/schema/block.ts","../src/schema/instruction.ts","../src/schema/root.ts","../src/schema/transaction.ts","../src/schema/types.ts","../src/schema/index.ts"],"names":["DataLoader","applyDefaultArgs","onlyFieldsRequested","info","programName","programId","instructionType"],"mappings":"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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAtC,IAAM;AAAA;AAAA,EAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACGpC,IAAM;AAAA;AAAA,EAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACH1C,IAAM;AAAA;AAAA,EAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCnC,IAAM;AAAA;AAAA,EAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACD1C,IAAM;AAAA;AAAA,EAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACOnC,SAAS,8BAA8B;AAC1C,SAAO,CAAC,iBAAiB,eAAe,qBAAqB,cAAc,cAAc,mBAAmB;AAChH;;;AvBQO,SAAS,iBAAiB,KAAkC;AAC/D,QAAM,SAAS,qBAAqB;AAAA,IAChC,WAAW,6BAA6B;AAAA,IACxC,UAAU,4BAA4B;AAAA,EAC1C,CAAC;AACD,SAAO;AAAA,IACH,MAAM,MAAM,QAAQ,gBAAiB;AACjC,YAAM,eAAe,2BAA2B,GAAG;AACnD,aAAO,QAAQ;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AACJ","sourcesContent":["import { makeExecutableSchema } from '@graphql-tools/schema';\nimport type { GetAccountInfoApi, GetBlockApi, GetProgramAccountsApi, GetTransactionApi, Rpc } from '@solana/rpc';\nimport { graphql } from 'graphql';\n\nimport { createSolanaGraphQLContext } from './context';\nimport { createSolanaGraphQLResolvers } from './resolvers';\nimport { createSolanaGraphQLTypeDefs } from './schema';\n\ntype RpcMethods = GetAccountInfoApi & GetBlockApi & GetProgramAccountsApi & GetTransactionApi;\n\nexport interface RpcGraphQL {\n query(\n source: Parameters<typeof graphql>[0]['source'],\n variableValues?: Parameters<typeof graphql>[0]['variableValues'],\n ): ReturnType<typeof graphql>;\n}\n\nexport function createRpcGraphQL(rpc: Rpc<RpcMethods>): RpcGraphQL {\n const schema = makeExecutableSchema({\n resolvers: createSolanaGraphQLResolvers(),\n typeDefs: createSolanaGraphQLTypeDefs(),\n });\n return {\n async query(source, variableValues?) {\n const contextValue = createSolanaGraphQLContext(rpc);\n return graphql({\n contextValue,\n schema,\n source,\n variableValues,\n });\n },\n };\n}\n","import type { GetAccountInfoApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { AccountLoader, AccountLoaderArgs, AccountLoaderValue, cacheKeyFn } from './loader';\n\nfunction applyDefaultArgs({\n address,\n commitment,\n dataSlice,\n encoding = 'base64', // Fixed by batch loader\n minContextSlot,\n}: AccountLoaderArgs): AccountLoaderArgs {\n return {\n address,\n commitment,\n dataSlice,\n encoding,\n minContextSlot,\n };\n}\n\nasync function loadAccount(\n rpc: Rpc<GetAccountInfoApi>,\n { address, ...config }: AccountLoaderArgs,\n): Promise<AccountLoaderValue> {\n return await rpc\n .getAccountInfo(address, config)\n .send()\n .then(res => res.value);\n}\n\nfunction createAccountBatchLoadFn(rpc: Rpc<GetAccountInfoApi>) {\n const resolveAccountUsingRpc = loadAccount.bind(null, rpc);\n return async (accountQueryArgs: readonly AccountLoaderArgs[]) =>\n Promise.all(accountQueryArgs.map(async args => resolveAccountUsingRpc(applyDefaultArgs(args))));\n}\n\nexport function createAccountLoader(rpc: Rpc<GetAccountInfoApi>): AccountLoader {\n const loader = new DataLoader(createAccountBatchLoadFn(rpc), { cacheKeyFn });\n return {\n load: async args => loader.load(applyDefaultArgs(args)),\n loadMany: async args => loader.loadMany(args.map(applyDefaultArgs)),\n };\n}\n","import type { Address } from '@solana/addresses';\nimport type { Signature } from '@solana/keys';\nimport type { GetAccountInfoApi, GetBlockApi, GetProgramAccountsApi, GetTransactionApi } from '@solana/rpc';\nimport type { Commitment, Slot } from '@solana/rpc-types';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport stringify from 'json-stable-stringify';\n\nexport type LoadFn<TArgs, T> = (args: TArgs) => Promise<T>;\nexport type LoadManyFn<TArgs, T> = (args: TArgs[]) => Promise<(T | Error)[]>;\nexport type Loader<TArgs, T> = { load: LoadFn<TArgs, T>; loadMany: LoadManyFn<TArgs, T> };\n\n// FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n// export type AccountLoaderArgs = { address: Parameters<GetAccountInfoApi['getAccountInfo']>[0] } & Parameters<\n// GetAccountInfoApi['getAccountInfo']\n// >[1];\nexport type AccountLoaderArgs = {\n address: Address;\n commitment?: Commitment;\n dataSlice?: { offset: number; length: number };\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n minContextSlot?: Slot;\n};\nexport type AccountLoaderValue = ReturnType<GetAccountInfoApi['getAccountInfo']>['value'] | null;\nexport type AccountLoader = Loader<AccountLoaderArgs, AccountLoaderValue>;\n\n// FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n// export type BlockLoaderArgs = { slot: Parameters<GetBlockApi['getBlock']>[0] } & Parameters<GetBlockApi['getBlock']>[1];\nexport type BlockLoaderArgs = {\n commitment?: Omit<Commitment, 'processed'>;\n encoding?: 'base58' | 'base64' | 'json' | 'jsonParsed';\n maxSupportedTransactionVersion?: 0 | 'legacy';\n rewards?: boolean;\n slot: Slot;\n transactionDetails?: 'accounts' | 'full' | 'none' | 'signatures';\n};\nexport type BlockLoaderValue = ReturnType<GetBlockApi['getBlock']> | null;\nexport type BlockLoader = Loader<BlockLoaderArgs, BlockLoaderValue>;\n\n// FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n// export type ProgramAccountsLoaderArgs = {\n// programAddress: Parameters<GetProgramAccountsApi['getProgramAccounts']>[0];\n// } & Parameters<GetProgramAccountsApi['getProgramAccounts']>[1];\nexport type ProgramAccountsLoaderArgs = {\n commitment?: Commitment;\n dataSlice?: { offset: number; length: number };\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n filters?: readonly { memcmp: { offset: number; bytes: string } }[];\n minContextSlot?: Slot;\n programAddress: Address;\n};\nexport type ProgramAccountsLoaderValue = ReturnType<GetProgramAccountsApi['getProgramAccounts']> | null;\nexport type ProgramAccountsLoader = Loader<ProgramAccountsLoaderArgs, ProgramAccountsLoaderValue>;\n\n// FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n// export type TransactionLoaderArgs = { signature: Parameters<GetTransactionApi['getTransaction']>[0] } & Parameters<\n// GetTransactionApi['getTransaction']\n// >[1];\nexport type TransactionLoaderArgs = {\n commitment?: Commitment;\n encoding?: 'base58' | 'base64' | 'json' | 'jsonParsed';\n signature: Signature;\n};\nexport type TransactionLoaderValue = ReturnType<GetTransactionApi['getTransaction']> | null;\nexport type TransactionLoader = Loader<TransactionLoaderArgs, TransactionLoaderValue>;\n\nexport type RpcGraphQLLoaders = {\n account: AccountLoader;\n block: BlockLoader;\n programAccounts: ProgramAccountsLoader;\n transaction: TransactionLoader;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction replacer(_: any, value: any) {\n if (typeof value === 'bigint') {\n return value.toString() + 'n';\n }\n return value;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const cacheKeyFn = (obj: any) => stringify(obj, { replacer });\n","import type { GetBlockApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { BlockLoader, BlockLoaderArgs, BlockLoaderValue, cacheKeyFn } from './loader';\n\nfunction applyDefaultArgs({\n slot,\n commitment,\n encoding = 'jsonParsed',\n maxSupportedTransactionVersion = 0,\n rewards,\n transactionDetails = 'full',\n}: BlockLoaderArgs): BlockLoaderArgs {\n return {\n commitment,\n encoding,\n maxSupportedTransactionVersion,\n rewards,\n slot,\n transactionDetails,\n };\n}\n\nasync function loadBlock(rpc: Rpc<GetBlockApi>, { slot, ...config }: BlockLoaderArgs): Promise<BlockLoaderValue> {\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n return await rpc\n .getBlock(\n slot,\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n config,\n )\n .send();\n}\n\nfunction createBlockBatchLoadFn(rpc: Rpc<GetBlockApi>) {\n const resolveBlockUsingRpc = loadBlock.bind(null, rpc);\n return async (blockQueryArgs: readonly BlockLoaderArgs[]) =>\n Promise.all(blockQueryArgs.map(async args => resolveBlockUsingRpc(applyDefaultArgs(args))));\n}\n\nexport function createBlockLoader(rpc: Rpc<GetBlockApi>): BlockLoader {\n const loader = new DataLoader(createBlockBatchLoadFn(rpc), { cacheKeyFn });\n return {\n load: async args => loader.load(applyDefaultArgs(args)),\n loadMany: async args => loader.loadMany(args.map(applyDefaultArgs)),\n };\n}\n","import type { GetProgramAccountsApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { cacheKeyFn, ProgramAccountsLoader, ProgramAccountsLoaderArgs, ProgramAccountsLoaderValue } from './loader';\n\nfunction applyDefaultArgs({\n commitment,\n dataSlice,\n encoding = 'jsonParsed',\n filters,\n minContextSlot,\n programAddress,\n}: ProgramAccountsLoaderArgs): ProgramAccountsLoaderArgs {\n return {\n commitment,\n dataSlice,\n encoding,\n filters,\n minContextSlot,\n programAddress,\n };\n}\n\nasync function loadProgramAccounts(\n rpc: Rpc<GetProgramAccountsApi>,\n { programAddress, ...config }: ProgramAccountsLoaderArgs,\n): Promise<ProgramAccountsLoaderValue> {\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n return await rpc\n .getProgramAccounts(\n programAddress,\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n config,\n )\n .send();\n}\n\nfunction createProgramAccountsBatchLoadFn(rpc: Rpc<GetProgramAccountsApi>) {\n const resolveProgramAccountsUsingRpc = loadProgramAccounts.bind(null, rpc);\n return async (programAccountsQueryArgs: readonly ProgramAccountsLoaderArgs[]) =>\n Promise.all(programAccountsQueryArgs.map(async args => resolveProgramAccountsUsingRpc(applyDefaultArgs(args))));\n}\n\nexport function createProgramAccountsLoader(rpc: Rpc<GetProgramAccountsApi>): ProgramAccountsLoader {\n const loader = new DataLoader(createProgramAccountsBatchLoadFn(rpc), { cacheKeyFn });\n return {\n load: async args => loader.load(applyDefaultArgs(args)),\n loadMany: async args => loader.loadMany(args.map(applyDefaultArgs)),\n };\n}\n","import type { GetTransactionApi, Rpc } from '@solana/rpc';\nimport DataLoader from 'dataloader';\n\nimport { cacheKeyFn, TransactionLoader, TransactionLoaderArgs, TransactionLoaderValue } from './loader';\n\nfunction applyDefaultArgs({\n commitment,\n encoding = 'jsonParsed',\n signature,\n}: TransactionLoaderArgs): TransactionLoaderArgs {\n return {\n commitment,\n encoding,\n signature,\n };\n}\n\nasync function loadTransaction(\n rpc: Rpc<GetTransactionApi>,\n { signature, ...config }: TransactionLoaderArgs,\n): Promise<TransactionLoaderValue> {\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n return await rpc\n .getTransaction(\n signature,\n // @ts-expect-error FIX ME: https://github.com/microsoft/TypeScript/issues/43187\n config,\n )\n .send();\n}\n\nfunction createTransactionBatchLoadFn(rpc: Rpc<GetTransactionApi>) {\n const resolveTransactionUsingRpc = loadTransaction.bind(null, rpc);\n return async (transactionQueryArgs: readonly TransactionLoaderArgs[]) =>\n Promise.all(transactionQueryArgs.map(async args => resolveTransactionUsingRpc(applyDefaultArgs(args))));\n}\n\nexport function createTransactionLoader(rpc: Rpc<GetTransactionApi>): TransactionLoader {\n const loader = new DataLoader(createTransactionBatchLoadFn(rpc), { cacheKeyFn });\n return {\n load: async args => loader.load(applyDefaultArgs(args)),\n loadMany: async args => loader.loadMany(args.map(applyDefaultArgs)),\n };\n}\n","import type { createRpcGraphQL } from './index';\nimport {\n createAccountLoader,\n createBlockLoader,\n createProgramAccountsLoader,\n createTransactionLoader,\n RpcGraphQLLoaders,\n} from './loaders';\n\nexport type Rpc = Parameters<typeof createRpcGraphQL>[0];\n\nexport interface RpcGraphQLContext {\n loaders: RpcGraphQLLoaders;\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 };\n}\n","import { Address } from '@solana/addresses';\nimport { Commitment, DataSlice, Slot } from '@solana/rpc-types';\nimport { ArgumentNode, GraphQLResolveInfo, isInterfaceType } from 'graphql';\n\nimport { AccountLoaderArgs } from '../../loaders';\nimport { injectableRootVisitor, onlyFieldsRequested } from './visitor';\n\nfunction findArgumentNodeByName(argumentNodes: readonly ArgumentNode[], name: string): ArgumentNode | undefined {\n return argumentNodes.find(argumentNode => argumentNode.name.value === name);\n}\n\nfunction parseAccountEncodingArgument(\n argumentNodes: readonly ArgumentNode[],\n variableValues: {\n [variable: string]: unknown;\n },\n): AccountLoaderArgs['encoding'] | undefined {\n const argumentNode = findArgumentNodeByName(argumentNodes, 'encoding');\n if (argumentNode) {\n if (argumentNode.value.kind === 'EnumValue') {\n if (argumentNode.value.value === 'BASE_58') {\n return 'base58';\n }\n if (argumentNode.value.value === 'BASE_64') {\n return 'base64';\n }\n if (argumentNode.value.value === 'BASE_64_ZSTD') {\n return 'base64+zstd';\n }\n }\n if (argumentNode.value.kind === 'Variable') {\n return variableValues[argumentNode.value.name.value] as AccountLoaderArgs['encoding'];\n }\n } else {\n return undefined;\n }\n}\n\nfunction parseAccountDataSliceArgument(\n argumentNodes: readonly ArgumentNode[],\n variableValues: { [variable: string]: unknown },\n): AccountLoaderArgs['dataSlice'] {\n const argumentNode = findArgumentNodeByName(argumentNodes, 'dataSlice');\n if (argumentNode) {\n if (argumentNode.value.kind === 'ObjectValue') {\n const offsetArg = argumentNode.value.fields?.find(field => field.name.value === 'offset');\n const lengthArg = argumentNode.value.fields?.find(field => field.name.value === 'length');\n const length =\n lengthArg?.value.kind === 'IntValue'\n ? parseInt(lengthArg.value.value)\n : lengthArg?.value.kind === 'Variable'\n ? (variableValues[lengthArg.value.name.value] as number)\n : undefined;\n const offset =\n offsetArg?.value.kind === 'IntValue'\n ? parseInt(offsetArg.value.value)\n : offsetArg?.value.kind === 'Variable'\n ? (variableValues[offsetArg.value.name.value] as number)\n : undefined;\n return length !== undefined && length !== null && offset !== undefined && offset !== null\n ? { length, offset }\n : undefined;\n }\n if (argumentNode.value.kind === 'Variable') {\n return variableValues[argumentNode.value.name.value] as DataSlice;\n }\n } else {\n return undefined;\n }\n}\n\n/**\n * Build a set of account loader args by inspecting which fields have\n * been requested in the query (ie. `data` or inline fragments).\n */\nexport function buildAccountLoaderArgSetFromResolveInfo(\n args: {\n address: Address;\n commitment?: Commitment;\n minContextSlot?: Slot;\n },\n info: GraphQLResolveInfo,\n): AccountLoaderArgs[] {\n const argSet: AccountLoaderArgs[] = [args];\n\n function buildArgSetWithVisitor(root: Parameters<typeof injectableRootVisitor>[1]) {\n injectableRootVisitor(info, root, {\n fieldNodeOperation(info, node) {\n if (node.name.value !== 'data') {\n return;\n }\n // At least `encoding` is required on the `data` field.\n if (node.arguments) {\n const { variableValues } = info;\n const encoding = parseAccountEncodingArgument(node.arguments, variableValues);\n const dataSlice = parseAccountDataSliceArgument(node.arguments, variableValues);\n argSet.push({ ...args, dataSlice, encoding });\n }\n },\n fragmentSpreadNodeOperation(_info, fragment) {\n buildArgSetWithVisitor(fragment);\n },\n inlineFragmentNodeOperation(info, node) {\n const { schema } = info;\n const accountInterface = schema.getType('Account');\n if (\n isInterfaceType(accountInterface) &&\n // Recursively check if the inline fragment requests any\n // fields outside of the `Account` interface.\n !onlyFieldsRequested(Object.keys(accountInterface.getFields()), info, node)\n ) {\n argSet.push({ ...args, encoding: 'jsonParsed' });\n }\n },\n });\n }\n\n buildArgSetWithVisitor(null);\n\n return argSet;\n}\n","import {\n ASTNode,\n ASTVisitFn,\n BREAK,\n FieldNode,\n FragmentDefinitionNode,\n FragmentSpreadNode,\n GraphQLResolveInfo,\n InlineFragmentNode,\n visit,\n} from 'graphql';\n\ntype InjectableVisitorOperations = {\n fieldNodeOperation: (info: GraphQLResolveInfo, ...args: Parameters<ASTVisitFn<FieldNode>>) => void;\n fragmentSpreadNodeOperation: (\n info: GraphQLResolveInfo,\n fragment: FragmentDefinitionNode,\n ...args: Parameters<ASTVisitFn<FragmentSpreadNode>>\n ) => void;\n inlineFragmentNodeOperation: (\n info: GraphQLResolveInfo,\n ...args: Parameters<ASTVisitFn<InlineFragmentNode>>\n ) => void;\n};\ntype RootNode = FieldNode | FragmentDefinitionNode | InlineFragmentNode;\n\n/**\n * An AST visitor that keys on the root field provided.\n * This visitor can be injected with custom logic for various types of nodes.\n */\nexport function injectableRootVisitor(\n info: GraphQLResolveInfo,\n rootNode: RootNode | null,\n operations: InjectableVisitorOperations,\n) {\n const { fieldNodes } = info;\n const root = rootNode ?? fieldNodes[0];\n const parentIsRoot = (ancestors: readonly (ASTNode | readonly ASTNode[])[]) =>\n (Array.isArray(ancestors) ? ancestors[0] : ancestors) === root;\n visit(root, {\n Field(node, key, parent, path, ancestors) {\n if (!parentIsRoot(ancestors)) return;\n return operations.fieldNodeOperation(info, node, key, parent, path, ancestors);\n },\n FragmentSpread(node, key, parent, path, ancestors) {\n const fragmentDefinition = info.fragments[node.name.value];\n return operations.fragmentSpreadNodeOperation(info, fragmentDefinition, node, key, parent, path, ancestors);\n },\n InlineFragment(node, key, parent, path, ancestors) {\n if (!parentIsRoot(ancestors)) return;\n return operations.inlineFragmentNodeOperation(info, node, key, parent, path, ancestors);\n },\n });\n}\n\n/**\n * Determine if the query only requests the provided field names\n */\nexport function onlyFieldsRequested(fieldNames: string[], info: GraphQLResolveInfo, rootNode?: RootNode): boolean {\n let onlyFieldsRequested = true;\n\n function checkFieldsWithVisitor(root: RootNode | null) {\n injectableRootVisitor(info, root, {\n fieldNodeOperation(_info, node) {\n onlyFieldsRequested = fieldNames.includes(node.name.value);\n if (!onlyFieldsRequested) {\n return BREAK;\n }\n },\n fragmentSpreadNodeOperation(_info, fragment) {\n checkFieldsWithVisitor(fragment);\n },\n inlineFragmentNodeOperation(_info, node) {\n checkFieldsWithVisitor(node);\n },\n });\n }\n\n checkFieldsWithVisitor(rootNode ?? null);\n\n return onlyFieldsRequested;\n}\n","import { Address } from '@solana/addresses';\nimport { Commitment, Slot } from '@solana/rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { AccountLoaderValue, cacheKeyFn } from '../loaders';\nimport { buildAccountLoaderArgSetFromResolveInfo, onlyFieldsRequested } from './resolve-info';\n\ntype Encoding = 'base58' | 'base64' | 'base64+zstd';\ntype DataSlice = { length: number; offset: number };\n\nexport type EncodedAccountData = {\n [key: string]: string;\n}\n\nexport type AccountResult = {\n address: Address;\n ownerProgram?: Address;\n encodedData?: EncodedAccountData;\n jsonParsedConfigs?: {\n accountType: string;\n programId: Address;\n programName: string;\n };\n} & Partial<Omit<AccountLoaderValue, 'data'>>;\n\nconst resolveAccountData = () => {\n return (\n parent: AccountResult | null,\n args: {\n encoding: Encoding;\n dataSlice?: DataSlice;\n },\n ) => {\n return parent === null\n ? null\n : parent.encodedData\n ? parent.encodedData[cacheKeyFn(args)]\n : null;\n };\n};\n\nexport const resolveAccount = (fieldName?: string) => {\n return async (\n parent: { [x: string]: Address },\n args: { address?: Address; commitment?: Commitment; minContextSlot?: Slot },\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ): Promise<AccountResult | null> => {\n const address = fieldName ? parent[fieldName] : args.address;\n\n if (address) {\n // Do not load any accounts if only the address is requested\n if (onlyFieldsRequested(['address'], info)) {\n return { address };\n }\n\n const argsSet = buildAccountLoaderArgSetFromResolveInfo({ ...args, address }, info);\n const loadedAccounts = await context.loaders.account.loadMany(argsSet);\n\n let result: AccountResult = {\n address,\n encodedData: {},\n };\n\n loadedAccounts.forEach((account, i) => {\n if (account instanceof Error) {\n console.error(account);\n return;\n }\n if (account === null) {\n return;\n }\n if (!result.ownerProgram) {\n result = {\n ...result,\n ...account,\n ownerProgram: account.owner,\n };\n }\n\n const { data } = account;\n const { encoding, dataSlice } = argsSet[i];\n\n if (encoding && result.encodedData) {\n if (Array.isArray(data)) {\n result.encodedData[cacheKeyFn({\n dataSlice,\n encoding: encoding === 'jsonParsed' ? 'base64' : encoding,\n })] = data[0];\n } else if (typeof data === 'string') {\n result.encodedData[cacheKeyFn({\n dataSlice,\n encoding: 'base58',\n })] = data;\n } else if (typeof data === 'object') {\n const {\n parsed: { info: parsedData, type: accountType },\n program: programName,\n programId,\n } = data;\n result.jsonParsedConfigs = {\n accountType,\n programId,\n programName,\n };\n result = {\n ...result,\n ...(parsedData as object),\n };\n }\n }\n });\n\n return result;\n }\n\n return null;\n };\n};\n\nfunction resolveAccountType(accountResult: AccountResult) {\n const { jsonParsedConfigs } = accountResult;\n if (jsonParsedConfigs) {\n if (jsonParsedConfigs.programName === 'nonce') {\n return 'NonceAccount';\n }\n if (jsonParsedConfigs.accountType === 'mint' && jsonParsedConfigs.programName === 'spl-token') {\n return 'MintAccount';\n }\n if (jsonParsedConfigs.accountType === 'account' && jsonParsedConfigs.programName === 'spl-token') {\n return 'TokenAccount';\n }\n if (jsonParsedConfigs.programName === 'stake') {\n return 'StakeAccount';\n }\n if (jsonParsedConfigs.accountType === 'vote' && jsonParsedConfigs.programName === 'vote') {\n return 'VoteAccount';\n }\n if (\n jsonParsedConfigs.accountType === 'lookupTable' &&\n jsonParsedConfigs.programName === 'address-lookup-table'\n ) {\n return 'LookupTableAccount';\n }\n }\n return 'GenericAccount';\n}\n\nexport const accountResolvers = {\n Account: {\n __resolveType: resolveAccountType,\n data: resolveAccountData(),\n },\n GenericAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n LookupTableAccount: {\n authority: resolveAccount('authority'),\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n MintAccount: {\n data: resolveAccountData(),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mintAuthority: resolveAccount('mintAuthority'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n NonceAccount: {\n authority: resolveAccount('authority'),\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n StakeAccount: {\n data: resolveAccountData(),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n StakeAccountDataMetaAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeAccountDataMetaLockup: {\n custodian: resolveAccount('custodian'),\n },\n StakeAccountDataStakeDelegation: {\n voter: resolveAccount('voter'),\n },\n TokenAccount: {\n data: resolveAccountData(),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n VoteAccount: {\n authorizedWithdrawer: resolveAccount('authorizedWithdrawer'),\n data: resolveAccountData(),\n node: resolveAccount('nodePubkey'),\n ownerProgram: resolveAccount('ownerProgram'),\n },\n VoteAccountDataAuthorizedVoter: {\n authorizedVoter: resolveAccount('authorizedVoter'),\n },\n};\n","import { Signature } from '@solana/keys';\nimport type { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { TransactionLoaderArgs } from '../loaders';\nimport { onlyFieldsRequested } from './resolve-info';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction transformParsedTransaction(parsedTransaction: any) {\n const transactionData = parsedTransaction.transaction;\n const transactionMeta = parsedTransaction.meta;\n transactionData.message.instructions = transactionData.message.instructions.map(transformParsedInstruction);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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({\n encoding = 'jsonParsed',\n transaction,\n}: {\n encoding: TransactionLoaderArgs['encoding'];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transaction: any;\n}) {\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\nexport function resolveTransaction(fieldName?: string) {\n return async (\n parent: { [x: string]: Signature },\n args: TransactionLoaderArgs,\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ) => {\n const signature = fieldName ? parent[fieldName] : args.signature;\n if (!signature) {\n return null;\n }\n if (onlyFieldsRequested(['signature'], info)) {\n return { signature };\n }\n const transaction = await context.loaders.transaction.load({ ...args, signature });\n if (!transaction) {\n return null;\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 (args.encoding !== 'jsonParsed') {\n const transactionJsonParsed = await context.loaders.transaction.load({\n ...args,\n encoding: 'jsonParsed',\n signature,\n });\n if (transactionJsonParsed === null) {\n return null;\n }\n transaction.meta = transactionJsonParsed.meta;\n }\n return transformLoadedTransaction({ encoding: args.encoding, transaction });\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","import type { Slot } from '@solana/rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { BlockLoaderArgs } from '../loaders';\nimport { onlyFieldsRequested } from './resolve-info';\nimport { transformLoadedTransaction } from './transaction';\n\nexport function transformLoadedBlock({\n block,\n encoding = 'jsonParsed',\n transactionDetails = 'full',\n}: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n block: any;\n encoding: BlockLoaderArgs['encoding'];\n transactionDetails: BlockLoaderArgs['transactionDetails'];\n}) {\n const transformedBlock = block;\n if (typeof block === 'object' && 'transactions' in block) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transformedBlock.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\nexport const resolveBlock = (fieldName?: string) => {\n return async (\n parent: { [x: string]: Slot },\n args: BlockLoaderArgs,\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ) => {\n const slot = fieldName ? parent[fieldName] : args.slot;\n if (!slot) {\n return null;\n }\n if (onlyFieldsRequested(['slot'], info)) {\n return { slot };\n }\n const block = await context.loaders.block.load({ ...args, slot });\n if (block === null) {\n return null;\n }\n const { encoding, transactionDetails } = args;\n return transformLoadedBlock({ block, encoding, transactionDetails });\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","import { resolveAccount } from './account';\n\nexport const instructionResolvers = {\n AdvanceNonceAccountInstruction: {\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 AssignInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n AssignWithSeedInstruction: {\n account: resolveAccount('account'),\n owner: resolveAccount('owner'),\n },\n AuthorizeNonceAccountInstruction: {\n newAuthorized: resolveAccount('newAuthorized'),\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n BpfLoaderFinalizeInstruction: {\n account: resolveAccount('account'),\n },\n BpfLoaderWriteInstruction: {\n account: resolveAccount('account'),\n },\n BpfUpgradeableLoaderCloseInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n programAccount: resolveAccount('programAccount'),\n recipient: resolveAccount('recipient'),\n },\n BpfUpgradeableLoaderDeployWithMaxDataLenInstruction: {\n authority: resolveAccount('authority'),\n bufferAccount: resolveAccount('bufferAccount'),\n payerAccount: resolveAccount('payerAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n },\n BpfUpgradeableLoaderExtendProgramInstruction: {\n payerAccount: resolveAccount('payerAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n BpfUpgradeableLoaderInitializeBufferInstruction: {\n account: resolveAccount('account'),\n },\n BpfUpgradeableLoaderSetAuthorityCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n BpfUpgradeableLoaderSetAuthorityInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n BpfUpgradeableLoaderUpgradeInstruction: {\n authority: resolveAccount('authority'),\n bufferAccount: resolveAccount('bufferAccount'),\n programAccount: resolveAccount('programAccount'),\n programDataAccount: resolveAccount('programDataAccount'),\n },\n BpfUpgradeableLoaderWriteInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n },\n CloseLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n recipient: resolveAccount('recipient'),\n },\n CreateAccountInstruction: {\n newAccount: resolveAccount('newAccount'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n CreateAccountWithSeedInstruction: {\n base: resolveAccount('base'),\n owner: resolveAccount('owner'),\n seed: resolveAccount('seed'),\n },\n CreateLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n payerAccount: resolveAccount('payerAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n DeactivateLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n },\n ExtendLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n payerAccount: resolveAccount('payerAccount'),\n systemProgram: resolveAccount('systemProgram'),\n },\n FreezeLookupTableInstruction: {\n lookupTableAccount: resolveAccount('lookupTableAccount'),\n lookupTableAuthority: resolveAccount('lookupTableAuthority'),\n },\n InitializeNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n Lockup: {\n custodian: resolveAccount('custodian'),\n },\n SplAssociatedTokenCreateIdempotentInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n source: resolveAccount('source'),\n systemProgram: resolveAccount('systemProgram'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplAssociatedTokenCreateInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n source: resolveAccount('source'),\n systemProgram: resolveAccount('systemProgram'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplAssociatedTokenRecoverNestedInstruction: {\n destination: resolveAccount('destination'),\n nestedMint: resolveAccount('nestedMint'),\n nestedOwner: resolveAccount('nestedOwner'),\n nestedSource: resolveAccount('nestedSource'),\n ownerMint: resolveAccount('ownerMint'),\n tokenProgram: resolveAccount('tokenProgram'),\n wallet: resolveAccount('wallet'),\n },\n SplTokenAmountToUiAmountInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenApproveCheckedInstruction: {\n delegate: resolveAccount('delegate'),\n mint: resolveAccount('mint'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenApproveInstruction: {\n delegate: resolveAccount('delegate'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenBurnCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenBurnInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n },\n SplTokenCloseAccountInstruction: {\n account: resolveAccount('account'),\n destination: resolveAccount('destination'),\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n },\n SplTokenFreezeAccountInstruction: {\n account: resolveAccount('account'),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenGetAccountDataSizeInstruction: {\n mint: resolveAccount('mint'),\n },\n SplTokenInitializeAccount2Instruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeAccount3Instruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeAccountInstruction: {\n account: resolveAccount('account'),\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n SplTokenInitializeMint2Instruction: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n },\n SplTokenInitializeMintCloseAuthorityInstruction: {\n mint: resolveAccount('mint'),\n newAuthority: resolveAccount('newAuthority'),\n },\n SplTokenInitializeMintInstruction: {\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n },\n SplTokenInitializeMultisig2Instruction: {\n multisig: resolveAccount('multisig'),\n },\n SplTokenInitializeMultisigInstruction: {\n multisig: resolveAccount('multisig'),\n },\n SplTokenMintToCheckedInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n multisigMintAuthority: resolveAccount('multisigMintAuthority'),\n },\n SplTokenMintToInstruction: {\n account: resolveAccount('account'),\n authority: resolveAccount('authority'),\n mint: resolveAccount('mint'),\n mintAuthority: resolveAccount('mintAuthority'),\n multisigMintAuthority: resolveAccount('multisigMintAuthority'),\n },\n SplTokenRevokeInstruction: {\n multisigOwner: resolveAccount('multisigOwner'),\n owner: resolveAccount('owner'),\n source: resolveAccount('source'),\n },\n SplTokenSetAuthorityInstruction: {\n authority: resolveAccount('authority'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n newAuthority: resolveAccount('newAuthority'),\n },\n SplTokenSyncNativeInstruction: {\n account: resolveAccount('account'),\n },\n SplTokenThawAccountInstruction: {\n account: resolveAccount('account'),\n freezeAuthority: resolveAccount('freezeAuthority'),\n mint: resolveAccount('mint'),\n multisigFreezeAuthority: resolveAccount('multisigFreezeAuthority'),\n },\n SplTokenTransferCheckedInstruction: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n mint: resolveAccount('mint'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenTransferInstruction: {\n authority: resolveAccount('authority'),\n destination: resolveAccount('destination'),\n multisigAuthority: resolveAccount('multisigAuthority'),\n source: resolveAccount('source'),\n },\n SplTokenUiAmountToAmountInstruction: {\n mint: resolveAccount('mint'),\n },\n StakeAuthorizeCheckedInstruction: {\n authority: resolveAccount('authority'),\n 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 StakeAuthorizeInstruction: {\n authority: resolveAccount('authority'),\n custodian: resolveAccount('custodian'),\n newAuthority: resolveAccount('newAuthority'),\n stakeAccount: resolveAccount('stakeAccount'),\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 StakeDeactivateDelinquentInstruction: {\n referenceVoteAccount: resolveAccount('referenceVoteAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeDeactivateInstruction: {\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeDelegateStakeInstruction: {\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeConfigAccount: resolveAccount('stakeConfigAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeInitializeCheckedInstructionDataAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeInitializeInstruction: {\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeInitializeInstructionDataAuthorized: {\n staker: resolveAccount('staker'),\n withdrawer: resolveAccount('withdrawer'),\n },\n StakeMergeInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeRedelegateInstruction: {\n newStakeAccount: resolveAccount('newStakeAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n stakeConfigAccount: resolveAccount('stakeConfigAccount'),\n voteAccount: resolveAccount('voteAccount'),\n },\n StakeSetLockupCheckedInstruction: {\n custodian: resolveAccount('custodian'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeSetLockupInstruction: {\n custodian: resolveAccount('custodian'),\n stakeAccount: resolveAccount('stakeAccount'),\n },\n StakeSplitInstruction: {\n newSplitAccount: resolveAccount('newSplitAccount'),\n stakeAccount: resolveAccount('stakeAccount'),\n stakeAuthority: resolveAccount('stakeAuthority'),\n },\n StakeWithdrawInstruction: {\n destination: resolveAccount('destination'),\n stakeAccount: resolveAccount('stakeAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\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 TransferInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n },\n TransferWithSeedInstruction: {\n destination: resolveAccount('destination'),\n source: resolveAccount('source'),\n sourceOwner: resolveAccount('sourceOwner'),\n },\n UpgradeNonceAccountInstruction: {\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n VoteAuthorizeCheckedInstruction: {\n authority: resolveAccount('authority'),\n newAuthority: resolveAccount('newAuthority'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteAuthorizeCheckedWithSeedInstruction: {\n authorityOwner: resolveAccount('authorityOwner'),\n newAuthority: resolveAccount('newAuthority'),\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 VoteCompactUpdateVoteStateInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteCompactUpdateVoteStateSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteInitializeAccountInstruction: {\n authorizedVoter: resolveAccount('authorizedVoter'),\n authorizedWithdrawer: resolveAccount('authorizedWithdrawer'),\n node: resolveAccount('node'),\n voteAccount: resolveAccount('voteAccount'),\n },\n VoteUpdateCommissionInstruction: {\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 VoteUpdateVoteStateInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteUpdateVoteStateSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteVoteInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteVoteSwitchInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n voteAuthority: resolveAccount('voteAuthority'),\n },\n VoteWithdrawInstruction: {\n voteAccount: resolveAccount('voteAccount'),\n withdrawAuthority: resolveAccount('withdrawAuthority'),\n },\n WithdrawNonceAccountInstruction: {\n destination: resolveAccount('destination'),\n nonceAccount: resolveAccount('nonceAccount'),\n nonceAuthority: resolveAccount('nonceAuthority'),\n },\n};\n","import { Address } from '@solana/addresses';\nimport type { GraphQLResolveInfo } from 'graphql';\n\nimport { RpcGraphQLContext } from '../context';\nimport { cacheKeyFn,ProgramAccountsLoaderArgs } from '../loaders';\nimport { AccountResult } from './account';\nimport { onlyFieldsRequested } from './resolve-info';\n\nexport function resolveProgramAccounts(fieldName?: string) {\n return async (\n parent: { [x: string]: Address },\n args: ProgramAccountsLoaderArgs,\n context: RpcGraphQLContext,\n info: GraphQLResolveInfo,\n ) => {\n const programAddress = fieldName ? parent[fieldName] : args.programAddress;\n\n if (programAddress) {\n if (onlyFieldsRequested(['programAddress'], info)) {\n return { programAddress };\n }\n }\n\n // TODO: This needs to be split out from accounts. This only works for one data field at a time.\n const programAccounts = await context.loaders.programAccounts.load({ ...args, programAddress });\n if (programAccounts) {\n return programAccounts.map(programAccount => {\n const { account, pubkey: address } = programAccount;\n\n let result: AccountResult = {\n ...account,\n address,\n encodedData: {},\n ownerProgram: account.owner,\n };\n\n const { data } = account;\n const { encoding, dataSlice } = args;\n\n // TODO: Add encoding to this conditional once the program accounts\n // batch loader is implemented.\n if (result.encodedData) {\n if (Array.isArray(data)) {\n result.encodedData[cacheKeyFn({\n dataSlice,\n encoding: encoding === 'jsonParsed' ? 'base64' : encoding ?? 'base64',\n })] = data[0];\n } else if (typeof data === 'string') {\n result.encodedData[cacheKeyFn({\n dataSlice,\n encoding: 'base58',\n })] = data;\n } else if (typeof data === 'object') {\n const {\n parsed: { info: parsedData, type: accountType },\n program: programName,\n programId,\n } = data;\n result.jsonParsedConfigs = {\n accountType,\n programId,\n programName,\n };\n result = {\n ...result,\n ...(parsedData as object),\n };\n }\n }\n\n return result;\n });\n }\n\n return null;\n };\n}\n","import type { makeExecutableSchema } from '@graphql-tools/schema';\n\nimport { resolveAccount } from './account';\nimport { resolveBlock } from './block';\nimport { resolveProgramAccounts } from './program-accounts';\nimport { resolveTransaction } from './transaction';\n\nexport const rootResolvers: Parameters<typeof makeExecutableSchema>[0]['resolvers'] = {\n Query: {\n account: resolveAccount(),\n block: resolveBlock(),\n programAccounts: resolveProgramAccounts(),\n transaction: resolveTransaction(),\n },\n};\n","import { Kind } from 'graphql';\n\nimport { resolveAccount } from './account';\n\nconst stringScalarAlias = {\n __parseLiteral(ast: { kind: Kind; value: 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\nconst bigIntScalarAlias = {\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\nexport const typeTypeResolvers = {\n AccountEncoding: {\n BASE_58: 'base58',\n BASE_64: 'base64',\n BASE_64_ZSTD: 'base64+zstd',\n },\n Address: stringScalarAlias,\n Base58EncodedBytes: stringScalarAlias,\n Base64EncodedBytes: stringScalarAlias,\n Base64ZstdEncodedBytes: stringScalarAlias,\n BigInt: bigIntScalarAlias,\n BlockTransactionDetails: {\n ACCOUNTS: 'accounts',\n FULL: 'full',\n NONE: 'none',\n SIGNATURES: 'signatures',\n },\n Commitment: {\n CONFIRMED: 'confirmed',\n FINALIZED: 'finalized',\n PROCESSED: 'processed',\n },\n Signature: stringScalarAlias,\n Slot: bigIntScalarAlias,\n TokenBalance: {\n mint: resolveAccount('mint'),\n owner: resolveAccount('owner'),\n },\n TransactionEncoding: {\n BASE_58: 'base58',\n BASE_64: 'base64',\n PARSED: 'jsonParsed',\n },\n TransactionVersion: {\n LEGACY: 'legacy',\n ZERO: 0,\n },\n};\n","import type { makeExecutableSchema } from '@graphql-tools/schema';\n\nimport { accountResolvers } from '../resolvers/account';\nimport { blockResolvers } from '../resolvers/block';\nimport { instructionResolvers } from '../resolvers/instruction';\nimport { rootResolvers } from '../resolvers/root';\nimport { transactionResolvers } from '../resolvers/transaction';\nimport { typeTypeResolvers } from '../resolvers/types';\n\nexport function createSolanaGraphQLResolvers(): Parameters<typeof makeExecutableSchema>[0]['resolvers'] {\n return {\n ...accountResolvers,\n ...blockResolvers,\n ...instructionResolvers,\n ...rootResolvers,\n ...transactionResolvers,\n ...typeTypeResolvers,\n };\n}\n","export const accountTypeDefs = /* GraphQL */ `\n \"\"\"\n Account interface\n \"\"\"\n interface Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n }\n\n \"\"\"\n Generic base account type\n \"\"\"\n type GenericAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n }\n\n type NonceAccountFeeCalculator {\n lamportsPerSignature: String\n }\n \"\"\"\n A nonce account\n \"\"\"\n type NonceAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n authority: Account\n blockhash: String\n feeCalculator: NonceAccountFeeCalculator\n }\n\n \"\"\"\n A lookup table account\n \"\"\"\n type LookupTableAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n addresses: [Address]\n authority: Account\n deactivationSlot: String\n lastExtendedSlot: String\n lastExtendedSlotStartIndex: Int\n }\n\n \"\"\"\n A mint account\n \"\"\"\n type MintAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n decimals: Int\n freezeAuthority: Account\n isInitialized: Boolean\n mintAuthority: Account\n supply: String\n }\n\n \"\"\"\n A token account\n \"\"\"\n type TokenAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n isNative: Boolean\n mint: Account\n owner: Account\n state: String\n tokenAmount: TokenAmount\n }\n\n type StakeAccountDataMetaAuthorized {\n staker: Account\n withdrawer: Account\n }\n type StakeAccountDataMetaLockup {\n custodian: Account\n epoch: BigInt\n unixTimestamp: BigInt\n }\n type StakeAccountDataMeta {\n authorized: StakeAccountDataMetaAuthorized\n lockup: StakeAccountDataMetaLockup\n rentExemptReserve: String\n }\n type StakeAccountDataStakeDelegation {\n activationEpoch: BigInt\n deactivationEpoch: BigInt\n stake: String\n voter: Account\n warmupCooldownRate: Int\n }\n type StakeAccountDataStake {\n creditsObserved: BigInt\n delegation: StakeAccountDataStakeDelegation\n }\n \"\"\"\n A stake account\n \"\"\"\n type StakeAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n meta: StakeAccountDataMeta\n stake: StakeAccountDataStake\n }\n\n type VoteAccountDataAuthorizedVoter {\n authorizedVoter: Account\n epoch: BigInt\n }\n type VoteAccountDataEpochCredit {\n credits: String\n epoch: BigInt\n previousCredits: String\n }\n type VoteAccountDataLastTimestamp {\n slot: BigInt\n timestamp: BigInt\n }\n type VoteAccountDataVote {\n confirmationCount: Int\n slot: BigInt\n }\n \"\"\"\n A vote account\n \"\"\"\n type VoteAccount implements Account {\n address: Address\n data(encoding: AccountEncoding!, dataSlice: DataSlice): String\n executable: Boolean\n lamports: BigInt\n ownerProgram: Account\n space: BigInt\n rentEpoch: BigInt\n authorizedVoters: [VoteAccountDataAuthorizedVoter]\n authorizedWithdrawer: Account\n commission: Int\n epochCredits: [VoteAccountDataEpochCredit]\n lastTimestamp: VoteAccountDataLastTimestamp\n node: Account\n priorVoters: [Address]\n rootSlot: BigInt\n votes: [VoteAccountDataVote]\n }\n`;\n","export const blockTypeDefs = /* GraphQL */ `\n 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: BigInt\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: BigInt\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: BigInt\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: BigInt\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: BigInt\n parentSlot: BigInt\n previousBlockhash: String\n rewards: [Reward]\n signatures: [String]\n transactionDetails: String\n }\n`;\n","// *Note: Any integer value inside a transaction instruction must be `BigInt`\n// until the following issue is resolved:\n// <https://github.com/solana-labs/solana-web3.js/issues/1828>\nexport const instructionTypeDefs = /* GraphQL */ `\n \"\"\"\n Transaction instruction interface\n \"\"\"\n interface TransactionInstruction {\n programId: Address\n }\n\n \"\"\"\n Generic transaction instruction\n \"\"\"\n type GenericInstruction implements TransactionInstruction {\n accounts: [Address]\n data: Base64EncodedBytes\n programId: Address\n }\n\n \"\"\"\n AddressLookupTable: CreateLookupTable instruction\n \"\"\"\n type CreateLookupTableInstruction implements TransactionInstruction {\n programId: Address\n bumpSeed: BigInt # FIXME:*\n lookupTableAccount: Account\n lookupTableAuthority: Account\n payerAccount: Account\n recentSlot: BigInt\n systemProgram: Account\n }\n\n \"\"\"\n AddressLookupTable: ExtendLookupTable instruction\n \"\"\"\n type ExtendLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n newAddresses: [Address]\n payerAccount: Account\n systemProgram: Account\n }\n\n \"\"\"\n AddressLookupTable: FreezeLookupTable instruction\n \"\"\"\n type FreezeLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n }\n\n \"\"\"\n AddressLookupTable: DeactivateLookupTable instruction\n \"\"\"\n type DeactivateLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n }\n\n \"\"\"\n AddressLookupTable: CloseLookupTable instruction\n \"\"\"\n type CloseLookupTableInstruction implements TransactionInstruction {\n programId: Address\n lookupTableAccount: Account\n lookupTableAuthority: Account\n recipient: Account\n }\n\n \"\"\"\n BpfLoader: Write instruction\n \"\"\"\n type BpfLoaderWriteInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n bytes: Base64EncodedBytes\n offset: BigInt # FIXME:*\n }\n\n \"\"\"\n BpfLoader: Finalize instruction\n \"\"\"\n type BpfLoaderFinalizeInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: InitializeBuffer instruction\n \"\"\"\n type BpfUpgradeableLoaderInitializeBufferInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n }\n\n \"\"\"\n BpfUpgradeableLoader: Write instruction\n \"\"\"\n type BpfUpgradeableLoaderWriteInstruction implements TransactionInstruction {\n programId: Address\n account: Account\n authority: Account\n bytes: Base64EncodedBytes\n offset: BigInt # FIXME:*\n }\n\n \"\"\"\n BpfUpgradeableLoader: DeployWithMaxDataLen instruction\n \"\"\"\n type BpfUpgradeableLoaderDeployWithMaxDataLenInstruction implements TransactionInstruction {\n programId: Address\n authority: Account\n bufferAccount: Account\n clockSysvar: 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","export const rootTypeDefs = /* GraphQL */ `\n type Query {\n account(address: Address!, commitment: Commitment, minContextSlot: Slot): Account\n block(\n slot: Slot!\n commitment: Commitment\n encoding: TransactionEncoding\n transactionDetails: BlockTransactionDetails\n ): Block\n programAccounts(\n programAddress: Address!\n commitment: Commitment\n dataSlice: DataSlice\n encoding: AccountEncoding\n filters: [ProgramAccountsFilter]\n minContextSlot: Slot\n ): [Account]\n transaction(signature: Signature!, commitment: Commitment, encoding: TransactionEncoding): Transaction\n }\n\n schema {\n query: Query\n }\n`;\n","/* eslint-disable sort-keys-fix/sort-keys-fix */\nexport const transactionTypeDefs = /* GraphQL */ `\n type TransactionStatusOk {\n Ok: String\n }\n type TransactionStatusErr {\n Err: String\n }\n union TransactionStatus = TransactionStatusOk | TransactionStatusErr\n\n type TransactionLoadedAddresses {\n readonly: [String]\n writable: [String]\n }\n\n type TransactionInnerInstruction {\n index: Int\n instructions: [TransactionInstruction]\n }\n\n type TransactionMeta {\n computeUnitsConsumed: BigInt\n err: String\n fee: BigInt\n innerInstructions: [TransactionInnerInstruction]\n loadedAddresses: TransactionLoadedAddresses\n logMessages: [String]\n postBalances: [BigInt]\n postTokenBalances: [TokenBalance]\n preBalances: [BigInt]\n preTokenBalances: [TokenBalance]\n returnData: ReturnData\n rewards: [Reward]\n status: TransactionStatus\n }\n\n type TransactionMessageAccountKey {\n pubkey: Address\n signer: Boolean\n source: String\n writable: Boolean\n }\n\n type TransactionMessageAddressTableLookup {\n accountKey: Address\n readableIndexes: [Int]\n writableIndexes: [Int]\n }\n\n type TransactionMessageHeader {\n numReadonlySignedAccounts: Int\n numReadonlyUnsignedAccounts: Int\n numRequiredSignatures: Int\n }\n\n type TransactionMessage {\n accountKeys: [TransactionMessageAccountKey]\n addressTableLookups: [TransactionMessageAddressTableLookup]\n header: TransactionMessageHeader\n instructions: [TransactionInstruction]\n recentBlockhash: String\n }\n\n \"\"\"\n Transaction interface\n \"\"\"\n interface Transaction {\n blockTime: BigInt\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: BigInt\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: BigInt\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: BigInt\n data: TransactionDataParsed\n meta: TransactionMeta\n slot: BigInt\n version: String\n }\n`;\n","export const typeTypeDefs = /* GraphQL */ `\n enum AccountEncoding {\n BASE_58\n BASE_64\n BASE_64_ZSTD\n }\n\n scalar Address\n\n scalar Base58EncodedBytes\n\n scalar Base64EncodedBytes\n\n scalar Base64ZstdEncodedBytes\n\n scalar BigInt\n\n enum BlockTransactionDetails {\n ACCOUNTS\n FULL\n NONE\n SIGNATURES\n }\n\n enum Commitment {\n CONFIRMED\n FINALIZED\n PROCESSED\n }\n\n input DataSlice {\n offset: Int!\n length: Int!\n }\n\n input ProgramAccountsFilter {\n bytes: BigInt\n dataSize: BigInt\n encoding: AccountEncoding\n offset: BigInt\n }\n\n type ReturnData {\n data: Base64EncodedBytes\n programId: Address\n }\n\n type Reward {\n commission: Int\n lamports: BigInt\n postBalance: BigInt\n pubkey: Address\n rewardType: String\n }\n\n scalar Signature\n\n scalar Slot\n\n type TokenAmount {\n amount: String\n decimals: Int\n uiAmount: BigInt\n uiAmountString: String\n }\n\n type TokenBalance {\n accountIndex: Int\n mint: Account\n owner: Account\n programId: Address\n uiTokenAmount: TokenAmount\n }\n\n enum TransactionEncoding {\n BASE_58\n BASE_64\n PARSED\n }\n\n enum TransactionVersion {\n LEGACY\n ZERO\n }\n`;\n","import { accountTypeDefs } from './account';\nimport { blockTypeDefs } from './block';\nimport { instructionTypeDefs } from './instruction';\nimport { rootTypeDefs } from './root';\nimport { transactionTypeDefs } from './transaction';\nimport { typeTypeDefs } from './types';\n\nexport function createSolanaGraphQLTypeDefs() {\n return [accountTypeDefs, blockTypeDefs, instructionTypeDefs, rootTypeDefs, typeTypeDefs, transactionTypeDefs];\n}\n"]}
|