@solana/rpc-graphql 2.0.0-experimental.9e133fd → 2.0.0-experimental.a157265

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.md +1088 -30
  2. package/dist/index.browser.cjs +2373 -1930
  3. package/dist/index.browser.cjs.map +1 -1
  4. package/dist/index.browser.js +2369 -1931
  5. package/dist/index.browser.js.map +1 -1
  6. package/dist/index.native.js +2368 -1926
  7. package/dist/index.native.js.map +1 -1
  8. package/dist/index.node.cjs +2372 -1925
  9. package/dist/index.node.cjs.map +1 -1
  10. package/dist/index.node.js +2368 -1926
  11. package/dist/index.node.js.map +1 -1
  12. package/dist/types/context.d.ts +20 -18
  13. package/dist/types/context.d.ts.map +1 -0
  14. package/dist/types/index.d.ts +1 -1
  15. package/dist/types/index.d.ts.map +1 -0
  16. package/dist/types/loaders/account.d.ts +7 -0
  17. package/dist/types/loaders/account.d.ts.map +1 -0
  18. package/dist/types/loaders/block.d.ts +7 -0
  19. package/dist/types/loaders/block.d.ts.map +1 -0
  20. package/dist/types/loaders/common/resolve-info.d.ts +3 -0
  21. package/dist/types/loaders/common/resolve-info.d.ts.map +1 -0
  22. package/dist/types/loaders/program-accounts.d.ts +9 -0
  23. package/dist/types/loaders/program-accounts.d.ts.map +1 -0
  24. package/dist/types/loaders/transaction.d.ts +7 -0
  25. package/dist/types/loaders/transaction.d.ts.map +1 -0
  26. package/dist/types/loaders/transformers/account.d.ts +8 -0
  27. package/dist/types/loaders/transformers/account.d.ts.map +1 -0
  28. package/dist/types/loaders/transformers/block.d.ts +6 -0
  29. package/dist/types/loaders/transformers/block.d.ts.map +1 -0
  30. package/dist/types/loaders/transformers/transaction.d.ts +5 -0
  31. package/dist/types/loaders/transformers/transaction.d.ts.map +1 -0
  32. package/dist/types/resolvers/account.d.ts +8 -0
  33. package/dist/types/resolvers/account.d.ts.map +1 -0
  34. package/dist/types/rpc.d.ts +6 -4
  35. package/dist/types/rpc.d.ts.map +1 -0
  36. package/dist/types/schema/account.d.ts +112 -0
  37. package/dist/types/schema/account.d.ts.map +1 -0
  38. package/dist/types/schema/block.d.ts +17 -0
  39. package/dist/types/schema/block.d.ts.map +1 -0
  40. package/dist/types/schema/common/inputs.d.ts +3 -0
  41. package/dist/types/schema/common/inputs.d.ts.map +1 -0
  42. package/dist/types/schema/common/scalars.d.ts +45 -0
  43. package/dist/types/schema/common/scalars.d.ts.map +1 -0
  44. package/dist/types/schema/common/types.d.ts +27 -0
  45. package/dist/types/schema/common/types.d.ts.map +1 -0
  46. package/dist/types/schema/index.d.ts +2 -0
  47. package/dist/types/schema/index.d.ts.map +1 -0
  48. package/dist/types/schema/instruction.d.ts +949 -0
  49. package/dist/types/schema/instruction.d.ts.map +1 -0
  50. package/dist/types/schema/program-accounts.d.ts +12 -0
  51. package/dist/types/schema/program-accounts.d.ts.map +1 -0
  52. package/dist/types/schema/transaction.d.ts +16 -0
  53. package/dist/types/schema/transaction.d.ts.map +1 -0
  54. package/package.json +20 -15
  55. package/dist/types/cache.d.ts +0 -7
  56. package/dist/types/schema/account/index.d.ts +0 -3
  57. package/dist/types/schema/account/query.d.ts +0 -38
  58. package/dist/types/schema/account/types.d.ts +0 -5
  59. package/dist/types/schema/block/index.d.ts +0 -3
  60. package/dist/types/schema/block/query.d.ts +0 -42
  61. package/dist/types/schema/block/types.d.ts +0 -7
  62. package/dist/types/schema/inputs.d.ts +0 -9
  63. package/dist/types/schema/picks.d.ts +0 -36
  64. package/dist/types/schema/program-accounts/index.d.ts +0 -2
  65. package/dist/types/schema/program-accounts/query.d.ts +0 -47
  66. package/dist/types/schema/program-accounts/types.d.ts +0 -3
  67. package/dist/types/schema/scalars.d.ts +0 -3
  68. package/dist/types/schema/transaction/index.d.ts +0 -3
  69. package/dist/types/schema/transaction/query.d.ts +0 -33
  70. package/dist/types/schema/transaction/types.d.ts +0 -12
@@ -1,80 +1,220 @@
1
- import { GraphQLSchema, GraphQLObjectType, graphql, GraphQLList, GraphQLBoolean, GraphQLString, GraphQLNonNull, GraphQLEnumType, GraphQLInputObjectType, GraphQLInterfaceType, GraphQLScalarType, Kind, GraphQLInt, GraphQLUnionType } from 'graphql';
1
+ import { graphql, Kind } from 'graphql';
2
+ import DataLoader from 'dataloader';
3
+ import fastStableStringify from 'fast-stable-stringify';
4
+ import { makeExecutableSchema } from '@graphql-tools/schema';
2
5
 
3
6
  // src/rpc.ts
4
7
 
5
- // src/cache.ts
6
- var inMemoryCache = {};
7
- var stringifyValue = (value) => JSON.stringify(value, (_, value2) => {
8
- if (typeof value2 === "bigint") {
9
- return value2.toString() + "n";
10
- }
11
- return value2;
12
- });
13
- var parseValue = (value) => JSON.parse(value, (_, value2) => {
14
- if (typeof value2 === "string" && /\d+n$/.test(value2)) {
15
- return BigInt(value2.slice(0, -1));
8
+ // src/loaders/common/resolve-info.ts
9
+ function onlyPresentFieldRequested(fieldName, info) {
10
+ if (info && info.fieldNodes[0].selectionSet) {
11
+ const selectionSet = info.fieldNodes[0].selectionSet;
12
+ const requestedFields = selectionSet.selections.map((field) => {
13
+ if (field.kind === "Field") {
14
+ return field.name.value;
15
+ }
16
+ return null;
17
+ });
18
+ if (requestedFields && requestedFields.length === 1 && requestedFields[0] === fieldName) {
19
+ return true;
20
+ }
16
21
  }
17
- return value2;
18
- });
19
- var cacheKey = (key, variables) => `GraphQLCache:${stringifyValue(key)}:${stringifyValue(variables)}`;
20
- function createGraphQLCache() {
22
+ return false;
23
+ }
24
+
25
+ // src/loaders/transformers/account.ts
26
+ function transformParsedAccountData(parsedAccountData) {
27
+ const {
28
+ parsed: { info: result, type: accountType },
29
+ program: programName,
30
+ programId
31
+ } = parsedAccountData;
32
+ result.accountType = accountType;
33
+ result.programId = programId;
34
+ result.programName = programName;
35
+ return result;
36
+ }
37
+ function transformLoadedAccount({
38
+ account,
39
+ address,
40
+ encoding
41
+ }) {
42
+ const [
43
+ // The account's data, either encoded or parsed.
44
+ data,
45
+ // Tells GraphQL which encoding has been returned
46
+ // by the RPC.
47
+ responseEncoding
48
+ ] = Array.isArray(account.data) ? encoding === "jsonParsed" ? (
49
+ // The requested encoding is jsonParsed,
50
+ // but the data could not be parsed.
51
+ // Defaults to base64 encoding.
52
+ [{ data: account.data[0] }, "base64"]
53
+ ) : (
54
+ // The requested encoding is base58,
55
+ // base64, or base64+zstd.
56
+ [{ data: account.data[0] }, encoding]
57
+ ) : (
58
+ // The account data was returned as an object,
59
+ // so it was parsed successfully.
60
+ [transformParsedAccountData(account.data), "jsonParsed"]
61
+ );
62
+ account.address = address;
63
+ account.encoding = responseEncoding;
64
+ account.ownerProgram = account.owner;
21
65
  return {
22
- // Node.js
23
- flush: () => {
24
- Object.keys(inMemoryCache).forEach((key) => delete inMemoryCache[key]);
25
- },
26
- get: (key, variables) => {
27
- const value = inMemoryCache[cacheKey(key, variables)];
28
- return value === void 0 ? null : parseValue(value);
29
- },
30
- insert: (key, variables, value) => {
31
- inMemoryCache[cacheKey(key, variables)] = stringifyValue(value);
32
- }
66
+ ...account,
67
+ ...data
33
68
  };
34
69
  }
35
70
 
36
- // src/context.ts
37
- async function resolveAccount({ address, encoding = "jsonParsed", ...config }, cache, rpc) {
38
- const requestConfig = { encoding, ...config };
39
- const cached = cache.get(address, requestConfig);
40
- if (cached !== null) {
41
- return cached;
42
- }
43
- const account = await rpc.getAccountInfo(address, requestConfig).send().then((res) => res.value).catch((e) => {
71
+ // src/loaders/account.ts
72
+ function normalizeArgs({
73
+ address,
74
+ commitment = "confirmed",
75
+ dataSlice,
76
+ encoding = "jsonParsed",
77
+ minContextSlot
78
+ }) {
79
+ return { address, commitment, dataSlice, encoding, minContextSlot };
80
+ }
81
+ async function loadAccount(rpc, { address, ...config }) {
82
+ const account = await rpc.getAccountInfo(address, config).send().then((res) => res.value).catch((e) => {
44
83
  throw e;
45
84
  });
46
- if (account === null) {
47
- return null;
48
- }
49
- const [data, responseEncoding] = Array.isArray(account.data) ? encoding === "jsonParsed" ? [account.data[0], "base64"] : [account.data[0], encoding] : [account.data, "jsonParsed"];
50
- const queryResponse = {
51
- ...account,
52
- data,
53
- encoding: responseEncoding
85
+ return account === null ? { address } : transformLoadedAccount({ account, address, encoding: config.encoding });
86
+ }
87
+ function createAccountBatchLoadFn(rpc) {
88
+ const resolveAccountUsingRpc = loadAccount.bind(null, rpc);
89
+ return async (accountQueryArgs) => {
90
+ return await Promise.all(accountQueryArgs.map(async (args) => await resolveAccountUsingRpc(args)));
91
+ };
92
+ }
93
+ function createAccountLoader(rpc) {
94
+ const loader = new DataLoader(createAccountBatchLoadFn(rpc), { cacheKeyFn: fastStableStringify });
95
+ return {
96
+ load: async (args, info) => {
97
+ if (onlyPresentFieldRequested("address", info)) {
98
+ return { address: args.address };
99
+ }
100
+ return loader.load(normalizeArgs(args));
101
+ }
54
102
  };
55
- cache.insert(address, requestConfig, queryResponse);
56
- return queryResponse;
57
103
  }
58
- async function resolveBlock({ slot, encoding = "jsonParsed", ...config }, cache, rpc) {
59
- const requestConfig = { encoding, ...config };
60
- const cached = cache.get(slot, config);
61
- if (cached !== null) {
62
- return cached;
104
+
105
+ // src/loaders/transformers/transaction.ts
106
+ function transformParsedInstruction(parsedInstruction) {
107
+ if ("parsed" in parsedInstruction) {
108
+ const {
109
+ parsed: { info: data, type: instructionType },
110
+ program: programName,
111
+ programId
112
+ } = parsedInstruction;
113
+ return { instructionType, programId, programName, ...data };
114
+ } else {
115
+ return parsedInstruction;
63
116
  }
64
- const block = await rpc.getBlock(slot, requestConfig).send();
65
- if (block === null) {
66
- return null;
117
+ }
118
+ function transformParsedTransaction(parsedTransaction) {
119
+ const transactionData = parsedTransaction.transaction;
120
+ const transactionMeta = parsedTransaction.meta;
121
+ transactionData.message.instructions = transactionData.message.instructions.map(transformParsedInstruction);
122
+ transactionMeta.innerInstructions = transactionMeta.innerInstructions.map((innerInstruction) => {
123
+ innerInstruction.instructions = innerInstruction.instructions.map(transformParsedInstruction);
124
+ return innerInstruction;
125
+ });
126
+ return [transactionData, transactionMeta];
127
+ }
128
+ function transformLoadedTransaction({ encoding, transaction }) {
129
+ const [transactionData, transactionMeta] = Array.isArray(transaction.transaction) ? (
130
+ // The requested encoding is base58 or base64.
131
+ [transaction.transaction[0], transaction.meta]
132
+ ) : (
133
+ // The transaction was either partially parsed or
134
+ // fully JSON-parsed, which will be sorted later.
135
+ transformParsedTransaction(transaction)
136
+ );
137
+ transaction.data = transactionData;
138
+ transaction.encoding = encoding;
139
+ transaction.meta = transactionMeta;
140
+ return transaction;
141
+ }
142
+
143
+ // src/loaders/transformers/block.ts
144
+ function transformLoadedBlock({
145
+ encoding,
146
+ block,
147
+ transactionDetails
148
+ }) {
149
+ if (typeof block === "object" && "transactions" in block) {
150
+ block.transactions = block.transactions.map((transaction) => {
151
+ if (transactionDetails === "accounts") {
152
+ return {
153
+ data: transaction.transaction,
154
+ meta: transaction.meta,
155
+ version: transaction.version
156
+ };
157
+ } else {
158
+ return transformLoadedTransaction({ encoding, transaction });
159
+ }
160
+ });
67
161
  }
68
- cache.insert(slot, config, block);
162
+ block.encoding = encoding;
163
+ block.transactionDetails = transactionDetails;
69
164
  return block;
70
165
  }
71
- async function resolveProgramAccounts({ programAddress, encoding = "jsonParsed", ...config }, cache, rpc) {
72
- const requestConfig = { encoding, ...config };
73
- const cached = cache.get(programAddress, requestConfig);
74
- if (cached !== null) {
75
- return cached;
76
- }
77
- const programAccounts = await rpc.getProgramAccounts(programAddress, requestConfig).send().then((res) => {
166
+
167
+ // src/loaders/block.ts
168
+ function normalizeArgs2({
169
+ commitment = "confirmed",
170
+ encoding = "jsonParsed",
171
+ slot,
172
+ transactionDetails = "full"
173
+ }) {
174
+ return {
175
+ commitment,
176
+ encoding,
177
+ // Always use 0 to avoid silly errors
178
+ maxSupportedTransactionVersion: 0,
179
+ slot,
180
+ transactionDetails
181
+ };
182
+ }
183
+ async function loadBlock(rpc, { slot, ...config }) {
184
+ const block = await rpc.getBlock(slot, config).send().catch((e) => {
185
+ throw e;
186
+ });
187
+ return block === null ? { slot } : transformLoadedBlock({ block, encoding: config.encoding, transactionDetails: config.transactionDetails });
188
+ }
189
+ function createBlockBatchLoadFn(rpc) {
190
+ const resolveBlockUsingRpc = loadBlock.bind(null, rpc);
191
+ return async (blockQueryArgs) => {
192
+ return await Promise.all(blockQueryArgs.map(async (args) => await resolveBlockUsingRpc(args)));
193
+ };
194
+ }
195
+ function createBlockLoader(rpc) {
196
+ const loader = new DataLoader(createBlockBatchLoadFn(rpc), { cacheKeyFn: fastStableStringify });
197
+ return {
198
+ load: async (args, info) => {
199
+ if (onlyPresentFieldRequested("slot", info)) {
200
+ return { slot: args.slot };
201
+ }
202
+ return loader.load(normalizeArgs2(args));
203
+ }
204
+ };
205
+ }
206
+ function normalizeArgs3({
207
+ commitment = "confirmed",
208
+ dataSlice,
209
+ encoding = "jsonParsed",
210
+ filters,
211
+ minContextSlot,
212
+ programAddress
213
+ }) {
214
+ return { commitment, dataSlice, encoding, filters, minContextSlot, programAddress };
215
+ }
216
+ async function loadProgramAccounts(rpc, { programAddress, ...config }) {
217
+ const programAccounts = await rpc.getProgramAccounts(programAddress, config).send().then((res) => {
78
218
  if ("value" in res) {
79
219
  return res.value;
80
220
  }
@@ -82,2111 +222,2413 @@ async function resolveProgramAccounts({ programAddress, encoding = "jsonParsed",
82
222
  }).catch((e) => {
83
223
  throw e;
84
224
  });
85
- const queryResponse = programAccounts.map((programAccount2) => {
86
- const [data, responseEncoding] = Array.isArray(programAccount2.account.data) ? encoding === "jsonParsed" ? [programAccount2.account.data[0], "base64"] : [programAccount2.account.data[0], encoding] : [programAccount2.account.data, "jsonParsed"];
87
- const pubkey = programAccount2.pubkey;
88
- const account = { ...programAccount2.account, data, encoding: responseEncoding };
89
- return {
90
- account,
91
- pubkey
92
- };
93
- });
94
- cache.insert(programAddress, requestConfig, queryResponse);
95
- return queryResponse;
225
+ return programAccounts.map(
226
+ (programAccount) => transformLoadedAccount({
227
+ account: programAccount.account,
228
+ address: programAccount.pubkey,
229
+ encoding: config.encoding
230
+ })
231
+ );
96
232
  }
97
- async function resolveTransaction({ signature, encoding = "jsonParsed", ...config }, cache, rpc) {
98
- const requestConfig = { encoding, ...config };
99
- const cached = cache.get(signature, requestConfig);
100
- if (cached !== null) {
101
- return cached;
102
- }
103
- const transaction = await rpc.getTransaction(signature, requestConfig).send();
104
- if (transaction === null) {
105
- return null;
106
- }
107
- const [transactionData, responseEncoding, responseFormat] = Array.isArray(transaction.transaction) ? encoding === "jsonParsed" ? [transaction.transaction[0], "base64", "unparsed"] : [transaction.transaction[0], encoding, "unparsed"] : encoding === "jsonParsed" ? [transaction.transaction, encoding, "parsed"] : [transaction.transaction, encoding, "unparsed"];
108
- if (transaction.meta) {
109
- transaction.meta["format"] = responseFormat;
110
- }
111
- if (transactionData.message) {
112
- transactionData.message["format"] = responseFormat;
113
- }
114
- const queryResponse = {
115
- ...transaction,
116
- encoding: responseEncoding,
117
- transaction: transactionData
233
+ function createProgramAccountsBatchLoadFn(rpc) {
234
+ const resolveProgramAccountsUsingRpc = loadProgramAccounts.bind(null, rpc);
235
+ return async (programAccountsQueryArgs) => {
236
+ return await Promise.all(
237
+ programAccountsQueryArgs.map(async (args) => await resolveProgramAccountsUsingRpc(args))
238
+ );
118
239
  };
119
- cache.insert(signature, requestConfig, queryResponse);
120
- return queryResponse;
121
240
  }
122
- function createSolanaGraphQLContext(rpc) {
123
- const cache = createGraphQLCache();
241
+ function createProgramAccountsLoader(rpc) {
242
+ const loader = new DataLoader(createProgramAccountsBatchLoadFn(rpc), { cacheKeyFn: fastStableStringify });
124
243
  return {
125
- cache,
126
- resolveAccount(args) {
127
- return resolveAccount(args, this.cache, this.rpc);
128
- },
129
- resolveBlock(args) {
130
- return resolveBlock(args, this.cache, this.rpc);
131
- },
132
- resolveProgramAccounts(args) {
133
- return resolveProgramAccounts(args, this.cache, this.rpc);
134
- },
135
- resolveTransaction(args) {
136
- return resolveTransaction(args, this.cache, this.rpc);
137
- },
138
- rpc
139
- };
140
- }
141
- var BigIntScalar = () => new GraphQLScalarType({
142
- name: "BigInt",
143
- parseLiteral(ast) {
144
- if (ast.kind === Kind.STRING) {
145
- return BigInt(ast.value);
244
+ load: async (args, info) => {
245
+ if (onlyPresentFieldRequested("programAddress", info)) {
246
+ return { programAddress: args.programAddress };
247
+ }
248
+ return loader.load(normalizeArgs3(args));
146
249
  }
147
- return null;
148
- },
149
- parseValue(value) {
150
- return BigInt(value);
151
- },
152
- serialize(value) {
153
- return BigInt(value);
154
- }
155
- });
156
-
157
- // src/schema/picks.ts
158
- function boolean() {
159
- return { type: GraphQLBoolean };
160
- }
161
- var memoisedBigint;
162
- function bigint() {
163
- if (!memoisedBigint)
164
- memoisedBigint = { type: BigIntScalar() };
165
- return memoisedBigint;
166
- }
167
- function number() {
168
- return { type: GraphQLInt };
169
- }
170
- function string() {
171
- return { type: GraphQLString };
250
+ };
172
251
  }
173
- function type(fieldType) {
252
+ function normalizeArgs4({ commitment = "confirmed", encoding = "jsonParsed", signature }) {
174
253
  return {
175
- type: fieldType
254
+ commitment,
255
+ encoding,
256
+ // Always use 0 to avoid silly errors
257
+ maxSupportedTransactionVersion: 0,
258
+ signature
176
259
  };
177
260
  }
178
- function nonNull(fieldType) {
179
- return {
180
- type: new GraphQLNonNull(fieldType.type)
261
+ async function loadTransaction(rpc, { signature, ...config }) {
262
+ const { encoding } = config;
263
+ const transaction = await rpc.getTransaction(signature, config).send().catch((e) => {
264
+ throw e;
265
+ });
266
+ if (transaction === null) {
267
+ return null;
268
+ }
269
+ if (encoding !== "jsonParsed") {
270
+ const jsonParsedConfig = { ...config, encoding: "jsonParsed" };
271
+ const transactionJsonParsed = await rpc.getTransaction(signature, jsonParsedConfig).send().catch((e) => {
272
+ throw e;
273
+ });
274
+ if (transactionJsonParsed === null) {
275
+ return null;
276
+ }
277
+ transaction.meta = transactionJsonParsed.meta;
278
+ }
279
+ return transformLoadedTransaction({ encoding, transaction });
280
+ }
281
+ function createTransactionBatchLoadFn(rpc) {
282
+ const resolveTransactionUsingRpc = loadTransaction.bind(null, rpc);
283
+ return async (transactionQueryArgs) => {
284
+ return await Promise.all(transactionQueryArgs.map(async (args) => await resolveTransactionUsingRpc(args)));
181
285
  };
182
286
  }
183
- function list(elementType) {
287
+ function createTransactionLoader(rpc) {
288
+ const loader = new DataLoader(createTransactionBatchLoadFn(rpc), { cacheKeyFn: fastStableStringify });
184
289
  return {
185
- type: new GraphQLList(elementType.type)
290
+ load: async (args, info) => {
291
+ if (onlyPresentFieldRequested("signature", info)) {
292
+ return { signature: args.signature };
293
+ }
294
+ return loader.load(normalizeArgs4(args));
295
+ }
186
296
  };
187
297
  }
188
- function object(name, fields) {
298
+
299
+ // src/context.ts
300
+ function createSolanaGraphQLContext(rpc) {
189
301
  return {
190
- type: new GraphQLObjectType({
191
- fields,
192
- name
193
- })
302
+ loaders: {
303
+ account: createAccountLoader(rpc),
304
+ block: createBlockLoader(rpc),
305
+ programAccounts: createProgramAccountsLoader(rpc),
306
+ transaction: createTransactionLoader(rpc)
307
+ },
308
+ rpc
194
309
  };
195
310
  }
196
311
 
197
- // src/schema/inputs.ts
198
- var memoisedAccountEncodingInputType;
199
- var accountEncodingInputType = () => {
200
- if (!memoisedAccountEncodingInputType)
201
- memoisedAccountEncodingInputType = new GraphQLEnumType({
202
- name: "AccountEncoding",
203
- values: {
204
- base58: {
205
- value: "base58"
206
- },
207
- base64: {
208
- value: "base64"
209
- },
210
- base64Zstd: {
211
- value: "base64+zstd"
212
- },
213
- jsonParsed: {
214
- value: "jsonParsed"
215
- }
216
- }
217
- });
218
- return memoisedAccountEncodingInputType;
312
+ // src/resolvers/account.ts
313
+ var resolveAccount = (fieldName) => {
314
+ return (parent, args, context, info) => parent[fieldName] === null ? null : context.loaders.account.load({ ...args, address: parent[fieldName] }, info);
219
315
  };
220
- var memoisedBlockTransactionDetailsInputType;
221
- var blockTransactionDetailsInputType = () => {
222
- if (!memoisedBlockTransactionDetailsInputType)
223
- memoisedBlockTransactionDetailsInputType = new GraphQLEnumType({
224
- name: "BlockTransactionDetails",
225
- values: {
226
- accounts: {
227
- value: "accounts"
228
- },
229
- full: {
230
- value: "full"
231
- },
232
- none: {
233
- value: "none"
234
- },
235
- signatures: {
236
- value: "signatures"
237
- }
316
+
317
+ // src/schema/account.ts
318
+ var accountTypeDefs = (
319
+ /* GraphQL */
320
+ `
321
+ # Account interface
322
+ interface Account {
323
+ address: Address
324
+ executable: Boolean
325
+ lamports: BigInt
326
+ ownerProgram: Account
327
+ space: BigInt
328
+ rentEpoch: BigInt
329
+ }
330
+
331
+ # An account with base58 encoded data
332
+ type AccountBase58 implements Account {
333
+ address: Address
334
+ data: Base58EncodedBytes
335
+ executable: Boolean
336
+ lamports: BigInt
337
+ ownerProgram: Account
338
+ space: BigInt
339
+ rentEpoch: BigInt
340
+ }
341
+
342
+ # An account with base64 encoded data
343
+ type AccountBase64 implements Account {
344
+ address: Address
345
+ data: Base64EncodedBytes
346
+ executable: Boolean
347
+ lamports: BigInt
348
+ ownerProgram: Account
349
+ space: BigInt
350
+ rentEpoch: BigInt
351
+ }
352
+
353
+ # An account with base64+zstd encoded data
354
+ type AccountBase64Zstd implements Account {
355
+ address: Address
356
+ data: Base64ZstdEncodedBytes
357
+ executable: Boolean
358
+ lamports: BigInt
359
+ ownerProgram: Account
360
+ space: BigInt
361
+ rentEpoch: BigInt
362
+ }
363
+
364
+ # A nonce account
365
+ type NonceAccountFeeCalculator {
366
+ lamportsPerSignature: String
367
+ }
368
+ type NonceAccount implements Account {
369
+ address: Address
370
+ executable: Boolean
371
+ lamports: BigInt
372
+ ownerProgram: Account
373
+ space: BigInt
374
+ rentEpoch: BigInt
375
+ authority: Account
376
+ blockhash: String
377
+ feeCalculator: NonceAccountFeeCalculator
378
+ }
379
+
380
+ # A lookup table account
381
+ type LookupTableAccount implements Account {
382
+ address: Address
383
+ executable: Boolean
384
+ lamports: BigInt
385
+ ownerProgram: Account
386
+ space: BigInt
387
+ rentEpoch: BigInt
388
+ addresses: [Address]
389
+ authority: Account
390
+ deactivationSlot: String
391
+ lastExtendedSlot: String
392
+ lastExtendedSlotStartIndex: Int
393
+ }
394
+
395
+ # A mint account
396
+ type MintAccount implements Account {
397
+ address: Address
398
+ executable: Boolean
399
+ lamports: BigInt
400
+ ownerProgram: Account
401
+ space: BigInt
402
+ rentEpoch: BigInt
403
+ decimals: Int
404
+ freezeAuthority: Account
405
+ isInitialized: Boolean
406
+ mintAuthority: Account
407
+ supply: String
408
+ }
409
+
410
+ # A token account
411
+ type TokenAccount implements Account {
412
+ address: Address
413
+ executable: Boolean
414
+ lamports: BigInt
415
+ ownerProgram: Account
416
+ space: BigInt
417
+ rentEpoch: BigInt
418
+ isNative: Boolean
419
+ mint: Account
420
+ owner: Account
421
+ state: String
422
+ tokenAmount: TokenAmount
423
+ }
424
+
425
+ # A stake account
426
+ type StakeAccountDataMetaAuthorized {
427
+ staker: Account
428
+ withdrawer: Account
429
+ }
430
+ type StakeAccountDataMetaLockup {
431
+ custodian: Account
432
+ epoch: BigInt
433
+ unixTimestamp: BigInt
434
+ }
435
+ type StakeAccountDataMeta {
436
+ authorized: StakeAccountDataMetaAuthorized
437
+ lockup: StakeAccountDataMetaLockup
438
+ rentExemptReserve: String
439
+ }
440
+ type StakeAccountDataStakeDelegation {
441
+ activationEpoch: BigInt
442
+ deactivationEpoch: BigInt
443
+ stake: String
444
+ voter: Account
445
+ warmupCooldownRate: Int
446
+ }
447
+ type StakeAccountDataStake {
448
+ creditsObserved: BigInt
449
+ delegation: StakeAccountDataStakeDelegation
450
+ }
451
+ type StakeAccount implements Account {
452
+ address: Address
453
+ executable: Boolean
454
+ lamports: BigInt
455
+ ownerProgram: Account
456
+ space: BigInt
457
+ rentEpoch: BigInt
458
+ meta: StakeAccountDataMeta
459
+ stake: StakeAccountDataStake
460
+ }
461
+
462
+ # A vote account
463
+ type VoteAccountDataAuthorizedVoter {
464
+ authorizedVoter: Account
465
+ epoch: BigInt
466
+ }
467
+ type VoteAccountDataEpochCredit {
468
+ credits: String
469
+ epoch: BigInt
470
+ previousCredits: String
471
+ }
472
+ type VoteAccountDataLastTimestamp {
473
+ slot: BigInt
474
+ timestamp: BigInt
475
+ }
476
+ type VoteAccountDataVote {
477
+ confirmationCount: Int
478
+ slot: BigInt
479
+ }
480
+ type VoteAccount implements Account {
481
+ address: Address
482
+ executable: Boolean
483
+ lamports: BigInt
484
+ ownerProgram: Account
485
+ space: BigInt
486
+ rentEpoch: BigInt
487
+ authorizedVoters: [VoteAccountDataAuthorizedVoter]
488
+ authorizedWithdrawer: Account
489
+ commission: Int
490
+ epochCredits: [VoteAccountDataEpochCredit]
491
+ lastTimestamp: VoteAccountDataLastTimestamp
492
+ node: Account
493
+ priorVoters: [Address]
494
+ rootSlot: BigInt
495
+ votes: [VoteAccountDataVote]
496
+ }
497
+ `
498
+ );
499
+ var accountResolvers = {
500
+ Account: {
501
+ __resolveType(account) {
502
+ if (account.encoding === "base58") {
503
+ return "AccountBase58";
238
504
  }
239
- });
240
- return memoisedBlockTransactionDetailsInputType;
241
- };
242
- var memoisedCommitmentInputType;
243
- var commitmentInputType = () => {
244
- if (!memoisedCommitmentInputType)
245
- memoisedCommitmentInputType = new GraphQLEnumType({
246
- name: "Commitment",
247
- values: {
248
- confirmed: {
249
- value: "confirmed"
250
- },
251
- finalized: {
252
- value: "finalized"
253
- },
254
- processed: {
255
- value: "processed"
256
- }
505
+ if (account.encoding === "base64") {
506
+ return "AccountBase64";
257
507
  }
258
- });
259
- return memoisedCommitmentInputType;
260
- };
261
- var memoisedDataSliceInputType;
262
- var dataSliceInputType = () => {
263
- if (!memoisedDataSliceInputType)
264
- memoisedDataSliceInputType = new GraphQLInputObjectType({
265
- fields: {
266
- length: number(),
267
- offset: number()
268
- },
269
- name: "DataSliceConfig"
270
- });
271
- return memoisedDataSliceInputType;
272
- };
273
- var memoisedMaxSupportedTransactionVersionInputType;
274
- var maxSupportedTransactionVersionInputType = () => {
275
- if (!memoisedMaxSupportedTransactionVersionInputType)
276
- memoisedMaxSupportedTransactionVersionInputType = new GraphQLEnumType({
277
- name: "MaxSupportedTransactionVersion",
278
- values: {
279
- legacy: {
280
- value: "legacy"
281
- },
282
- zero: {
283
- value: "0"
284
- }
508
+ if (account.encoding === "base64+zstd") {
509
+ return "AccountBase64Zstd";
285
510
  }
286
- });
287
- return memoisedMaxSupportedTransactionVersionInputType;
288
- };
289
- var memoisedProgramAccountFilterInputType;
290
- var programAccountFilterInputType = () => {
291
- if (!memoisedProgramAccountFilterInputType)
292
- memoisedProgramAccountFilterInputType = new GraphQLInputObjectType({
293
- fields: {
294
- bytes: bigint(),
295
- dataSize: bigint(),
296
- encoding: string(),
297
- offset: bigint()
298
- },
299
- name: "ProgramAccountFilter"
300
- });
301
- return memoisedProgramAccountFilterInputType;
302
- };
303
- var memoisedTransactionEncodingInputType;
304
- var transactionEncodingInputType = () => {
305
- if (!memoisedTransactionEncodingInputType)
306
- memoisedTransactionEncodingInputType = new GraphQLEnumType({
307
- name: "TransactionEncoding",
308
- values: {
309
- base58: {
310
- value: "base58"
311
- },
312
- base64: {
313
- value: "base64"
314
- },
315
- json: {
316
- value: "json"
317
- },
318
- jsonParsed: {
319
- value: "jsonParsed"
511
+ if (account.encoding === "jsonParsed") {
512
+ if (account.programName === "nonce") {
513
+ return "NonceAccount";
320
514
  }
321
- }
322
- });
323
- return memoisedTransactionEncodingInputType;
324
- };
325
- var memoisedTokenAmountType;
326
- var tokenAmountType = () => {
327
- if (!memoisedTokenAmountType) {
328
- memoisedTokenAmountType = new GraphQLObjectType({
329
- fields: {
330
- amount: string(),
331
- decimals: number(),
332
- uiAmount: bigint(),
333
- uiAmountString: string()
334
- },
335
- name: "TokenAmount"
336
- });
337
- }
338
- return memoisedTokenAmountType;
339
- };
340
- var memoisedAccountInterfaceFields;
341
- var accountInterfaceFields = () => {
342
- if (!memoisedAccountInterfaceFields) {
343
- memoisedAccountInterfaceFields = {
344
- encoding: string(),
345
- executable: boolean(),
346
- lamports: bigint(),
347
- rentEpoch: bigint()
348
- };
349
- }
350
- return memoisedAccountInterfaceFields;
351
- };
352
- var memoisedAccountInterface;
353
- var accountInterface = () => {
354
- if (!memoisedAccountInterface) {
355
- memoisedAccountInterface = new GraphQLInterfaceType({
356
- description: "A Solana account",
357
- fields: () => ({
358
- ...accountInterfaceFields(),
359
- owner: type(accountInterface())
360
- }),
361
- name: "Account",
362
- resolveType(account) {
363
- if (account.encoding === "base58") {
364
- return "AccountBase58";
515
+ if (account.accountType === "mint" && account.programName === "spl-token") {
516
+ return "MintAccount";
365
517
  }
366
- if (account.encoding === "base64") {
367
- return "AccountBase64";
518
+ if (account.accountType === "account" && account.programName === "spl-token") {
519
+ return "TokenAccount";
368
520
  }
369
- if (account.encoding === "base64+zstd") {
370
- return "AccountBase64Zstd";
521
+ if (account.programName === "stake") {
522
+ return "StakeAccount";
371
523
  }
372
- if (account.encoding === "jsonParsed") {
373
- if (account.data.parsed.type === "mint" && account.data.program === "spl-token") {
374
- return "MintAccount";
375
- }
376
- if (account.data.parsed.type === "account" && account.data.program === "spl-token") {
377
- return "TokenAccount";
378
- }
379
- if (account.data.program === "nonce") {
380
- return "NonceAccount";
381
- }
382
- if (account.data.program === "stake") {
383
- return "StakeAccount";
384
- }
385
- if (account.data.parsed.type === "vote" && account.data.program === "vote") {
386
- return "VoteAccount";
387
- }
388
- if (account.data.parsed.type === "lookupTable" && account.data.program === "address-lookup-table") {
389
- return "LookupTableAccount";
390
- }
524
+ if (account.accountType === "vote" && account.programName === "vote") {
525
+ return "VoteAccount";
526
+ }
527
+ if (account.accountType === "lookupTable" && account.programName === "address-lookup-table") {
528
+ return "LookupTableAccount";
391
529
  }
392
- return "AccountBase64";
393
530
  }
394
- });
531
+ return "AccountBase64";
532
+ }
533
+ },
534
+ AccountBase58: {
535
+ ownerProgram: resolveAccount("ownerProgram")
536
+ },
537
+ AccountBase64: {
538
+ ownerProgram: resolveAccount("ownerProgram")
539
+ },
540
+ AccountBase64Zstd: {
541
+ ownerProgram: resolveAccount("ownerProgram")
542
+ },
543
+ NonceAccount: {
544
+ authority: resolveAccount("authority"),
545
+ ownerProgram: resolveAccount("ownerProgram")
546
+ },
547
+ LookupTableAccount: {
548
+ authority: resolveAccount("authority"),
549
+ ownerProgram: resolveAccount("ownerProgram")
550
+ },
551
+ MintAccount: {
552
+ freezeAuthority: resolveAccount("freezeAuthority"),
553
+ mintAuthority: resolveAccount("mintAuthority"),
554
+ ownerProgram: resolveAccount("ownerProgram")
555
+ },
556
+ TokenAccount: {
557
+ mint: resolveAccount("mint"),
558
+ owner: resolveAccount("owner"),
559
+ ownerProgram: resolveAccount("ownerProgram")
560
+ },
561
+ StakeAccountDataMetaAuthorized: {
562
+ staker: resolveAccount("staker"),
563
+ withdrawer: resolveAccount("withdrawer")
564
+ },
565
+ StakeAccountDataMetaLockup: {
566
+ custodian: resolveAccount("custodian")
567
+ },
568
+ StakeAccountDataStakeDelegation: {
569
+ voter: resolveAccount("voter")
570
+ },
571
+ StakeAccount: {
572
+ ownerProgram: resolveAccount("ownerProgram")
573
+ },
574
+ VoteAccountDataAuthorizedVoter: {
575
+ authorizedVoter: resolveAccount("authorizedVoter")
576
+ },
577
+ VoteAccount: {
578
+ authorizedWithdrawer: resolveAccount("authorizedWithdrawer"),
579
+ node: resolveAccount("nodePubkey"),
580
+ ownerProgram: resolveAccount("ownerProgram")
395
581
  }
396
- return memoisedAccountInterface;
397
582
  };
398
- var accountType = (name, description, data) => new GraphQLObjectType({
399
- description,
400
- fields: {
401
- ...accountInterfaceFields(),
402
- data,
403
- owner: {
404
- args: {
405
- commitment: type(commitmentInputType()),
406
- dataSlice: type(dataSliceInputType()),
407
- encoding: type(accountEncodingInputType()),
408
- minContextSlot: bigint()
409
- },
410
- resolve: (parent, args, context) => context.resolveAccount({ ...args, address: parent.owner }),
411
- type: accountInterface()
412
- }
413
- },
414
- interfaces: [accountInterface()],
415
- name
416
- });
417
- var accountDataJsonParsed = (name, parsedInfoFields) => object(name + "Data", {
418
- parsed: object(name + "DataParsed", {
419
- info: object(name + "DataParsedInfo", parsedInfoFields),
420
- type: string()
421
- }),
422
- program: string(),
423
- space: bigint()
424
- });
425
- var memoisedAccountBase58;
426
- var accountBase58 = () => {
427
- if (!memoisedAccountBase58)
428
- memoisedAccountBase58 = accountType("AccountBase58", "A Solana account with base58 encoded data", string());
429
- return memoisedAccountBase58;
430
- };
431
- var memoisedAccountBase64;
432
- var accountBase64 = () => {
433
- if (!memoisedAccountBase64)
434
- memoisedAccountBase64 = accountType("AccountBase64", "A Solana account with base64 encoded data", string());
435
- return memoisedAccountBase64;
436
- };
437
- var memoisedAccountBase64Zstd;
438
- var accountBase64Zstd = () => {
439
- if (!memoisedAccountBase64Zstd)
440
- memoisedAccountBase64Zstd = accountType(
441
- "AccountBase64Zstd",
442
- "A Solana account with base64 encoded data compressed with zstd",
443
- string()
444
- );
445
- return memoisedAccountBase64Zstd;
446
- };
447
- var memoisedAccountNonceAccount;
448
- var accountNonceAccount = () => {
449
- if (!memoisedAccountNonceAccount)
450
- memoisedAccountNonceAccount = accountType(
451
- "NonceAccount",
452
- "A nonce account",
453
- accountDataJsonParsed("Nonce", {
454
- authority: string(),
455
- blockhash: string(),
456
- feeCalculator: object("NonceFeeCalculator", {
457
- lamportsPerSignature: string()
458
- })
459
- })
460
- );
461
- return memoisedAccountNonceAccount;
462
- };
463
- var memoisedAccountLookupTable;
464
- var accountLookupTable = () => {
465
- if (!memoisedAccountLookupTable)
466
- memoisedAccountLookupTable = accountType(
467
- "LookupTableAccount",
468
- "An address lookup table account",
469
- accountDataJsonParsed("LookupTable", {
470
- addresses: list(string()),
471
- authority: string(),
472
- deactivationSlot: string(),
473
- lastExtendedSlot: string(),
474
- lastExtendedSlotStartIndex: number()
475
- })
476
- );
477
- return memoisedAccountLookupTable;
478
- };
479
- var memoisedAccountMint;
480
- var accountMint = () => {
481
- if (!memoisedAccountMint)
482
- memoisedAccountMint = accountType(
483
- "MintAccount",
484
- "An SPL mint",
485
- accountDataJsonParsed("Mint", {
486
- decimals: number(),
487
- freezeAuthority: string(),
488
- isInitialized: boolean(),
489
- mintAuthority: string(),
490
- supply: string()
491
- })
492
- );
493
- return memoisedAccountMint;
494
- };
495
- var memoisedAccountTokenAccount;
496
- var accountTokenAccount = () => {
497
- if (!memoisedAccountTokenAccount)
498
- memoisedAccountTokenAccount = accountType(
499
- "TokenAccount",
500
- "An SPL token account",
501
- accountDataJsonParsed("TokenAccount", {
502
- isNative: boolean(),
503
- mint: string(),
504
- owner: string(),
505
- state: string(),
506
- tokenAmount: type(tokenAmountType())
507
- })
508
- );
509
- return memoisedAccountTokenAccount;
583
+
584
+ // src/schema/block.ts
585
+ var blockTypeDefs = (
586
+ /* GraphQL */
587
+ `
588
+ type TransactionMetaForAccounts {
589
+ err: String
590
+ fee: BigInt
591
+ postBalances: [BigInt]
592
+ postTokenBalances: [TokenBalance]
593
+ preBalances: [BigInt]
594
+ preTokenBalances: [TokenBalance]
595
+ status: TransactionStatus
596
+ }
597
+
598
+ type TransactionDataForAccounts {
599
+ accountKeys: [Address]
600
+ signatures: [String]
601
+ }
602
+
603
+ type BlockTransactionAccounts {
604
+ meta: TransactionMetaForAccounts
605
+ data: TransactionDataForAccounts
606
+ version: String
607
+ }
608
+
609
+ # Block interface
610
+ interface Block {
611
+ blockhash: String
612
+ blockHeight: BigInt
613
+ blockTime: Int
614
+ parentSlot: BigInt
615
+ previousBlockhash: String
616
+ rewards: [Reward]
617
+ transactionDetails: String
618
+ }
619
+
620
+ # A block with account transaction details
621
+ type BlockWithAccounts implements Block {
622
+ blockhash: String
623
+ blockHeight: BigInt
624
+ blockTime: Int
625
+ parentSlot: BigInt
626
+ previousBlockhash: String
627
+ rewards: [Reward]
628
+ transactions: [BlockTransactionAccounts]
629
+ transactionDetails: String
630
+ }
631
+
632
+ # A block with full transaction details
633
+ type BlockWithFull implements Block {
634
+ blockhash: String
635
+ blockHeight: BigInt
636
+ blockTime: Int
637
+ parentSlot: BigInt
638
+ previousBlockhash: String
639
+ rewards: [Reward]
640
+ transactions: [Transaction]
641
+ transactionDetails: String
642
+ }
643
+
644
+ # A block with none transaction details
645
+ type BlockWithNone implements Block {
646
+ blockhash: String
647
+ blockHeight: BigInt
648
+ blockTime: Int
649
+ parentSlot: BigInt
650
+ previousBlockhash: String
651
+ rewards: [Reward]
652
+ transactionDetails: String
653
+ }
654
+
655
+ # A block with signature transaction details
656
+ type BlockWithSignatures implements Block {
657
+ blockhash: String
658
+ blockHeight: BigInt
659
+ blockTime: Int
660
+ parentSlot: BigInt
661
+ previousBlockhash: String
662
+ rewards: [Reward]
663
+ signatures: [String]
664
+ transactionDetails: String
665
+ }
666
+ `
667
+ );
668
+ var blockResolvers = {
669
+ Block: {
670
+ __resolveType(block) {
671
+ switch (block.transactionDetails) {
672
+ case "accounts":
673
+ return "BlockWithAccounts";
674
+ case "none":
675
+ return "BlockWithNone";
676
+ case "signatures":
677
+ return "BlockWithSignatures";
678
+ default:
679
+ return "BlockWithFull";
680
+ }
681
+ }
682
+ }
510
683
  };
511
- var memoisedAccountStakeAccount;
512
- var accountStakeAccount = () => {
513
- if (!memoisedAccountStakeAccount)
514
- memoisedAccountStakeAccount = accountType(
515
- "StakeAccount",
516
- "A stake account",
517
- accountDataJsonParsed("Stake", {
518
- meta: object("StakeMeta", {
519
- authorized: object("StakeMetaAuthorized", {
520
- staker: string(),
521
- withdrawer: string()
522
- }),
523
- lockup: object("StakeMetaLockup", {
524
- custodian: string(),
525
- epoch: bigint(),
526
- unixTimestamp: bigint()
527
- }),
528
- rentExemptReserve: string()
529
- }),
530
- stake: object("StakeStake", {
531
- creditsObserved: bigint(),
532
- delegation: object("StakeStakeDelegation", {
533
- activationEpoch: bigint(),
534
- deactivationEpoch: bigint(),
535
- stake: string(),
536
- voter: string(),
537
- warmupCooldownRate: number()
538
- })
539
- })
540
- })
541
- );
542
- return memoisedAccountStakeAccount;
684
+
685
+ // src/schema/common/inputs.ts
686
+ var inputTypeDefs = (
687
+ /* GraphQL */
688
+ `
689
+ input DataSlice {
690
+ offset: Int
691
+ length: Int
692
+ }
693
+
694
+ input ProgramAccountsFilter {
695
+ bytes: BigInt
696
+ dataSize: BigInt
697
+ encoding: AccountEncoding
698
+ offset: BigInt
699
+ }
700
+ `
701
+ );
702
+ var inputResolvers = {};
703
+ var scalarTypeDefs = (
704
+ /* GraphQL */
705
+ `
706
+ scalar Address
707
+ scalar Base58EncodedBytes
708
+ scalar Base64EncodedBytes
709
+ scalar Base64ZstdEncodedBytes
710
+ scalar BigInt
711
+ `
712
+ );
713
+ var stringScalarAlias = {
714
+ __parseLiteral(ast) {
715
+ if (ast.kind === Kind.STRING) {
716
+ return ast.value.toString();
717
+ }
718
+ return null;
719
+ },
720
+ __parseValue(value) {
721
+ return value;
722
+ },
723
+ __serialize(value) {
724
+ return value;
725
+ }
543
726
  };
544
- var memoisedAccountVoteAccount;
545
- var accountVoteAccount = () => {
546
- if (!memoisedAccountVoteAccount)
547
- memoisedAccountVoteAccount = accountType(
548
- "VoteAccount",
549
- "A vote account",
550
- accountDataJsonParsed("Vote", {
551
- authorizedVoters: list(
552
- object("VoteAuthorizedVoter", {
553
- authorizedVoter: string(),
554
- epoch: bigint()
555
- })
556
- ),
557
- authorizedWithdrawer: string(),
558
- commission: number(),
559
- epochCredits: list(
560
- object("VoteEpochCredits", {
561
- credits: string(),
562
- epoch: bigint(),
563
- previousCredits: string()
564
- })
565
- ),
566
- lastTimestamp: object("VoteLastTimestamp", {
567
- slot: bigint(),
568
- timestamp: bigint()
569
- }),
570
- nodePubkey: string(),
571
- priorVoters: list(string()),
572
- rootSlot: bigint(),
573
- votes: list(
574
- object("VoteVote", {
575
- confirmationCount: number(),
576
- slot: bigint()
577
- })
578
- )
579
- })
580
- );
581
- return memoisedAccountVoteAccount;
727
+ var scalarResolvers = {
728
+ Address: stringScalarAlias,
729
+ Base58EncodedBytes: stringScalarAlias,
730
+ Base64EncodedBytes: stringScalarAlias,
731
+ Base64ZstdEncodedBytes: stringScalarAlias,
732
+ BigInt: {
733
+ __parseLiteral(ast) {
734
+ if (ast.kind === Kind.STRING) {
735
+ return BigInt(ast.value);
736
+ }
737
+ return null;
738
+ },
739
+ __parseValue(value) {
740
+ return BigInt(value);
741
+ },
742
+ __serialize(value) {
743
+ return BigInt(value);
744
+ }
745
+ }
582
746
  };
583
- var memoisedAccountTypes;
584
- var accountTypes = () => {
585
- if (!memoisedAccountTypes)
586
- memoisedAccountTypes = [
587
- accountBase58(),
588
- accountBase64(),
589
- accountBase64Zstd(),
590
- accountNonceAccount(),
591
- accountLookupTable(),
592
- accountMint(),
593
- accountTokenAccount(),
594
- accountStakeAccount(),
595
- accountVoteAccount()
596
- ];
597
- return memoisedAccountTypes;
747
+
748
+ // src/schema/common/types.ts
749
+ var commonTypeDefs = (
750
+ /* GraphQL */
751
+ `
752
+ enum AccountEncoding {
753
+ BASE_58
754
+ BASE_64
755
+ BASE_64_ZSTD
756
+ PARSED
757
+ }
758
+
759
+ enum BlockTransactionDetails {
760
+ accounts
761
+ full
762
+ none
763
+ signatures
764
+ }
765
+
766
+ enum Commitment {
767
+ confirmed
768
+ finalized
769
+ processed
770
+ }
771
+
772
+ type ReturnData {
773
+ data: Base64EncodedBytes
774
+ programId: Address
775
+ }
776
+
777
+ type Reward {
778
+ commission: Int
779
+ lamports: BigInt
780
+ postBalance: BigInt
781
+ pubkey: Address
782
+ rewardType: String
783
+ }
784
+
785
+ type TokenAmount {
786
+ amount: String
787
+ decimals: Int
788
+ uiAmount: BigInt
789
+ uiAmountString: String
790
+ }
791
+
792
+ type TokenBalance {
793
+ accountIndex: Int
794
+ mint: Account
795
+ owner: Account
796
+ programId: Address
797
+ uiTokenAmount: TokenAmount
798
+ }
799
+
800
+ enum TransactionEncoding {
801
+ BASE_58
802
+ BASE_64
803
+ PARSED
804
+ }
805
+
806
+ enum TransactionVersion {
807
+ LEGACY
808
+ ZERO
809
+ }
810
+ `
811
+ );
812
+ var commonResolvers = {
813
+ AccountEncoding: {
814
+ BASE_58: "base58",
815
+ BASE_64: "base64",
816
+ BASE_64_ZSTD: "base64+zstd",
817
+ PARSED: "jsonParsed"
818
+ },
819
+ TokenBalance: {
820
+ mint: resolveAccount("mint"),
821
+ owner: resolveAccount("owner")
822
+ },
823
+ TransactionEncoding: {
824
+ BASE_58: "base58",
825
+ BASE_64: "base64",
826
+ PARSED: "jsonParsed"
827
+ },
828
+ TransactionVersion: {
829
+ LEGACY: "legacy",
830
+ ZERO: 0
831
+ }
598
832
  };
599
833
 
600
- // src/schema/account/query.ts
601
- var accountQuery = () => ({
602
- account: {
603
- args: {
604
- address: nonNull(string()),
605
- commitment: type(commitmentInputType()),
606
- dataSlice: type(dataSliceInputType()),
607
- encoding: type(accountEncodingInputType()),
608
- minContextSlot: bigint()
609
- },
610
- resolve: (_parent, args, context) => context.resolveAccount(args),
611
- type: accountInterface()
612
- }
613
- });
614
- var memoisedTokenBalance;
615
- var tokenBalance = () => {
616
- if (!memoisedTokenBalance)
617
- memoisedTokenBalance = new GraphQLObjectType({
618
- fields: {
619
- accountIndex: number(),
620
- mint: string(),
621
- owner: string(),
622
- programId: string(),
623
- uiAmountString: string()
624
- },
625
- name: "TokenBalance"
626
- });
627
- return memoisedTokenBalance;
628
- };
629
- var memoisedTransactionStatus;
630
- var transactionStatus = () => {
631
- if (!memoisedTransactionStatus)
632
- memoisedTransactionStatus = new GraphQLUnionType({
633
- name: "TransactionStatus",
634
- types: [
635
- new GraphQLObjectType({
636
- fields: {
637
- Err: string()
638
- },
639
- name: "TransactionStatusError"
640
- }),
641
- new GraphQLObjectType({
642
- fields: {
643
- Ok: string()
644
- },
645
- name: "TransactionStatusOk"
646
- })
647
- ]
648
- });
649
- return memoisedTransactionStatus;
650
- };
651
- var memoisedReward;
652
- var reward = () => {
653
- if (!memoisedReward)
654
- memoisedReward = new GraphQLObjectType({
655
- fields: {
656
- commission: number(),
657
- lamports: bigint(),
658
- postBalance: bigint(),
659
- pubkey: string(),
660
- rewardType: string()
661
- },
662
- name: "Reward"
663
- });
664
- return memoisedReward;
665
- };
666
- var memoisedAddressTableLookup;
667
- var addressTableLookup = () => {
668
- if (!memoisedAddressTableLookup)
669
- memoisedAddressTableLookup = new GraphQLObjectType({
670
- fields: {
671
- accountKey: string(),
672
- readableIndexes: list(number()),
673
- writableIndexes: list(number())
674
- },
675
- name: "AddressTableLookup"
676
- });
677
- return memoisedAddressTableLookup;
678
- };
679
- var memoisedReturnData;
680
- var returnData = () => {
681
- if (!memoisedReturnData)
682
- memoisedReturnData = new GraphQLObjectType({
683
- fields: {
684
- data: string(),
685
- programId: string()
686
- },
687
- name: "ReturnData"
688
- });
689
- return memoisedReturnData;
690
- };
691
- var memoisedTransactionInstruction;
692
- var transactionInstruction = () => {
693
- if (!memoisedTransactionInstruction)
694
- memoisedTransactionInstruction = new GraphQLObjectType({
695
- fields: {
696
- accounts: list(number()),
697
- data: string(),
698
- programIdIndex: number()
699
- },
700
- name: "TransactionInstruction"
701
- });
702
- return memoisedTransactionInstruction;
703
- };
704
- var memoisedTransactionMetaLoadedAddresses;
705
- var transactionMetaLoadedAddresses = () => {
706
- if (!memoisedTransactionMetaLoadedAddresses)
707
- memoisedTransactionMetaLoadedAddresses = new GraphQLObjectType({
708
- fields: {
709
- readonly: list(string()),
710
- // Base58 encoded addresses
711
- writable: list(string())
712
- // Base58 encoded addresses
713
- },
714
- name: "TransactionMetaLoadedAddresses"
715
- });
716
- return memoisedTransactionMetaLoadedAddresses;
717
- };
718
- var memoisedParsedTransactionInstructionInterface;
719
- var parsedTransactionInstructionInterface = () => {
720
- if (!memoisedParsedTransactionInstructionInterface)
721
- memoisedParsedTransactionInstructionInterface = new GraphQLInterfaceType({
722
- fields: {
723
- programId: string()
724
- },
725
- name: "ParsedTransactionInstruction",
726
- resolveType(instruction) {
727
- if (instruction.program === "address-lookup-table") {
728
- if (instruction.info.type === "createLookupTable") {
834
+ // src/schema/instruction.ts
835
+ var instructionTypeDefs = (
836
+ /* GraphQL */
837
+ `
838
+ # Transaction instruction interface
839
+ interface TransactionInstruction {
840
+ programId: Address
841
+ }
842
+
843
+ # Generic transaction instruction
844
+ type GenericInstruction implements TransactionInstruction {
845
+ accounts: [Address]
846
+ data: Base64EncodedBytes
847
+ programId: Address
848
+ }
849
+
850
+ # AddressLookupTable: CreateLookupTable
851
+ type CreateLookupTableInstruction implements TransactionInstruction {
852
+ programId: Address
853
+ bumpSeed: BigInt # FIXME:*
854
+ lookupTableAccount: Account
855
+ lookupTableAuthority: Account
856
+ payerAccount: Account
857
+ recentSlot: BigInt
858
+ systemProgram: Account
859
+ }
860
+
861
+ # AddressLookupTable: ExtendLookupTable
862
+ type ExtendLookupTableInstruction implements TransactionInstruction {
863
+ programId: Address
864
+ lookupTableAccount: Account
865
+ lookupTableAuthority: Account
866
+ newAddresses: [Address]
867
+ payerAccount: Account
868
+ systemProgram: Account
869
+ }
870
+
871
+ # AddressLookupTable: FreezeLookupTable
872
+ type FreezeLookupTableInstruction implements TransactionInstruction {
873
+ programId: Address
874
+ lookupTableAccount: Account
875
+ lookupTableAuthority: Account
876
+ }
877
+
878
+ # AddressLookupTable: DeactivateLookupTable
879
+ type DeactivateLookupTableInstruction implements TransactionInstruction {
880
+ programId: Address
881
+ lookupTableAccount: Account
882
+ lookupTableAuthority: Account
883
+ }
884
+
885
+ # AddressLookupTable: CloseLookupTable
886
+ type CloseLookupTableInstruction implements TransactionInstruction {
887
+ programId: Address
888
+ lookupTableAccount: Account
889
+ lookupTableAuthority: Account
890
+ recipient: Account
891
+ }
892
+
893
+ # BpfLoader: Write
894
+ type BpfLoaderWriteInstruction implements TransactionInstruction {
895
+ programId: Address
896
+ account: Account
897
+ bytes: Base64EncodedBytes
898
+ offset: BigInt # FIXME:*
899
+ }
900
+
901
+ # BpfLoader: Finalize
902
+ type BpfLoaderFinalizeInstruction implements TransactionInstruction {
903
+ programId: Address
904
+ account: Account
905
+ }
906
+
907
+ # BpfUpgradeableLoader: InitializeBuffer
908
+ type BpfUpgradeableLoaderInitializeBufferInstruction implements TransactionInstruction {
909
+ programId: Address
910
+ account: Account
911
+ }
912
+
913
+ # BpfUpgradeableLoader: Write
914
+ type BpfUpgradeableLoaderWriteInstruction implements TransactionInstruction {
915
+ programId: Address
916
+ account: Account
917
+ authority: Account
918
+ bytes: Base64EncodedBytes
919
+ offset: BigInt # FIXME:*
920
+ }
921
+
922
+ # BpfUpgradeableLoader: DeployWithMaxDataLen
923
+ type BpfUpgradeableLoaderDeployWithMaxDataLenInstruction implements TransactionInstruction {
924
+ programId: Address
925
+ authority: Account
926
+ bufferAccount: Account
927
+ clockSysvar: Address
928
+ maxDataLen: BigInt
929
+ payerAccount: Account
930
+ programAccount: Account
931
+ programDataAccount: Account
932
+ rentSysvar: Address
933
+ }
934
+
935
+ # BpfUpgradeableLoader: Upgrade
936
+ type BpfUpgradeableLoaderUpgradeInstruction implements TransactionInstruction {
937
+ programId: Address
938
+ authority: Account
939
+ bufferAccount: Account
940
+ clockSysvar: Address
941
+ programAccount: Account
942
+ programDataAccount: Account
943
+ rentSysvar: Address
944
+ spillAccount: Account
945
+ }
946
+
947
+ # BpfUpgradeableLoader: SetAuthority
948
+
949
+ type BpfUpgradeableLoaderSetAuthorityInstruction implements TransactionInstruction {
950
+ programId: Address
951
+ account: Account
952
+ authority: Account
953
+ newAuthority: Account
954
+ }
955
+
956
+ # BpfUpgradeableLoader: SetAuthorityChecked
957
+ type BpfUpgradeableLoaderSetAuthorityCheckedInstruction implements TransactionInstruction {
958
+ programId: Address
959
+ account: Account
960
+ authority: Account
961
+ newAuthority: Account
962
+ }
963
+
964
+ # BpfUpgradeableLoader: Close
965
+ type BpfUpgradeableLoaderCloseInstruction implements TransactionInstruction {
966
+ programId: Address
967
+ account: Account
968
+ authority: Account
969
+ programAccount: Account
970
+ recipient: Account
971
+ }
972
+
973
+ # BpfUpgradeableLoader: ExtendProgram
974
+ type BpfUpgradeableLoaderExtendProgramInstruction implements TransactionInstruction {
975
+ programId: Address
976
+ additionalBytes: BigInt
977
+ payerAccount: Account
978
+ programAccount: Account
979
+ programDataAccount: Account
980
+ systemProgram: Account
981
+ }
982
+
983
+ # SplAssociatedTokenAccount: Create
984
+ type SplAssociatedTokenCreateInstruction implements TransactionInstruction {
985
+ programId: Address
986
+ account: Account
987
+ mint: Address
988
+ source: Account
989
+ systemProgram: Account
990
+ tokenProgram: Account
991
+ wallet: Account
992
+ }
993
+
994
+ # SplAssociatedTokenAccount: CreateIdempotent
995
+ type SplAssociatedTokenCreateIdempotentInstruction implements TransactionInstruction {
996
+ programId: Address
997
+ account: Account
998
+ mint: Address
999
+ source: Account
1000
+ systemProgram: Account
1001
+ tokenProgram: Account
1002
+ wallet: Account
1003
+ }
1004
+
1005
+ # SplAssociatedTokenAccount: RecoverNested
1006
+ type SplAssociatedTokenRecoverNestedInstruction implements TransactionInstruction {
1007
+ programId: Address
1008
+ destination: Account
1009
+ nestedMint: Account
1010
+ nestedOwner: Account
1011
+ nestedSource: Account
1012
+ ownerMint: Account
1013
+ tokenProgram: Account
1014
+ wallet: Account
1015
+ }
1016
+
1017
+ # SplMemo
1018
+ type SplMemoInstruction implements TransactionInstruction {
1019
+ programId: Address
1020
+ data: String
1021
+ }
1022
+
1023
+ # SplToken: InitializeMint
1024
+ type SplTokenInitializeMintInstruction implements TransactionInstruction {
1025
+ programId: Address
1026
+ decimals: BigInt # FIXME:*
1027
+ freezeAuthority: Account
1028
+ mint: Account
1029
+ mintAuthority: Account
1030
+ rentSysvar: Address
1031
+ }
1032
+
1033
+ # SplToken: InitializeMint2
1034
+ type SplTokenInitializeMint2Instruction implements TransactionInstruction {
1035
+ programId: Address
1036
+ decimals: BigInt # FIXME:*
1037
+ freezeAuthority: Account
1038
+ mint: Account
1039
+ mintAuthority: Account
1040
+ }
1041
+
1042
+ # SplToken: InitializeAccount
1043
+ type SplTokenInitializeAccountInstruction implements TransactionInstruction {
1044
+ programId: Address
1045
+ account: Account
1046
+ mint: Account
1047
+ owner: Account
1048
+ rentSysvar: Address
1049
+ }
1050
+
1051
+ # SplToken: InitializeAccount2
1052
+ type SplTokenInitializeAccount2Instruction implements TransactionInstruction {
1053
+ programId: Address
1054
+ account: Account
1055
+ mint: Account
1056
+ owner: Account
1057
+ rentSysvar: Address
1058
+ }
1059
+
1060
+ # SplToken: InitializeAccount3
1061
+ type SplTokenInitializeAccount3Instruction implements TransactionInstruction {
1062
+ programId: Address
1063
+ account: Account
1064
+ mint: Account
1065
+ owner: Account
1066
+ }
1067
+
1068
+ # SplToken: InitializeMultisig
1069
+ type SplTokenInitializeMultisigInstruction implements TransactionInstruction {
1070
+ programId: Address
1071
+ m: BigInt # FIXME:*
1072
+ multisig: Account
1073
+ rentSysvar: Address
1074
+ signers: [Address]
1075
+ }
1076
+
1077
+ # SplToken: InitializeMultisig2
1078
+ type SplTokenInitializeMultisig2Instruction implements TransactionInstruction {
1079
+ programId: Address
1080
+ m: BigInt # FIXME:*
1081
+ multisig: Account
1082
+ signers: [Address]
1083
+ }
1084
+
1085
+ # SplToken: Transfer
1086
+ type SplTokenTransferInstruction implements TransactionInstruction {
1087
+ programId: Address
1088
+ amount: String
1089
+ authority: Account
1090
+ destination: Account
1091
+ multisigAuthority: Account
1092
+ source: Account
1093
+ }
1094
+
1095
+ # SplToken: Approve
1096
+ type SplTokenApproveInstruction implements TransactionInstruction {
1097
+ programId: Address
1098
+ amount: String
1099
+ delegate: Account
1100
+ multisigOwner: Account
1101
+ owner: Account
1102
+ source: Account
1103
+ }
1104
+
1105
+ # SplToken: Revoke
1106
+ type SplTokenRevokeInstruction implements TransactionInstruction {
1107
+ programId: Address
1108
+ multisigOwner: Account
1109
+ owner: Account
1110
+ source: Account
1111
+ }
1112
+
1113
+ # SplToken: SetAuthority
1114
+ type SplTokenSetAuthorityInstruction implements TransactionInstruction {
1115
+ programId: Address
1116
+ authority: Account
1117
+ authorityType: String
1118
+ multisigAuthority: Account
1119
+ newAuthority: Account
1120
+ }
1121
+
1122
+ # SplToken: MintTo
1123
+ type SplTokenMintToInstruction implements TransactionInstruction {
1124
+ programId: Address
1125
+ account: Account
1126
+ amount: String
1127
+ authority: Account
1128
+ mint: Account
1129
+ mintAuthority: Account
1130
+ multisigMintAuthority: Account
1131
+ }
1132
+
1133
+ # SplToken: Burn
1134
+ type SplTokenBurnInstruction implements TransactionInstruction {
1135
+ programId: Address
1136
+ account: Account
1137
+ amount: String
1138
+ authority: Account
1139
+ mint: Account
1140
+ multisigAuthority: Account
1141
+ }
1142
+
1143
+ # SplToken: CloseAccount
1144
+ type SplTokenCloseAccountInstruction implements TransactionInstruction {
1145
+ programId: Address
1146
+ account: Account
1147
+ destination: Account
1148
+ multisigOwner: Account
1149
+ owner: Account
1150
+ }
1151
+
1152
+ # SplToken: FreezeAccount
1153
+ type SplTokenFreezeAccountInstruction implements TransactionInstruction {
1154
+ programId: Address
1155
+ account: Account
1156
+ freezeAuthority: Account
1157
+ mint: Account
1158
+ multisigFreezeAuthority: Account
1159
+ }
1160
+
1161
+ # SplToken: ThawAccount
1162
+ type SplTokenThawAccountInstruction implements TransactionInstruction {
1163
+ programId: Address
1164
+ account: Account
1165
+ freezeAuthority: Account
1166
+ mint: Account
1167
+ multisigFreezeAuthority: Account
1168
+ }
1169
+
1170
+ # SplToken: TransferChecked
1171
+ type SplTokenTransferCheckedInstruction implements TransactionInstruction {
1172
+ programId: Address
1173
+ amount: String
1174
+ authority: Account
1175
+ decimals: BigInt # FIXME:*
1176
+ destination: Account
1177
+ mint: Account
1178
+ multisigAuthority: Account
1179
+ source: Account
1180
+ tokenAmount: String
1181
+ }
1182
+
1183
+ # SplToken: ApproveChecked
1184
+ type SplTokenApproveCheckedInstruction implements TransactionInstruction {
1185
+ programId: Address
1186
+ delegate: Account
1187
+ mint: Account
1188
+ multisigOwner: Account
1189
+ owner: Account
1190
+ source: Account
1191
+ tokenAmount: String
1192
+ }
1193
+
1194
+ # SplToken: MintToChecked
1195
+ type SplTokenMintToCheckedInstruction implements TransactionInstruction {
1196
+ programId: Address
1197
+ account: Account
1198
+ authority: Account
1199
+ mint: Account
1200
+ mintAuthority: Account
1201
+ multisigMintAuthority: Account
1202
+ tokenAmount: String
1203
+ }
1204
+
1205
+ # SplToken: BurnChecked
1206
+ type SplTokenBurnCheckedInstruction implements TransactionInstruction {
1207
+ programId: Address
1208
+ account: Account
1209
+ authority: Account
1210
+ mint: Account
1211
+ multisigAuthority: Account
1212
+ tokenAmount: String
1213
+ }
1214
+
1215
+ # SplToken: SyncNative
1216
+ type SplTokenSyncNativeInstruction implements TransactionInstruction {
1217
+ programId: Address
1218
+ account: Account
1219
+ }
1220
+
1221
+ # SplToken: GetAccountDataSize
1222
+ type SplTokenGetAccountDataSizeInstruction implements TransactionInstruction {
1223
+ programId: Address
1224
+ extensionTypes: [String]
1225
+ mint: Account
1226
+ }
1227
+
1228
+ # SplToken: InitializeImmutableOwner
1229
+ type SplTokenInitializeImmutableOwnerInstruction implements TransactionInstruction {
1230
+ programId: Address
1231
+ account: Account
1232
+ }
1233
+
1234
+ # SplToken: AmountToUiAmount
1235
+ type SplTokenAmountToUiAmountInstruction implements TransactionInstruction {
1236
+ programId: Address
1237
+ amount: String
1238
+ mint: Account
1239
+ }
1240
+
1241
+ # SplToken: UiAmountToAmount
1242
+ type SplTokenUiAmountToAmountInstruction implements TransactionInstruction {
1243
+ programId: Address
1244
+ mint: Account
1245
+ uiAmount: String
1246
+ }
1247
+
1248
+ # SplToken: InitializeMintCloseAuthority
1249
+ type SplTokenInitializeMintCloseAuthorityInstruction implements TransactionInstruction {
1250
+ programId: Address
1251
+ mint: Account
1252
+ newAuthority: Account
1253
+ }
1254
+
1255
+ # TODO: Extensions!
1256
+ # - TransferFeeExtension
1257
+ # - ConfidentialTransferFeeExtension
1258
+ # - DefaultAccountStateExtension
1259
+ # - Reallocate
1260
+ # - MemoTransferExtension
1261
+ # - CreateNativeMint
1262
+ # - InitializeNonTransferableMint
1263
+ # - InterestBearingMintExtension
1264
+ # - CpiGuardExtension
1265
+ # - InitializePermanentDelegate
1266
+ # - TransferHookExtension
1267
+ # - ConfidentialTransferFeeExtension
1268
+ # - WithdrawExcessLamports
1269
+ # - MetadataPointerExtension
1270
+
1271
+ type Lockup {
1272
+ custodian: Account
1273
+ epoch: BigInt
1274
+ unixTimestamp: BigInt
1275
+ }
1276
+
1277
+ # Stake: Initialize
1278
+ type StakeInitializeInstructionDataAuthorized {
1279
+ staker: Account
1280
+ withdrawer: Account
1281
+ }
1282
+ type StakeInitializeInstruction implements TransactionInstruction {
1283
+ programId: Address
1284
+ authorized: StakeInitializeInstructionDataAuthorized
1285
+ lockup: Lockup
1286
+ rentSysvar: Address
1287
+ stakeAccount: Account
1288
+ }
1289
+
1290
+ # Stake: Authorize
1291
+ type StakeAuthorizeInstruction implements TransactionInstruction {
1292
+ programId: Address
1293
+ authority: Account
1294
+ authorityType: String
1295
+ clockSysvar: Address
1296
+ custodian: Account
1297
+ newAuthority: Account
1298
+ stakeAccount: Account
1299
+ }
1300
+
1301
+ # Stake: DelegateStake
1302
+ type StakeDelegateStakeInstruction implements TransactionInstruction {
1303
+ programId: Address
1304
+ clockSysvar: Address
1305
+ stakeAccount: Account
1306
+ stakeAuthority: Account
1307
+ stakeConfigAccount: Account
1308
+ stakeHistorySysvar: Address
1309
+ voteAccount: Account
1310
+ }
1311
+
1312
+ # Stake: Split
1313
+ type StakeSplitInstruction implements TransactionInstruction {
1314
+ programId: Address
1315
+ lamports: BigInt
1316
+ newSplitAccount: Account
1317
+ stakeAccount: Account
1318
+ stakeAuthority: Account
1319
+ }
1320
+
1321
+ # Stake: Withdraw
1322
+ type StakeWithdrawInstruction implements TransactionInstruction {
1323
+ programId: Address
1324
+ clockSysvar: Address
1325
+ destination: Account
1326
+ lamports: BigInt
1327
+ stakeAccount: Account
1328
+ withdrawAuthority: Account
1329
+ }
1330
+
1331
+ # Stake: Deactivate
1332
+ type StakeDeactivateInstruction implements TransactionInstruction {
1333
+ programId: Address
1334
+ clockSysvar: Address
1335
+ stakeAccount: Account
1336
+ stakeAuthority: Account
1337
+ }
1338
+
1339
+ # Stake: SetLockup
1340
+ type StakeSetLockupInstruction implements TransactionInstruction {
1341
+ programId: Address
1342
+ custodian: Account
1343
+ lockup: Lockup
1344
+ stakeAccount: Account
1345
+ }
1346
+
1347
+ # Stake: Merge
1348
+ type StakeMergeInstruction implements TransactionInstruction {
1349
+ programId: Address
1350
+ clockSysvar: Address
1351
+ destination: Account
1352
+ source: Account
1353
+ stakeAuthority: Account
1354
+ stakeHistorySysvar: Address
1355
+ }
1356
+
1357
+ # Stake: AuthorizeWithSeed
1358
+ type StakeAuthorizeWithSeedInstruction implements TransactionInstruction {
1359
+ programId: Address
1360
+ authorityBase: Account
1361
+ authorityOwner: Account
1362
+ authoritySeed: String
1363
+ authorityType: String
1364
+ clockSysvar: Address
1365
+ custodian: Account
1366
+ newAuthorized: Account
1367
+ stakeAccount: Account
1368
+ }
1369
+
1370
+ # Stake: InitializeChecked
1371
+ type StakeInitializeCheckedInstructionDataAuthorized {
1372
+ staker: Account
1373
+ withdrawer: Account
1374
+ }
1375
+ type StakeInitializeCheckedInstruction implements TransactionInstruction {
1376
+ programId: Address
1377
+ authorized: StakeInitializeCheckedInstructionDataAuthorized
1378
+ lockup: Lockup
1379
+ rentSysvar: Address
1380
+ stakeAccount: Account
1381
+ }
1382
+
1383
+ # Stake: AuthorizeChecked
1384
+ type StakeAuthorizeCheckedInstruction implements TransactionInstruction {
1385
+ programId: Address
1386
+ authority: Account
1387
+ authorityType: String
1388
+ clockSysvar: Address
1389
+ custodian: Account
1390
+ newAuthority: Account
1391
+ stakeAccount: Account
1392
+ }
1393
+
1394
+ # Stake: AuthorizeCheckedWithSeed
1395
+ type StakeAuthorizeCheckedWithSeedInstruction implements TransactionInstruction {
1396
+ programId: Address
1397
+ authorityBase: Account
1398
+ authorityOwner: Account
1399
+ authoritySeed: String
1400
+ authorityType: String
1401
+ clockSysvar: Address
1402
+ custodian: Account
1403
+ newAuthorized: Account
1404
+ stakeAccount: Account
1405
+ }
1406
+
1407
+ # Stake: SetLockupChecked
1408
+ type StakeSetLockupCheckedInstruction implements TransactionInstruction {
1409
+ programId: Address
1410
+ custodian: Account
1411
+ lockup: Lockup
1412
+ stakeAccount: Account
1413
+ }
1414
+
1415
+ # Stake: DeactivateDelinquent
1416
+ type StakeDeactivateDelinquentInstruction implements TransactionInstruction {
1417
+ programId: Address
1418
+ referenceVoteAccount: Account
1419
+ stakeAccount: Account
1420
+ voteAccount: Account
1421
+ }
1422
+
1423
+ # Stake: Redelegate
1424
+ type StakeRedelegateInstruction implements TransactionInstruction {
1425
+ programId: Address
1426
+ newStakeAccount: Account
1427
+ stakeAccount: Account
1428
+ stakeAuthority: Account
1429
+ stakeConfigAccount: Account
1430
+ voteAccount: Account
1431
+ }
1432
+
1433
+ # System: CreateAccount
1434
+ type CreateAccountInstruction implements TransactionInstruction {
1435
+ programId: Address
1436
+ lamports: BigInt
1437
+ newAccount: Account
1438
+ owner: Account
1439
+ source: Account
1440
+ space: BigInt
1441
+ }
1442
+
1443
+ # System: Assign
1444
+ type AssignInstruction implements TransactionInstruction {
1445
+ programId: Address
1446
+ account: Account
1447
+ owner: Account
1448
+ }
1449
+
1450
+ # System: Transfer
1451
+ type TransferInstruction implements TransactionInstruction {
1452
+ programId: Address
1453
+ destination: Account
1454
+ lamports: BigInt
1455
+ source: Account
1456
+ }
1457
+
1458
+ # System: CreateAccountWithSeed
1459
+ type CreateAccountWithSeedInstruction implements TransactionInstruction {
1460
+ programId: Address
1461
+ base: Account
1462
+ lamports: BigInt
1463
+ owner: Account
1464
+ seed: String
1465
+ space: BigInt
1466
+ }
1467
+
1468
+ # System: AdvanceNonceAccount
1469
+ type AdvanceNonceAccountInstruction implements TransactionInstruction {
1470
+ programId: Address
1471
+ nonceAccount: Account
1472
+ nonceAuthority: Account
1473
+ recentBlockhashesSysvar: Address
1474
+ }
1475
+
1476
+ # System: WithdrawNonceAccount
1477
+ type WithdrawNonceAccountInstruction implements TransactionInstruction {
1478
+ programId: Address
1479
+ destination: Account
1480
+ lamports: BigInt
1481
+ nonceAccount: Account
1482
+ nonceAuthority: Account
1483
+ recentBlockhashesSysvar: Address
1484
+ rentSysvar: Address
1485
+ }
1486
+
1487
+ # System: InitializeNonceAccount
1488
+ type InitializeNonceAccountInstruction implements TransactionInstruction {
1489
+ programId: Address
1490
+ nonceAccount: Account
1491
+ nonceAuthority: Account
1492
+ recentBlockhashesSysvar: Address
1493
+ rentSysvar: Address
1494
+ }
1495
+
1496
+ # System: AuthorizeNonceAccount
1497
+ type AuthorizeNonceAccountInstruction implements TransactionInstruction {
1498
+ programId: Address
1499
+ newAuthorized: Account
1500
+ nonceAccount: Account
1501
+ nonceAuthority: Account
1502
+ }
1503
+
1504
+ # System: UpgradeNonceAccount
1505
+ type UpgradeNonceAccountInstruction implements TransactionInstruction {
1506
+ programId: Address
1507
+ nonceAccount: Account
1508
+ nonceAuthority: Account
1509
+ }
1510
+
1511
+ # System: Allocate
1512
+ type AllocateInstruction implements TransactionInstruction {
1513
+ programId: Address
1514
+ account: Account
1515
+ space: BigInt
1516
+ }
1517
+
1518
+ # System: AllocateWithSeed
1519
+ type AllocateWithSeedInstruction implements TransactionInstruction {
1520
+ programId: Address
1521
+ account: Account
1522
+ base: Address
1523
+ owner: Account
1524
+ seed: String
1525
+ space: BigInt
1526
+ }
1527
+
1528
+ # System: AssignWithSeed
1529
+ type AssignWithSeedInstruction implements TransactionInstruction {
1530
+ programId: Address
1531
+ account: Account
1532
+ base: Address
1533
+ owner: Account
1534
+ seed: String
1535
+ }
1536
+
1537
+ # System: TransferWithSeed
1538
+ type TransferWithSeedInstruction implements TransactionInstruction {
1539
+ programId: Address
1540
+ destination: Account
1541
+ lamports: BigInt
1542
+ source: Account
1543
+ sourceBase: Address
1544
+ sourceOwner: Account
1545
+ sourceSeed: String
1546
+ }
1547
+
1548
+ # Vote: InitializeAccount
1549
+ type VoteInitializeAccountInstruction implements TransactionInstruction {
1550
+ programId: Address
1551
+ authorizedVoter: Account
1552
+ authorizedWithdrawer: Account
1553
+ clockSysvar: Address
1554
+ commission: BigInt # FIXME:*
1555
+ node: Account
1556
+ rentSysvar: Address
1557
+ voteAccount: Account
1558
+ }
1559
+
1560
+ # Vote: Authorize
1561
+ type VoteAuthorizeInstruction implements TransactionInstruction {
1562
+ programId: Address
1563
+ authority: Account
1564
+ authorityType: String
1565
+ clockSysvar: Address
1566
+ newAuthority: Account
1567
+ voteAccount: Account
1568
+ }
1569
+
1570
+ # Vote: AuthorizeWithSeed
1571
+ type VoteAuthorizeWithSeedInstruction implements TransactionInstruction {
1572
+ programId: Address
1573
+ authorityBaseKey: String
1574
+ authorityOwner: Account
1575
+ authoritySeed: String
1576
+ authorityType: String
1577
+ clockSysvar: Address
1578
+ newAuthority: Account
1579
+ voteAccount: Account
1580
+ }
1581
+
1582
+ # Vote: AuthorizeCheckedWithSeed
1583
+ type VoteAuthorizeCheckedWithSeedInstruction implements TransactionInstruction {
1584
+ programId: Address
1585
+ authorityBaseKey: String
1586
+ authorityOwner: Account
1587
+ authoritySeed: String
1588
+ authorityType: String
1589
+ clockSysvar: Address
1590
+ newAuthority: Account
1591
+ voteAccount: Account
1592
+ }
1593
+
1594
+ type Vote {
1595
+ hash: String
1596
+ slots: [BigInt]
1597
+ timestamp: BigInt
1598
+ }
1599
+
1600
+ # Vote: Vote
1601
+ type VoteVoteInstruction implements TransactionInstruction {
1602
+ programId: Address
1603
+ clockSysvar: Address
1604
+ slotHashesSysvar: Address
1605
+ vote: Vote
1606
+ voteAccount: Account
1607
+ voteAuthority: Account
1608
+ }
1609
+
1610
+ type VoteStateUpdateLockout {
1611
+ confirmationCount: BigInt # FIXME:*
1612
+ slot: BigInt
1613
+ }
1614
+ type VoteStateUpdate {
1615
+ hash: String
1616
+ lockouts: [VoteStateUpdateLockout]
1617
+ root: BigInt
1618
+ timestamp: BigInt
1619
+ }
1620
+
1621
+ # Vote: UpdateVoteState
1622
+ type VoteUpdateVoteStateInstruction implements TransactionInstruction {
1623
+ programId: Address
1624
+ hash: String
1625
+ voteAccount: Account
1626
+ voteAuthority: Account
1627
+ voteStateUpdate: VoteStateUpdate
1628
+ }
1629
+
1630
+ # Vote: UpdateVoteStateSwitch
1631
+ type VoteUpdateVoteStateSwitchInstruction implements TransactionInstruction {
1632
+ programId: Address
1633
+ hash: String
1634
+ voteAccount: Account
1635
+ voteAuthority: Account
1636
+ voteStateUpdate: VoteStateUpdate
1637
+ }
1638
+
1639
+ # Vote: CompactUpdateVoteState
1640
+ type VoteCompactUpdateVoteStateInstruction implements TransactionInstruction {
1641
+ programId: Address
1642
+ hash: String
1643
+ voteAccount: Account
1644
+ voteAuthority: Account
1645
+ voteStateUpdate: VoteStateUpdate
1646
+ }
1647
+
1648
+ # Vote: CompactUpdateVoteStateSwitch
1649
+ type VoteCompactUpdateVoteStateSwitchInstruction implements TransactionInstruction {
1650
+ programId: Address
1651
+ hash: String
1652
+ voteAccount: Account
1653
+ voteAuthority: Account
1654
+ voteStateUpdate: VoteStateUpdate
1655
+ }
1656
+
1657
+ # Vote: Withdraw
1658
+ type VoteWithdrawInstruction implements TransactionInstruction {
1659
+ programId: Address
1660
+ destination: Account
1661
+ lamports: BigInt
1662
+ voteAccount: Account
1663
+ withdrawAuthority: Account
1664
+ }
1665
+
1666
+ # Vote: UpdateValidatorIdentity
1667
+ type VoteUpdateValidatorIdentityInstruction implements TransactionInstruction {
1668
+ programId: Address
1669
+ newValidatorIdentity: Account
1670
+ voteAccount: Account
1671
+ withdrawAuthority: Account
1672
+ }
1673
+
1674
+ # Vote: UpdateCommission
1675
+ type VoteUpdateCommissionInstruction implements TransactionInstruction {
1676
+ programId: Address
1677
+ commission: BigInt # FIXME:*
1678
+ voteAccount: Account
1679
+ withdrawAuthority: Account
1680
+ }
1681
+
1682
+ # Vote: VoteSwitch
1683
+ type VoteVoteSwitchInstruction implements TransactionInstruction {
1684
+ programId: Address
1685
+ clockSysvar: Address
1686
+ hash: String
1687
+ slotHashesSysvar: Address
1688
+ vote: Vote
1689
+ voteAccount: Account
1690
+ voteAuthority: Account
1691
+ }
1692
+
1693
+ # Vote: AuthorizeChecked
1694
+ type VoteAuthorizeCheckedInstruction implements TransactionInstruction {
1695
+ programId: Address
1696
+ authority: Account
1697
+ authorityType: String
1698
+ clockSysvar: Address
1699
+ newAuthority: Account
1700
+ voteAccount: Account
1701
+ }
1702
+ `
1703
+ );
1704
+ var instructionResolvers = {
1705
+ TransactionInstruction: {
1706
+ __resolveType(instruction) {
1707
+ if (instruction.programName) {
1708
+ if (instruction.programName === "address-lookup-table") {
1709
+ if (instruction.instructionType === "createLookupTable") {
729
1710
  return "CreateLookupTableInstruction";
730
1711
  }
731
- if (instruction.info.type === "freezeLookupTable") {
1712
+ if (instruction.instructionType === "freezeLookupTable") {
732
1713
  return "FreezeLookupTableInstruction";
733
1714
  }
734
- if (instruction.info.type === "extendLookupTable") {
1715
+ if (instruction.instructionType === "extendLookupTable") {
735
1716
  return "ExtendLookupTableInstruction";
736
1717
  }
737
- if (instruction.info.type === "deactivateLookupTable") {
1718
+ if (instruction.instructionType === "deactivateLookupTable") {
738
1719
  return "DeactivateLookupTableInstruction";
739
1720
  }
740
- if (instruction.info.type === "closeLookupTable") {
1721
+ if (instruction.instructionType === "closeLookupTable") {
741
1722
  return "CloseLookupTableInstruction";
742
1723
  }
743
1724
  }
744
- if (instruction.program === "bpf-loader") {
745
- if (instruction.info.type === "write") {
1725
+ if (instruction.programName === "bpf-loader") {
1726
+ if (instruction.instructionType === "write") {
746
1727
  return "BpfLoaderWriteInstruction";
747
1728
  }
748
- if (instruction.info.type === "finalize") {
1729
+ if (instruction.instructionType === "finalize") {
749
1730
  return "BpfLoaderFinalizeInstruction";
750
1731
  }
751
1732
  }
752
- if (instruction.program === "bpf-upgradeable-loader") {
753
- if (instruction.info.type === "initializeBuffer") {
1733
+ if (instruction.programName === "bpf-upgradeable-loader") {
1734
+ if (instruction.instructionType === "initializeBuffer") {
754
1735
  return "BpfUpgradeableLoaderInitializeBufferInstruction";
755
1736
  }
756
- if (instruction.info.type === "write") {
1737
+ if (instruction.instructionType === "write") {
757
1738
  return "BpfUpgradeableLoaderWriteInstruction";
758
1739
  }
759
- if (instruction.info.type === "deployWithMaxDataLen") {
1740
+ if (instruction.instructionType === "deployWithMaxDataLen") {
760
1741
  return "BpfUpgradeableLoaderDeployWithMaxDataLenInstruction";
761
1742
  }
762
- if (instruction.info.type === "upgrade") {
1743
+ if (instruction.instructionType === "upgrade") {
763
1744
  return "BpfUpgradeableLoaderUpgradeInstruction";
764
1745
  }
765
- if (instruction.info.type === "setAuthority") {
1746
+ if (instruction.instructionType === "setAuthority") {
766
1747
  return "BpfUpgradeableLoaderSetAuthorityInstruction";
767
1748
  }
768
- if (instruction.info.type === "setAuthorityChecked") {
1749
+ if (instruction.instructionType === "setAuthorityChecked") {
769
1750
  return "BpfUpgradeableLoaderSetAuthorityCheckedInstruction";
770
1751
  }
771
- if (instruction.info.type === "close") {
1752
+ if (instruction.instructionType === "close") {
772
1753
  return "BpfUpgradeableLoaderCloseInstruction";
773
1754
  }
774
- if (instruction.info.type === "extendProgram") {
1755
+ if (instruction.instructionType === "extendProgram") {
775
1756
  return "BpfUpgradeableLoaderExtendProgramInstruction";
776
1757
  }
777
1758
  }
778
- if (instruction.program === "spl-associated-token-account") {
779
- if (instruction.info.type === "create") {
1759
+ if (instruction.programName === "spl-associated-token-account") {
1760
+ if (instruction.instructionType === "create") {
780
1761
  return "SplAssociatedTokenCreateInstruction";
781
1762
  }
782
- if (instruction.info.type === "createIdempotent") {
1763
+ if (instruction.instructionType === "createIdempotent") {
783
1764
  return "SplAssociatedTokenCreateIdempotentInstruction";
784
1765
  }
785
- if (instruction.info.type === "recoverNested") {
1766
+ if (instruction.instructionType === "recoverNested") {
786
1767
  return "SplAssociatedTokenRecoverNestedInstruction";
787
1768
  }
788
1769
  }
789
- if (instruction.program === "spl-memo") {
1770
+ if (instruction.programName === "spl-memo") {
790
1771
  return "SplMemoInstruction";
791
1772
  }
792
- if (instruction.program === "spl-token") {
793
- if (instruction.info.type === "initializeMint") {
1773
+ if (instruction.programName === "spl-token") {
1774
+ if (instruction.instructionType === "initializeMint") {
794
1775
  return "SplTokenInitializeMintInstruction";
795
1776
  }
796
- if (instruction.info.type === "initializeMint2") {
1777
+ if (instruction.instructionType === "initializeMint2") {
797
1778
  return "SplTokenInitializeMint2Instruction";
798
1779
  }
799
- if (instruction.info.type === "initializeAccount") {
1780
+ if (instruction.instructionType === "initializeAccount") {
800
1781
  return "SplTokenInitializeAccountInstruction";
801
1782
  }
802
- if (instruction.info.type === "initializeAccount2") {
1783
+ if (instruction.instructionType === "initializeAccount2") {
803
1784
  return "SplTokenInitializeAccount2Instruction";
804
1785
  }
805
- if (instruction.info.type === "initializeAccount3") {
1786
+ if (instruction.instructionType === "initializeAccount3") {
806
1787
  return "SplTokenInitializeAccount3Instruction";
807
1788
  }
808
- if (instruction.info.type === "initializeMultisig") {
1789
+ if (instruction.instructionType === "initializeMultisig") {
809
1790
  return "SplTokenInitializeMultisigInstruction";
810
1791
  }
811
- if (instruction.info.type === "initializeMultisig2") {
1792
+ if (instruction.instructionType === "initializeMultisig2") {
812
1793
  return "SplTokenInitializeMultisig2Instruction";
813
1794
  }
814
- if (instruction.info.type === "transfer") {
1795
+ if (instruction.instructionType === "transfer") {
815
1796
  return "SplTokenTransferInstruction";
816
1797
  }
817
- if (instruction.info.type === "approve") {
1798
+ if (instruction.instructionType === "approve") {
818
1799
  return "SplTokenApproveInstruction";
819
1800
  }
820
- if (instruction.info.type === "revoke") {
1801
+ if (instruction.instructionType === "revoke") {
821
1802
  return "SplTokenRevokeInstruction";
822
1803
  }
823
- if (instruction.info.type === "setAuthority") {
1804
+ if (instruction.instructionType === "setAuthority") {
824
1805
  return "SplTokenSetAuthorityInstruction";
825
1806
  }
826
- if (instruction.info.type === "mintTo") {
1807
+ if (instruction.instructionType === "mintTo") {
827
1808
  return "SplTokenMintToInstruction";
828
1809
  }
829
- if (instruction.info.type === "burn") {
1810
+ if (instruction.instructionType === "burn") {
830
1811
  return "SplTokenBurnInstruction";
831
1812
  }
832
- if (instruction.info.type === "closeAccount") {
1813
+ if (instruction.instructionType === "closeAccount") {
833
1814
  return "SplTokenCloseAccountInstruction";
834
1815
  }
835
- if (instruction.info.type === "freezeAccount") {
1816
+ if (instruction.instructionType === "freezeAccount") {
836
1817
  return "SplTokenFreezeAccountInstruction";
837
1818
  }
838
- if (instruction.info.type === "thawAccount") {
1819
+ if (instruction.instructionType === "thawAccount") {
839
1820
  return "SplTokenThawAccountInstruction";
840
1821
  }
841
- if (instruction.info.type === "transferChecked") {
1822
+ if (instruction.instructionType === "transferChecked") {
842
1823
  return "SplTokenTransferCheckedInstruction";
843
1824
  }
844
- if (instruction.info.type === "approveChecked") {
1825
+ if (instruction.instructionType === "approveChecked") {
845
1826
  return "SplTokenApproveCheckedInstruction";
846
1827
  }
847
- if (instruction.info.type === "mintToChecked") {
1828
+ if (instruction.instructionType === "mintToChecked") {
848
1829
  return "SplTokenMintToCheckedInstruction";
849
1830
  }
850
- if (instruction.info.type === "burnChecked") {
1831
+ if (instruction.instructionType === "burnChecked") {
851
1832
  return "SplTokenBurnCheckedInstruction";
852
1833
  }
853
- if (instruction.info.type === "syncNative") {
1834
+ if (instruction.instructionType === "syncNative") {
854
1835
  return "SplTokenSyncNativeInstruction";
855
1836
  }
856
- if (instruction.info.type === "getAccountDataSize") {
1837
+ if (instruction.instructionType === "getAccountDataSize") {
857
1838
  return "SplTokenGetAccountDataSizeInstruction";
858
1839
  }
859
- if (instruction.info.type === "initializeImmutableOwner") {
1840
+ if (instruction.instructionType === "initializeImmutableOwner") {
860
1841
  return "SplTokenInitializeImmutableOwnerInstruction";
861
1842
  }
862
- if (instruction.info.type === "amountToUiAmount") {
1843
+ if (instruction.instructionType === "amountToUiAmount") {
863
1844
  return "SplTokenAmountToUiAmountInstruction";
864
1845
  }
865
- if (instruction.info.type === "uiAmountToAmount") {
1846
+ if (instruction.instructionType === "uiAmountToAmount") {
866
1847
  return "SplTokenUiAmountToAmountInstruction";
867
1848
  }
868
- if (instruction.info.type === "initializeMintCloseAuthority") {
1849
+ if (instruction.instructionType === "initializeMintCloseAuthority") {
869
1850
  return "SplTokenInitializeMintCloseAuthorityInstruction";
870
1851
  }
871
1852
  }
872
- if (instruction.program === "stake") {
873
- if (instruction.info.type === "initialize") {
1853
+ if (instruction.programName === "stake") {
1854
+ if (instruction.instructionType === "initialize") {
874
1855
  return "StakeInitializeInstruction";
875
1856
  }
876
- if (instruction.info.type === "authorize") {
1857
+ if (instruction.instructionType === "authorize") {
877
1858
  return "StakeAuthorizeInstruction";
878
1859
  }
879
- if (instruction.info.type === "delegate") {
1860
+ if (instruction.instructionType === "delegate") {
880
1861
  return "StakeDelegateStakeInstruction";
881
1862
  }
882
- if (instruction.info.type === "split") {
1863
+ if (instruction.instructionType === "split") {
883
1864
  return "StakeSplitInstruction";
884
1865
  }
885
- if (instruction.info.type === "withdraw") {
1866
+ if (instruction.instructionType === "withdraw") {
886
1867
  return "StakeWithdrawInstruction";
887
1868
  }
888
- if (instruction.info.type === "deactivate") {
1869
+ if (instruction.instructionType === "deactivate") {
889
1870
  return "StakeDeactivateInstruction";
890
1871
  }
891
- if (instruction.info.type === "setLockup") {
1872
+ if (instruction.instructionType === "setLockup") {
892
1873
  return "StakeSetLockupInstruction";
893
1874
  }
894
- if (instruction.info.type === "merge") {
1875
+ if (instruction.instructionType === "merge") {
895
1876
  return "StakeMergeInstruction";
896
1877
  }
897
- if (instruction.info.type === "authorizeWithSeed") {
1878
+ if (instruction.instructionType === "authorizeWithSeed") {
898
1879
  return "StakeAuthorizeWithSeedInstruction";
899
1880
  }
900
- if (instruction.info.type === "initializeChecked") {
1881
+ if (instruction.instructionType === "initializeChecked") {
901
1882
  return "StakeInitializeCheckedInstruction";
902
1883
  }
903
- if (instruction.info.type === "authorizeChecked") {
1884
+ if (instruction.instructionType === "authorizeChecked") {
904
1885
  return "StakeAuthorizeCheckedInstruction";
905
1886
  }
906
- if (instruction.info.type === "authorizeCheckedWithSeed") {
1887
+ if (instruction.instructionType === "authorizeCheckedWithSeed") {
907
1888
  return "StakeAuthorizeCheckedWithSeedInstruction";
908
1889
  }
909
- if (instruction.info.type === "setLockupChecked") {
1890
+ if (instruction.instructionType === "setLockupChecked") {
910
1891
  return "StakeSetLockupCheckedInstruction";
911
1892
  }
912
- if (instruction.info.type === "deactivateDelinquent") {
1893
+ if (instruction.instructionType === "deactivateDelinquent") {
913
1894
  return "StakeDeactivateDelinquentInstruction";
914
1895
  }
915
- if (instruction.info.type === "redelegate") {
1896
+ if (instruction.instructionType === "redelegate") {
916
1897
  return "StakeRedelegateInstruction";
917
1898
  }
918
1899
  }
919
- if (instruction.program === "system") {
920
- if (instruction.info.type === "createAccount") {
1900
+ if (instruction.programName === "system") {
1901
+ if (instruction.instructionType === "createAccount") {
921
1902
  return "CreateAccountInstruction";
922
1903
  }
923
- if (instruction.info.type === "assign") {
1904
+ if (instruction.instructionType === "assign") {
924
1905
  return "AssignInstruction";
925
1906
  }
926
- if (instruction.info.type === "transfer") {
1907
+ if (instruction.instructionType === "transfer") {
927
1908
  return "TransferInstruction";
928
1909
  }
929
- if (instruction.info.type === "createAccountWithSeed") {
1910
+ if (instruction.instructionType === "createAccountWithSeed") {
930
1911
  return "CreateAccountWithSeedInstruction";
931
1912
  }
932
- if (instruction.info.type === "advanceNonceAccount") {
1913
+ if (instruction.instructionType === "advanceNonceAccount") {
933
1914
  return "AdvanceNonceAccountInstruction";
934
1915
  }
935
- if (instruction.info.type === "withdrawNonceAccount") {
1916
+ if (instruction.instructionType === "withdrawNonceAccount") {
936
1917
  return "WithdrawNonceAccountInstruction";
937
1918
  }
938
- if (instruction.info.type === "initializeNonceAccount") {
1919
+ if (instruction.instructionType === "initializeNonceAccount") {
939
1920
  return "InitializeNonceAccountInstruction";
940
1921
  }
941
- if (instruction.info.type === "authorizeNonceAccount") {
1922
+ if (instruction.instructionType === "authorizeNonceAccount") {
942
1923
  return "AuthorizeNonceAccountInstruction";
943
1924
  }
944
- if (instruction.info.type === "upgradeNonceAccount") {
1925
+ if (instruction.instructionType === "upgradeNonceAccount") {
945
1926
  return "UpgradeNonceAccountInstruction";
946
1927
  }
947
- if (instruction.info.type === "allocate") {
1928
+ if (instruction.instructionType === "allocate") {
948
1929
  return "AllocateInstruction";
949
1930
  }
950
- if (instruction.info.type === "allocateWithSeed") {
1931
+ if (instruction.instructionType === "allocateWithSeed") {
951
1932
  return "AllocateWithSeedInstruction";
952
1933
  }
953
- if (instruction.info.type === "assignWithSeed") {
1934
+ if (instruction.instructionType === "assignWithSeed") {
954
1935
  return "AssignWithSeedInstruction";
955
1936
  }
956
- if (instruction.info.type === "transferWithSeed") {
1937
+ if (instruction.instructionType === "transferWithSeed") {
957
1938
  return "TransferWithSeedInstruction";
958
1939
  }
959
1940
  }
960
- if (instruction.program === "vote") {
961
- if (instruction.info.type === "initialize") {
1941
+ if (instruction.programName === "vote") {
1942
+ if (instruction.instructionType === "initialize") {
962
1943
  return "VoteInitializeAccountInstruction";
963
1944
  }
964
- if (instruction.info.type === "authorize") {
1945
+ if (instruction.instructionType === "authorize") {
965
1946
  return "VoteAuthorizeInstruction";
966
1947
  }
967
- if (instruction.info.type === "authorizeWithSeed") {
1948
+ if (instruction.instructionType === "authorizeWithSeed") {
968
1949
  return "VoteAuthorizeWithSeedInstruction";
969
1950
  }
970
- if (instruction.info.type === "authorizeCheckedWithSeed") {
1951
+ if (instruction.instructionType === "authorizeCheckedWithSeed") {
971
1952
  return "VoteAuthorizeCheckedWithSeedInstruction";
972
1953
  }
973
- if (instruction.info.type === "vote") {
1954
+ if (instruction.instructionType === "vote") {
974
1955
  return "VoteVoteInstruction";
975
1956
  }
976
- if (instruction.info.type === "updatevotestate") {
1957
+ if (instruction.instructionType === "updatevotestate") {
977
1958
  return "VoteUpdateVoteStateInstruction";
978
1959
  }
979
- if (instruction.info.type === "updatevotestateswitch") {
1960
+ if (instruction.instructionType === "updatevotestateswitch") {
980
1961
  return "VoteUpdateVoteStateSwitchInstruction";
981
1962
  }
982
- if (instruction.info.type === "compactupdatevotestate") {
1963
+ if (instruction.instructionType === "compactupdatevotestate") {
983
1964
  return "VoteCompactUpdateVoteStateInstruction";
984
1965
  }
985
- if (instruction.info.type === "compactupdatevotestateswitch") {
1966
+ if (instruction.instructionType === "compactupdatevotestateswitch") {
986
1967
  return "VoteCompactUpdateVoteStateSwitchInstruction";
987
1968
  }
988
- if (instruction.info.type === "withdraw") {
1969
+ if (instruction.instructionType === "withdraw") {
989
1970
  return "VoteWithdrawInstruction";
990
1971
  }
991
- if (instruction.info.type === "updateValidatorIdentity") {
1972
+ if (instruction.instructionType === "updateValidatorIdentity") {
992
1973
  return "VoteUpdateValidatorIdentityInstruction";
993
1974
  }
994
- if (instruction.info.type === "updateCommission") {
1975
+ if (instruction.instructionType === "updateCommission") {
995
1976
  return "VoteUpdateCommissionInstruction";
996
1977
  }
997
- if (instruction.info.type === "voteSwitch") {
1978
+ if (instruction.instructionType === "voteSwitch") {
998
1979
  return "VoteVoteSwitchInstruction";
999
1980
  }
1000
- if (instruction.info.type === "authorizeChecked") {
1981
+ if (instruction.instructionType === "authorizeChecked") {
1001
1982
  return "VoteAuthorizeCheckedInstruction";
1002
1983
  }
1003
1984
  }
1004
- return "PartiallyDecodedInstruction";
1005
- }
1006
- });
1007
- return memoisedParsedTransactionInstructionInterface;
1008
- };
1009
- var parsedTransactionInstructionType = (name, parsedInfoFields) => new GraphQLObjectType({
1010
- fields: {
1011
- parsed: object(name + "Parsed", {
1012
- info: object(name + "ParsedInfo", parsedInfoFields),
1013
- type: string()
1014
- }),
1015
- program: string(),
1016
- programId: string()
1017
- },
1018
- interfaces: [parsedTransactionInstructionInterface()],
1019
- name
1020
- });
1021
- var memoisedPartiallyDecodedTransactionInstruction;
1022
- var partiallyDecodedTransactionInstruction = () => {
1023
- if (!memoisedPartiallyDecodedTransactionInstruction)
1024
- memoisedPartiallyDecodedTransactionInstruction = new GraphQLObjectType({
1025
- fields: {
1026
- accounts: list(string()),
1027
- data: string(),
1028
- programId: string()
1029
- },
1030
- interfaces: [parsedTransactionInstructionInterface()],
1031
- name: "PartiallyDecodedInstruction"
1032
- });
1033
- return memoisedPartiallyDecodedTransactionInstruction;
1034
- };
1035
- var memoisedParsedInstructionsAddressLookupTable;
1036
- var parsedInstructionsAddressLookupTable = () => {
1037
- if (!memoisedParsedInstructionsAddressLookupTable)
1038
- memoisedParsedInstructionsAddressLookupTable = [
1039
- parsedTransactionInstructionType("CreateLookupTableInstruction", {
1040
- bumpSeed: number(),
1041
- lookupTableAccount: string(),
1042
- lookupTableAuthority: string(),
1043
- payerAccount: string(),
1044
- recentSlot: bigint(),
1045
- systemProgram: string()
1046
- }),
1047
- parsedTransactionInstructionType("FreezeLookupTableInstruction", {
1048
- lookupTableAccount: string(),
1049
- lookupTableAuthority: string()
1050
- }),
1051
- parsedTransactionInstructionType("ExtendLookupTableInstruction", {
1052
- lookupTableAccount: string(),
1053
- lookupTableAuthority: string(),
1054
- newAddresses: list(string()),
1055
- payerAccount: string(),
1056
- systemProgram: string()
1057
- }),
1058
- parsedTransactionInstructionType("DeactivateLookupTableInstruction", {
1059
- lookupTableAccount: string(),
1060
- lookupTableAuthority: string()
1061
- }),
1062
- parsedTransactionInstructionType("CloseLookupTableInstruction", {
1063
- lookupTableAccount: string(),
1064
- lookupTableAuthority: string(),
1065
- recipient: string()
1066
- })
1067
- ];
1068
- return memoisedParsedInstructionsAddressLookupTable;
1069
- };
1070
- var memoisedParsedInstructionsBpfLoader;
1071
- var parsedInstructionsBpfLoader = () => {
1072
- if (!memoisedParsedInstructionsBpfLoader)
1073
- memoisedParsedInstructionsBpfLoader = [
1074
- parsedTransactionInstructionType("BpfLoaderWriteInstruction", {
1075
- account: string(),
1076
- bytes: string(),
1077
- offset: number()
1078
- }),
1079
- parsedTransactionInstructionType("BpfLoaderFinalizeInstruction", {
1080
- account: string()
1081
- })
1082
- ];
1083
- return memoisedParsedInstructionsBpfLoader;
1084
- };
1085
- var memoisedParsedInstructionsBpfUpgradeableLoader;
1086
- var parsedInstructionsBpfUpgradeableLoader = () => {
1087
- if (!memoisedParsedInstructionsBpfUpgradeableLoader)
1088
- memoisedParsedInstructionsBpfUpgradeableLoader = [
1089
- parsedTransactionInstructionType("BpfUpgradeableLoaderInitializeBufferInstruction", {
1090
- account: string()
1091
- }),
1092
- parsedTransactionInstructionType("BpfUpgradeableLoaderWriteInstruction", {
1093
- account: string(),
1094
- authority: string(),
1095
- bytes: string(),
1096
- offset: number()
1097
- }),
1098
- parsedTransactionInstructionType("BpfUpgradeableLoaderDeployWithMaxDataLenInstruction", {
1099
- authority: string(),
1100
- bufferAccount: string(),
1101
- clockSysvar: string(),
1102
- maxDataLen: bigint(),
1103
- payerAccount: string(),
1104
- programAccount: string(),
1105
- programDataAccount: string(),
1106
- rentSysvar: string()
1107
- }),
1108
- parsedTransactionInstructionType("BpfUpgradeableLoaderUpgradeInstruction", {
1109
- authority: string(),
1110
- bufferAccount: string(),
1111
- clockSysvar: string(),
1112
- programAccount: string(),
1113
- programDataAccount: string(),
1114
- rentSysvar: string(),
1115
- spillAccount: string()
1116
- }),
1117
- parsedTransactionInstructionType("BpfUpgradeableLoaderSetAuthorityInstruction", {
1118
- account: string(),
1119
- authority: string(),
1120
- newAuthority: string()
1121
- }),
1122
- parsedTransactionInstructionType("BpfUpgradeableLoaderSetAuthorityCheckedInstruction", {
1123
- account: string(),
1124
- authority: string(),
1125
- newAuthority: string()
1126
- }),
1127
- parsedTransactionInstructionType("BpfUpgradeableLoaderCloseInstruction", {
1128
- account: string(),
1129
- authority: string(),
1130
- programAccount: string(),
1131
- recipient: string()
1132
- }),
1133
- parsedTransactionInstructionType("BpfUpgradeableLoaderExtendProgramInstruction", {
1134
- additionalBytes: bigint(),
1135
- payerAccount: string(),
1136
- programAccount: string(),
1137
- programDataAccount: string(),
1138
- systemProgram: string()
1139
- })
1140
- ];
1141
- return memoisedParsedInstructionsBpfUpgradeableLoader;
1142
- };
1143
- var memoisedParsedInstructionsSplAssociatedToken;
1144
- var parsedInstructionsSplAssociatedToken = () => {
1145
- if (!memoisedParsedInstructionsSplAssociatedToken)
1146
- memoisedParsedInstructionsSplAssociatedToken = [
1147
- parsedTransactionInstructionType("SplAssociatedTokenCreateInstruction", {
1148
- account: string(),
1149
- mint: string(),
1150
- source: string(),
1151
- systemProgram: string(),
1152
- tokenProgram: string(),
1153
- wallet: string()
1154
- }),
1155
- parsedTransactionInstructionType("SplAssociatedTokenCreateIdempotentInstruction", {
1156
- account: string(),
1157
- mint: string(),
1158
- source: string(),
1159
- systemProgram: string(),
1160
- tokenProgram: string(),
1161
- wallet: string()
1162
- }),
1163
- parsedTransactionInstructionType("SplAssociatedTokenRecoverNestedInstruction", {
1164
- destination: string(),
1165
- nestedMint: string(),
1166
- nestedOwner: string(),
1167
- nestedSource: string(),
1168
- ownerMint: string(),
1169
- tokenProgram: string(),
1170
- wallet: string()
1171
- })
1172
- ];
1173
- return memoisedParsedInstructionsSplAssociatedToken;
1174
- };
1175
- var memoisedParsedInstructionSplMemo;
1176
- var parsedInstructionSplMemo = () => {
1177
- if (!memoisedParsedInstructionSplMemo)
1178
- memoisedParsedInstructionSplMemo = new GraphQLObjectType({
1179
- fields: {
1180
- parsed: string(),
1181
- program: string(),
1182
- programId: string()
1183
- },
1184
- interfaces: [parsedTransactionInstructionInterface()],
1185
- name: "SplMemoInstruction"
1186
- });
1187
- return memoisedParsedInstructionSplMemo;
1188
- };
1189
- var memoisedParsedInstructionsSplToken;
1190
- var parsedInstructionsSplToken = () => {
1191
- if (!memoisedParsedInstructionsSplToken)
1192
- memoisedParsedInstructionsSplToken = [
1193
- parsedTransactionInstructionType("SplTokenInitializeMintInstruction", {
1194
- decimals: number(),
1195
- freezeAuthority: string(),
1196
- mint: string(),
1197
- mintAuthority: string(),
1198
- rentSysvar: string()
1199
- }),
1200
- parsedTransactionInstructionType("SplTokenInitializeMint2Instruction", {
1201
- decimals: number(),
1202
- freezeAuthority: string(),
1203
- mint: string(),
1204
- mintAuthority: string()
1205
- }),
1206
- parsedTransactionInstructionType("SplTokenInitializeAccountInstruction", {
1207
- account: string(),
1208
- mint: string(),
1209
- owner: string(),
1210
- rentSysvar: string()
1211
- }),
1212
- parsedTransactionInstructionType("SplTokenInitializeAccount2Instruction", {
1213
- account: string(),
1214
- mint: string(),
1215
- owner: string(),
1216
- rentSysvar: string()
1217
- }),
1218
- parsedTransactionInstructionType("SplTokenInitializeAccount3Instruction", {
1219
- account: string(),
1220
- mint: string(),
1221
- owner: string()
1222
- }),
1223
- parsedTransactionInstructionType("SplTokenInitializeMultisigInstruction", {
1224
- m: number(),
1225
- multisig: string(),
1226
- rentSysvar: string(),
1227
- signers: list(string())
1228
- }),
1229
- parsedTransactionInstructionType("SplTokenInitializeMultisig2Instruction", {
1230
- m: number(),
1231
- multisig: string(),
1232
- signers: list(string())
1233
- }),
1234
- parsedTransactionInstructionType("SplTokenTransferInstruction", {
1235
- amount: string(),
1236
- authority: string(),
1237
- destination: string(),
1238
- multisigAuthority: string(),
1239
- source: string()
1240
- }),
1241
- parsedTransactionInstructionType("SplTokenApproveInstruction", {
1242
- amount: string(),
1243
- delegate: string(),
1244
- multisigOwner: string(),
1245
- owner: string(),
1246
- source: string()
1247
- }),
1248
- parsedTransactionInstructionType("SplTokenRevokeInstruction", {
1249
- multisigOwner: string(),
1250
- owner: string(),
1251
- source: string()
1252
- }),
1253
- parsedTransactionInstructionType("SplTokenSetAuthorityInstruction", {
1254
- authority: string(),
1255
- authorityType: string(),
1256
- multisigAuthority: string(),
1257
- newAuthority: string()
1258
- }),
1259
- parsedTransactionInstructionType("SplTokenMintToInstruction", {
1260
- account: string(),
1261
- amount: string(),
1262
- authority: string(),
1263
- mint: string(),
1264
- mintAuthority: string(),
1265
- multisigMintAuthority: string()
1266
- }),
1267
- parsedTransactionInstructionType("SplTokenBurnInstruction", {
1268
- account: string(),
1269
- amount: string(),
1270
- authority: string(),
1271
- mint: string(),
1272
- multisigAuthority: string()
1273
- }),
1274
- parsedTransactionInstructionType("SplTokenCloseAccountInstruction", {
1275
- account: string(),
1276
- destination: string(),
1277
- multisigOwner: string(),
1278
- owner: string()
1279
- }),
1280
- parsedTransactionInstructionType("SplTokenFreezeAccountInstruction", {
1281
- account: string(),
1282
- freezeAuthority: string(),
1283
- mint: string(),
1284
- multisigFreezeAuthority: string()
1285
- }),
1286
- parsedTransactionInstructionType("SplTokenThawAccountInstruction", {
1287
- account: string(),
1288
- freezeAuthority: string(),
1289
- mint: string(),
1290
- multisigFreezeAuthority: string()
1291
- }),
1292
- parsedTransactionInstructionType("SplTokenTransferCheckedInstruction", {
1293
- authority: string(),
1294
- destination: string(),
1295
- mint: string(),
1296
- multisigAuthority: string(),
1297
- source: string(),
1298
- tokenAmount: string()
1299
- }),
1300
- parsedTransactionInstructionType("SplTokenApproveCheckedInstruction", {
1301
- delegate: string(),
1302
- mint: string(),
1303
- multisigOwner: string(),
1304
- owner: string(),
1305
- source: string(),
1306
- tokenAmount: string()
1307
- }),
1308
- parsedTransactionInstructionType("SplTokenMintToCheckedInstruction", {
1309
- account: string(),
1310
- authority: string(),
1311
- mint: string(),
1312
- mintAuthority: string(),
1313
- multisigMintAuthority: string(),
1314
- tokenAmount: string()
1315
- }),
1316
- parsedTransactionInstructionType("SplTokenBurnCheckedInstruction", {
1317
- account: string(),
1318
- authority: string(),
1319
- mint: string(),
1320
- multisigAuthority: string(),
1321
- tokenAmount: string()
1322
- }),
1323
- parsedTransactionInstructionType("SplTokenSyncNativeInstruction", {
1324
- account: string()
1325
- }),
1326
- parsedTransactionInstructionType("SplTokenGetAccountDataSizeInstruction", {
1327
- extensionTypes: list(string()),
1328
- mint: string()
1329
- }),
1330
- parsedTransactionInstructionType("SplTokenInitializeImmutableOwnerInstruction", {
1331
- account: string()
1332
- }),
1333
- parsedTransactionInstructionType("SplTokenAmountToUiAmountInstruction", {
1334
- amount: string(),
1335
- mint: string()
1336
- }),
1337
- parsedTransactionInstructionType("SplTokenUiAmountToAmountInstruction", {
1338
- mint: string(),
1339
- uiAmount: string()
1340
- }),
1341
- parsedTransactionInstructionType("SplTokenInitializeMintCloseAuthorityInstruction", {
1342
- mint: string(),
1343
- newAuthority: string()
1344
- })
1345
- // TODO: Extensions!
1346
- // - TransferFeeExtension
1347
- // - ConfidentialTransferFeeExtension
1348
- // - DefaultAccountStateExtension
1349
- // - Reallocate
1350
- // - MemoTransferExtension
1351
- // - CreateNativeMint
1352
- // - InitializeNonTransferableMint
1353
- // - InterestBearingMintExtension
1354
- // - CpiGuardExtension
1355
- // - InitializePermanentDelegate
1356
- // - TransferHookExtension
1357
- // - ConfidentialTransferFeeExtension
1358
- // - WithdrawExcessLamports
1359
- // - MetadataPointerExtension
1360
- ];
1361
- return memoisedParsedInstructionsSplToken;
1362
- };
1363
- var memoisedLockup;
1364
- var lockup = () => {
1365
- if (!memoisedLockup)
1366
- memoisedLockup = new GraphQLObjectType({
1367
- fields: {
1368
- custodian: string(),
1369
- epoch: bigint(),
1370
- unixTimestamp: bigint()
1371
- },
1372
- name: "Lockup"
1373
- });
1374
- return memoisedLockup;
1375
- };
1376
- var memoisedParsedInstructionsStake;
1377
- var parsedInstructionsStake = () => {
1378
- if (!memoisedParsedInstructionsStake)
1379
- memoisedParsedInstructionsStake = [
1380
- parsedTransactionInstructionType("StakeInitializeInstruction", {
1381
- authorized: object("StakeInitializeInstructionAuthorized", {
1382
- staker: string(),
1383
- withdrawer: string()
1384
- }),
1385
- lockup: object("StakeInitializeInstructionLockup", {
1386
- custodian: string(),
1387
- epoch: bigint(),
1388
- unixTimestamp: bigint()
1389
- }),
1390
- rentSysvar: string(),
1391
- stakeAccount: string()
1392
- }),
1393
- parsedTransactionInstructionType("StakeAuthorizeInstruction", {
1394
- authority: string(),
1395
- authorityType: string(),
1396
- clockSysvar: string(),
1397
- custodian: string(),
1398
- newAuthority: string(),
1399
- stakeAccount: string()
1400
- }),
1401
- parsedTransactionInstructionType("StakeDelegateStakeInstruction", {
1402
- clockSysvar: string(),
1403
- stakeAccount: string(),
1404
- stakeAuthority: string(),
1405
- stakeConfigAccount: string(),
1406
- stakeHistorySysvar: string(),
1407
- voteAccount: string()
1408
- }),
1409
- parsedTransactionInstructionType("StakeSplitInstruction", {
1410
- lamports: bigint(),
1411
- newSplitAccount: string(),
1412
- stakeAccount: string(),
1413
- stakeAuthority: string()
1414
- }),
1415
- parsedTransactionInstructionType("StakeWithdrawInstruction", {
1416
- clockSysvar: string(),
1417
- destination: string(),
1418
- lamports: bigint(),
1419
- stakeAccount: string(),
1420
- withdrawAuthority: string()
1421
- }),
1422
- parsedTransactionInstructionType("StakeDeactivateInstruction", {
1423
- clockSysvar: string(),
1424
- stakeAccount: string(),
1425
- stakeAuthority: string()
1426
- }),
1427
- parsedTransactionInstructionType("StakeSetLockupInstruction", {
1428
- custodian: string(),
1429
- lockup: type(lockup()),
1430
- stakeAccount: string()
1431
- }),
1432
- parsedTransactionInstructionType("StakeMergeInstruction", {
1433
- clockSysvar: string(),
1434
- destination: string(),
1435
- source: string(),
1436
- stakeAuthority: string(),
1437
- stakeHistorySysvar: string()
1438
- }),
1439
- parsedTransactionInstructionType("StakeAuthorizeWithSeedInstruction", {
1440
- authorityBase: string(),
1441
- authorityOwner: string(),
1442
- authoritySeed: string(),
1443
- authorityType: string(),
1444
- clockSysvar: string(),
1445
- custodian: string(),
1446
- newAuthorized: string(),
1447
- stakeAccount: string()
1448
- }),
1449
- parsedTransactionInstructionType("StakeInitializeCheckedInstruction", {
1450
- rentSysvar: string(),
1451
- stakeAccount: string(),
1452
- staker: string(),
1453
- withdrawer: string()
1454
- }),
1455
- parsedTransactionInstructionType("StakeAuthorizeCheckedInstruction", {
1456
- authority: string(),
1457
- authorityType: string(),
1458
- clockSysvar: string(),
1459
- custodian: string(),
1460
- newAuthority: string(),
1461
- stakeAccount: string()
1462
- }),
1463
- parsedTransactionInstructionType("StakeAuthorizeCheckedWithSeedInstruction", {
1464
- authorityBase: string(),
1465
- authorityOwner: string(),
1466
- authoritySeed: string(),
1467
- authorityType: string(),
1468
- clockSysvar: string(),
1469
- custodian: string(),
1470
- newAuthorized: string(),
1471
- stakeAccount: string()
1472
- }),
1473
- parsedTransactionInstructionType("StakeSetLockupCheckedInstruction", {
1474
- custodian: string(),
1475
- lockup: type(lockup()),
1476
- stakeAccount: string()
1477
- }),
1478
- parsedTransactionInstructionType("StakeDeactivateDelinquentInstruction", {
1479
- referenceVoteAccount: string(),
1480
- stakeAccount: string(),
1481
- voteAccount: string()
1482
- }),
1483
- parsedTransactionInstructionType("StakeRedelegateInstruction", {
1484
- newStakeAccount: string(),
1485
- stakeAccount: string(),
1486
- stakeAuthority: string(),
1487
- stakeConfigAccount: string(),
1488
- voteAccount: string()
1489
- })
1490
- ];
1491
- return memoisedParsedInstructionsStake;
1492
- };
1493
- var memoisedParsedInstructionsSystem;
1494
- var parsedInstructionsSystem = () => {
1495
- if (!memoisedParsedInstructionsSystem)
1496
- memoisedParsedInstructionsSystem = [
1497
- parsedTransactionInstructionType("CreateAccountInstruction", {
1498
- lamports: bigint(),
1499
- newAccount: string(),
1500
- owner: string(),
1501
- source: string(),
1502
- space: bigint()
1503
- }),
1504
- parsedTransactionInstructionType("AssignInstruction", {
1505
- owner: string()
1506
- }),
1507
- parsedTransactionInstructionType("TransferInstruction", {
1508
- amount: string(),
1509
- lamports: number(),
1510
- source: string()
1511
- }),
1512
- parsedTransactionInstructionType("CreateAccountWithSeedInstruction", {
1513
- base: string(),
1514
- lamports: bigint(),
1515
- owner: string(),
1516
- seed: string(),
1517
- space: bigint()
1518
- }),
1519
- parsedTransactionInstructionType("AdvanceNonceAccountInstruction", {
1520
- nonceAccount: string(),
1521
- nonceAuthority: string(),
1522
- recentBlockhashesSysvar: string()
1523
- }),
1524
- parsedTransactionInstructionType("WithdrawNonceAccountInstruction", {
1525
- destination: string(),
1526
- lamports: bigint(),
1527
- nonceAccount: string(),
1528
- nonceAuthority: string(),
1529
- recentBlockhashesSysvar: string(),
1530
- rentSysvar: string()
1531
- }),
1532
- parsedTransactionInstructionType("InitializeNonceAccountInstruction", {
1533
- nonceAccount: string(),
1534
- nonceAuthority: string(),
1535
- recentBlockhashesSysvar: string(),
1536
- rentSysvar: string()
1537
- }),
1538
- parsedTransactionInstructionType("AuthorizeNonceAccountInstruction", {
1539
- newAuthorized: string(),
1540
- nonceAccount: string(),
1541
- nonceAuthority: string()
1542
- }),
1543
- parsedTransactionInstructionType("UpgradeNonceAccountInstruction", {
1544
- nonceAccount: string()
1545
- }),
1546
- parsedTransactionInstructionType("AllocateInstruction", {
1547
- account: string(),
1548
- space: bigint()
1549
- }),
1550
- parsedTransactionInstructionType("AllocateWithSeedInstruction", {
1551
- account: string(),
1552
- base: string(),
1553
- owner: string(),
1554
- seed: string(),
1555
- space: bigint()
1556
- }),
1557
- parsedTransactionInstructionType("AssignWithSeedInstruction", {
1558
- account: string(),
1559
- base: string(),
1560
- owner: string(),
1561
- seed: string()
1562
- }),
1563
- parsedTransactionInstructionType("TransferWithSeedInstruction", {
1564
- destination: string(),
1565
- lamports: bigint(),
1566
- source: string(),
1567
- sourceBase: string(),
1568
- sourceOwner: string(),
1569
- sourceSeed: string()
1570
- })
1571
- ];
1572
- return memoisedParsedInstructionsSystem;
1573
- };
1574
- var memoisedVote;
1575
- var vote = () => {
1576
- if (!memoisedVote)
1577
- memoisedVote = new GraphQLObjectType({
1578
- fields: {
1579
- hash: string(),
1580
- slots: list(bigint()),
1581
- timestamp: bigint()
1582
- },
1583
- name: "Vote"
1584
- });
1585
- return memoisedVote;
1586
- };
1587
- var memoisedVoteStateUpdate;
1588
- var voteStateUpdate = () => {
1589
- if (!memoisedVoteStateUpdate)
1590
- memoisedVoteStateUpdate = new GraphQLObjectType({
1591
- fields: {
1592
- hash: string(),
1593
- lockouts: list(
1594
- object("VoteStateUpdateLockout", {
1595
- confirmationCount: number(),
1596
- slot: bigint()
1597
- })
1598
- ),
1599
- root: bigint(),
1600
- timestamp: bigint()
1601
- },
1602
- name: "VoteStateUpdate"
1603
- });
1604
- return memoisedVoteStateUpdate;
1605
- };
1606
- var memoisedParsedInstructionsVote;
1607
- var parsedInstructionsVote = () => {
1608
- if (!memoisedParsedInstructionsVote)
1609
- memoisedParsedInstructionsVote = [
1610
- parsedTransactionInstructionType("VoteInitializeAccountInstruction", {
1611
- authorizedVoter: string(),
1612
- authorizedWithdrawer: string(),
1613
- clockSysvar: string(),
1614
- commission: number(),
1615
- node: string(),
1616
- rentSysvar: string(),
1617
- voteAccount: string()
1618
- }),
1619
- parsedTransactionInstructionType("VoteAuthorizeInstruction", {
1620
- authority: string(),
1621
- authorityType: string(),
1622
- clockSysvar: string(),
1623
- newAuthority: string(),
1624
- voteAccount: string()
1625
- }),
1626
- parsedTransactionInstructionType("VoteAuthorizeWithSeedInstruction", {
1627
- authorityBaseKey: string(),
1628
- authorityOwner: string(),
1629
- authoritySeed: string(),
1630
- authorityType: string(),
1631
- clockSysvar: string(),
1632
- newAuthority: string(),
1633
- voteAccount: string()
1634
- }),
1635
- parsedTransactionInstructionType("VoteAuthorizeCheckedWithSeedInstruction", {
1636
- authorityBaseKey: string(),
1637
- authorityOwner: string(),
1638
- authoritySeed: string(),
1639
- authorityType: string(),
1640
- clockSysvar: string(),
1641
- newAuthority: string(),
1642
- voteAccount: string()
1643
- }),
1644
- parsedTransactionInstructionType("VoteVoteInstruction", {
1645
- clockSysvar: string(),
1646
- slotHashedSysvar: string(),
1647
- vote: type(vote()),
1648
- voteAccount: string(),
1649
- voteAuthority: string()
1650
- }),
1651
- parsedTransactionInstructionType("VoteUpdateVoteStateInstruction", {
1652
- hash: string(),
1653
- voteAccount: string(),
1654
- voteAuthority: string(),
1655
- voteStateUpdate: type(voteStateUpdate())
1656
- }),
1657
- parsedTransactionInstructionType("VoteUpdateVoteStateSwitchInstruction", {
1658
- hash: string(),
1659
- voteAccount: string(),
1660
- voteAuthority: string(),
1661
- voteStateUpdate: type(voteStateUpdate())
1662
- }),
1663
- parsedTransactionInstructionType("VoteCompactUpdateVoteStateInstruction", {
1664
- hash: string(),
1665
- voteAccount: string(),
1666
- voteAuthority: string(),
1667
- voteStateUpdate: type(voteStateUpdate())
1668
- }),
1669
- parsedTransactionInstructionType("VoteCompactUpdateVoteStateSwitchInstruction", {
1670
- hash: string(),
1671
- voteAccount: string(),
1672
- voteAuthority: string(),
1673
- voteStateUpdate: type(voteStateUpdate())
1674
- }),
1675
- parsedTransactionInstructionType("VoteWithdrawInstruction", {
1676
- destination: string(),
1677
- lamports: bigint(),
1678
- voteAccount: string(),
1679
- withdrawAuthority: string()
1680
- }),
1681
- parsedTransactionInstructionType("VoteUpdateValidatorIdentityInstruction", {
1682
- newValidatorIdentity: string(),
1683
- voteAccount: string(),
1684
- withdrawAuthority: string()
1685
- }),
1686
- parsedTransactionInstructionType("VoteUpdateCommissionInstruction", {
1687
- commission: string(),
1688
- voteAccount: string(),
1689
- withdrawAuthority: string()
1690
- }),
1691
- parsedTransactionInstructionType("VoteVoteSwitchInstruction", {
1692
- clockSysvar: string(),
1693
- hash: string(),
1694
- slotHashesSysvar: string(),
1695
- vote: type(vote()),
1696
- voteAccount: string(),
1697
- voteAuthority: string()
1698
- }),
1699
- parsedTransactionInstructionType("VoteAuthorizeCheckedInstruction", {
1700
- authority: string(),
1701
- authorityType: string(),
1702
- clockSysvar: string(),
1703
- newAuthority: string(),
1704
- voteAccount: string()
1705
- })
1706
- ];
1707
- return memoisedParsedInstructionsVote;
1708
- };
1709
- var memoisedTransactionMetaInterfaceFields;
1710
- var transactionMetaInterfaceFields = () => {
1711
- if (!memoisedTransactionMetaInterfaceFields)
1712
- memoisedTransactionMetaInterfaceFields = {
1713
- computeUnitsConsumed: bigint(),
1714
- err: string(),
1715
- fee: bigint(),
1716
- format: string(),
1717
- loadedAddresses: type(transactionMetaLoadedAddresses()),
1718
- logMessages: list(string()),
1719
- postBalances: list(bigint()),
1720
- postTokenBalances: list(type(tokenBalance())),
1721
- preBalances: list(bigint()),
1722
- preTokenBalances: list(type(tokenBalance())),
1723
- returnData: type(returnData()),
1724
- rewards: list(type(reward())),
1725
- status: type(transactionStatus())
1726
- };
1727
- return memoisedTransactionMetaInterfaceFields;
1728
- };
1729
- var memoisedTransactionMetaInterface;
1730
- var transactionMetaInterface = () => {
1731
- if (!memoisedTransactionMetaInterface)
1732
- memoisedTransactionMetaInterface = new GraphQLInterfaceType({
1733
- fields: {
1734
- ...transactionMetaInterfaceFields()
1735
- },
1736
- name: "TransactionMeta",
1737
- resolveType(meta) {
1738
- if (meta.format === "parsed") {
1739
- return "TransactionMetaParsed";
1740
- }
1741
- return "TransactionMetaUnparsed";
1742
- }
1743
- });
1744
- return memoisedTransactionMetaInterface;
1745
- };
1746
- var transactionMetaType = (name, description, innerInstructions) => new GraphQLObjectType({
1747
- description,
1748
- fields: {
1749
- ...transactionMetaInterfaceFields(),
1750
- innerInstructions
1751
- },
1752
- interfaces: [transactionMetaInterface()],
1753
- name
1754
- });
1755
- var memoisedTransactionMetaUnparsed;
1756
- var transactionMetaUnparsed = () => {
1757
- if (!memoisedTransactionMetaUnparsed)
1758
- memoisedTransactionMetaUnparsed = transactionMetaType(
1759
- "TransactionMetaUnparsed",
1760
- "Non-parsed transaction meta",
1761
- list(
1762
- object("TransactionMetaInnerInstructionsUnparsed", {
1763
- index: number(),
1764
- instructions: list(
1765
- object("TransactionMetaInnerInstructionsUnparsedInstruction", {
1766
- index: number(),
1767
- instructions: list(type(transactionInstruction()))
1768
- })
1769
- )
1770
- })
1771
- )
1772
- );
1773
- return memoisedTransactionMetaUnparsed;
1774
- };
1775
- var memoisedTransactionMetaParsed;
1776
- var transactionMetaParsed = () => {
1777
- if (!memoisedTransactionMetaParsed)
1778
- memoisedTransactionMetaParsed = transactionMetaType(
1779
- "TransactionMetaParsed",
1780
- "Parsed transaction meta",
1781
- list(
1782
- object("TransactionMetaInnerInstructionsParsed", {
1783
- index: number(),
1784
- instructions: list(type(parsedTransactionInstructionInterface()))
1785
- })
1786
- )
1787
- );
1788
- return memoisedTransactionMetaParsed;
1789
- };
1790
- var memoisedTransactionMessageInterfaceFields;
1791
- var transactionMessageInterfaceFields = () => {
1792
- if (!memoisedTransactionMessageInterfaceFields)
1793
- memoisedTransactionMessageInterfaceFields = {
1794
- addressTableLookups: list(type(addressTableLookup())),
1795
- format: string(),
1796
- header: object("TransactionJsonTransactionHeader", {
1797
- numReadonlySignedAccounts: number(),
1798
- numReadonlyUnsignedAccounts: number(),
1799
- numRequiredSignatures: number()
1800
- }),
1801
- recentBlockhash: string()
1802
- };
1803
- return memoisedTransactionMessageInterfaceFields;
1804
- };
1805
- var memoisedTransactionMessageInterface;
1806
- var transactionMessageInterface = () => {
1807
- if (!memoisedTransactionMessageInterface)
1808
- memoisedTransactionMessageInterface = new GraphQLInterfaceType({
1809
- fields: {
1810
- ...transactionMessageInterfaceFields()
1811
- },
1812
- name: "TransactionMessage",
1813
- resolveType(message) {
1814
- if (message.format === "parsed") {
1815
- return "TransactionMessageParsed";
1816
- }
1817
- return "TransactionMessageUnparsed";
1818
1985
  }
1819
- });
1820
- return memoisedTransactionMessageInterface;
1821
- };
1822
- var transactionMessageType = (name, description, accountKeys, instructions) => new GraphQLObjectType({
1823
- description,
1824
- fields: {
1825
- ...transactionMessageInterfaceFields(),
1826
- accountKeys,
1827
- instructions
1828
- },
1829
- interfaces: [transactionMessageInterface()],
1830
- name
1831
- });
1832
- var memoisedTransactionMessageUnparsed;
1833
- var transactionMessageUnparsed = () => {
1834
- if (!memoisedTransactionMessageUnparsed)
1835
- memoisedTransactionMessageUnparsed = transactionMessageType(
1836
- "TransactionMessageUnparsed",
1837
- "Non-parsed transaction message",
1838
- list(string()),
1839
- list(type(transactionInstruction()))
1840
- );
1841
- return memoisedTransactionMessageUnparsed;
1842
- };
1843
- var memoisedTransactionMessageParsed;
1844
- var transactionMessageParsed = () => {
1845
- if (!memoisedTransactionMessageParsed)
1846
- memoisedTransactionMessageParsed = transactionMessageType(
1847
- "TransactionMessageParsed",
1848
- "Parsed transaction message",
1849
- list(
1850
- object("transactionMessageParsedAccountKey", {
1851
- pubkey: string(),
1852
- signer: boolean(),
1853
- source: string(),
1854
- writable: boolean()
1855
- })
1856
- ),
1857
- list(type(parsedTransactionInstructionInterface()))
1858
- );
1859
- return memoisedTransactionMessageParsed;
1860
- };
1861
- var memoisedTransactionTransaction;
1862
- var transactionTransaction = () => {
1863
- if (!memoisedTransactionTransaction)
1864
- memoisedTransactionTransaction = new GraphQLObjectType({
1865
- fields: {
1866
- message: type(transactionMessageInterface()),
1867
- signatures: list(string())
1868
- },
1869
- name: "TransactionTransaction"
1870
- });
1871
- return memoisedTransactionTransaction;
1872
- };
1873
- var memoisedTransactionInterfaceFields;
1874
- var transactionInterfaceFields = () => {
1875
- if (!memoisedTransactionInterfaceFields)
1876
- memoisedTransactionInterfaceFields = {
1877
- blockTime: bigint(),
1878
- encoding: string(),
1879
- meta: type(transactionMetaInterface()),
1880
- slot: bigint()
1881
- };
1882
- return memoisedTransactionInterfaceFields;
1986
+ return "GenericInstruction";
1987
+ }
1988
+ },
1989
+ CreateLookupTableInstruction: {
1990
+ lookupTableAccount: resolveAccount("lookupTableAccount"),
1991
+ lookupTableAuthority: resolveAccount("lookupTableAuthority"),
1992
+ payerAccount: resolveAccount("payerAccount"),
1993
+ systemProgram: resolveAccount("systemProgram")
1994
+ },
1995
+ ExtendLookupTableInstruction: {
1996
+ lookupTableAccount: resolveAccount("lookupTableAccount"),
1997
+ lookupTableAuthority: resolveAccount("lookupTableAuthority"),
1998
+ payerAccount: resolveAccount("payerAccount"),
1999
+ systemProgram: resolveAccount("systemProgram")
2000
+ },
2001
+ FreezeLookupTableInstruction: {
2002
+ lookupTableAccount: resolveAccount("lookupTableAccount"),
2003
+ lookupTableAuthority: resolveAccount("lookupTableAuthority")
2004
+ },
2005
+ DeactivateLookupTableInstruction: {
2006
+ lookupTableAccount: resolveAccount("lookupTableAccount"),
2007
+ lookupTableAuthority: resolveAccount("lookupTableAuthority")
2008
+ },
2009
+ CloseLookupTableInstruction: {
2010
+ lookupTableAccount: resolveAccount("lookupTableAccount"),
2011
+ lookupTableAuthority: resolveAccount("lookupTableAuthority"),
2012
+ recipient: resolveAccount("recipient")
2013
+ },
2014
+ BpfLoaderWriteInstruction: {
2015
+ account: resolveAccount("account")
2016
+ },
2017
+ BpfLoaderFinalizeInstruction: {
2018
+ account: resolveAccount("account")
2019
+ },
2020
+ BpfUpgradeableLoaderInitializeBufferInstruction: {
2021
+ account: resolveAccount("account")
2022
+ },
2023
+ BpfUpgradeableLoaderWriteInstruction: {
2024
+ account: resolveAccount("account"),
2025
+ authority: resolveAccount("authority")
2026
+ },
2027
+ BpfUpgradeableLoaderDeployWithMaxDataLenInstruction: {
2028
+ authority: resolveAccount("authority"),
2029
+ bufferAccount: resolveAccount("bufferAccount"),
2030
+ payerAccount: resolveAccount("payerAccount"),
2031
+ programAccount: resolveAccount("programAccount"),
2032
+ programDataAccount: resolveAccount("programDataAccount")
2033
+ },
2034
+ BpfUpgradeableLoaderUpgradeInstruction: {
2035
+ authority: resolveAccount("authority"),
2036
+ bufferAccount: resolveAccount("bufferAccount"),
2037
+ programAccount: resolveAccount("programAccount"),
2038
+ programDataAccount: resolveAccount("programDataAccount")
2039
+ },
2040
+ BpfUpgradeableLoaderSetAuthorityInstruction: {
2041
+ account: resolveAccount("account"),
2042
+ authority: resolveAccount("authority"),
2043
+ newAuthority: resolveAccount("newAuthority")
2044
+ },
2045
+ BpfUpgradeableLoaderSetAuthorityCheckedInstruction: {
2046
+ account: resolveAccount("account"),
2047
+ authority: resolveAccount("authority"),
2048
+ newAuthority: resolveAccount("newAuthority")
2049
+ },
2050
+ BpfUpgradeableLoaderCloseInstruction: {
2051
+ account: resolveAccount("account"),
2052
+ authority: resolveAccount("authority"),
2053
+ programAccount: resolveAccount("programAccount"),
2054
+ recipient: resolveAccount("recipient")
2055
+ },
2056
+ BpfUpgradeableLoaderExtendProgramInstruction: {
2057
+ payerAccount: resolveAccount("payerAccount"),
2058
+ programAccount: resolveAccount("programAccount"),
2059
+ programDataAccount: resolveAccount("programDataAccount"),
2060
+ systemProgram: resolveAccount("systemProgram")
2061
+ },
2062
+ SplAssociatedTokenCreateInstruction: {
2063
+ account: resolveAccount("account"),
2064
+ mint: resolveAccount("mint"),
2065
+ source: resolveAccount("source"),
2066
+ systemProgram: resolveAccount("systemProgram"),
2067
+ tokenProgram: resolveAccount("tokenProgram"),
2068
+ wallet: resolveAccount("wallet")
2069
+ },
2070
+ SplAssociatedTokenCreateIdempotentInstruction: {
2071
+ account: resolveAccount("account"),
2072
+ mint: resolveAccount("mint"),
2073
+ source: resolveAccount("source"),
2074
+ systemProgram: resolveAccount("systemProgram"),
2075
+ tokenProgram: resolveAccount("tokenProgram"),
2076
+ wallet: resolveAccount("wallet")
2077
+ },
2078
+ SplAssociatedTokenRecoverNestedInstruction: {
2079
+ destination: resolveAccount("destination"),
2080
+ nestedMint: resolveAccount("nestedMint"),
2081
+ nestedOwner: resolveAccount("nestedOwner"),
2082
+ nestedSource: resolveAccount("nestedSource"),
2083
+ ownerMint: resolveAccount("ownerMint"),
2084
+ tokenProgram: resolveAccount("tokenProgram"),
2085
+ wallet: resolveAccount("wallet")
2086
+ },
2087
+ SplTokenInitializeMintInstruction: {
2088
+ freezeAuthority: resolveAccount("freezeAuthority"),
2089
+ mint: resolveAccount("mint"),
2090
+ mintAuthority: resolveAccount("mintAuthority")
2091
+ },
2092
+ SplTokenInitializeMint2Instruction: {
2093
+ freezeAuthority: resolveAccount("freezeAuthority"),
2094
+ mint: resolveAccount("mint"),
2095
+ mintAuthority: resolveAccount("mintAuthority")
2096
+ },
2097
+ SplTokenInitializeAccountInstruction: {
2098
+ account: resolveAccount("account"),
2099
+ mint: resolveAccount("mint"),
2100
+ owner: resolveAccount("owner")
2101
+ },
2102
+ SplTokenInitializeAccount2Instruction: {
2103
+ account: resolveAccount("account"),
2104
+ mint: resolveAccount("mint"),
2105
+ owner: resolveAccount("owner")
2106
+ },
2107
+ SplTokenInitializeAccount3Instruction: {
2108
+ account: resolveAccount("account"),
2109
+ mint: resolveAccount("mint"),
2110
+ owner: resolveAccount("owner")
2111
+ },
2112
+ SplTokenInitializeMultisigInstruction: {
2113
+ multisig: resolveAccount("multisig")
2114
+ },
2115
+ SplTokenInitializeMultisig2Instruction: {
2116
+ multisig: resolveAccount("multisig")
2117
+ },
2118
+ SplTokenTransferInstruction: {
2119
+ authority: resolveAccount("authority"),
2120
+ destination: resolveAccount("destination"),
2121
+ multisigAuthority: resolveAccount("multisigAuthority"),
2122
+ source: resolveAccount("source")
2123
+ },
2124
+ SplTokenApproveInstruction: {
2125
+ delegate: resolveAccount("delegate"),
2126
+ multisigOwner: resolveAccount("multisigOwner"),
2127
+ owner: resolveAccount("owner"),
2128
+ source: resolveAccount("source")
2129
+ },
2130
+ SplTokenRevokeInstruction: {
2131
+ multisigOwner: resolveAccount("multisigOwner"),
2132
+ owner: resolveAccount("owner"),
2133
+ source: resolveAccount("source")
2134
+ },
2135
+ SplTokenSetAuthorityInstruction: {
2136
+ authority: resolveAccount("authority"),
2137
+ multisigAuthority: resolveAccount("multisigAuthority"),
2138
+ newAuthority: resolveAccount("newAuthority")
2139
+ },
2140
+ SplTokenMintToInstruction: {
2141
+ account: resolveAccount("account"),
2142
+ authority: resolveAccount("authority"),
2143
+ mint: resolveAccount("mint"),
2144
+ mintAuthority: resolveAccount("mintAuthority"),
2145
+ multisigMintAuthority: resolveAccount("multisigMintAuthority")
2146
+ },
2147
+ SplTokenBurnInstruction: {
2148
+ account: resolveAccount("account"),
2149
+ authority: resolveAccount("authority"),
2150
+ mint: resolveAccount("mint"),
2151
+ multisigAuthority: resolveAccount("multisigAuthority")
2152
+ },
2153
+ SplTokenCloseAccountInstruction: {
2154
+ account: resolveAccount("account"),
2155
+ destination: resolveAccount("destination"),
2156
+ multisigOwner: resolveAccount("multisigOwner"),
2157
+ owner: resolveAccount("owner")
2158
+ },
2159
+ SplTokenFreezeAccountInstruction: {
2160
+ account: resolveAccount("account"),
2161
+ freezeAuthority: resolveAccount("freezeAuthority"),
2162
+ mint: resolveAccount("mint"),
2163
+ multisigFreezeAuthority: resolveAccount("multisigFreezeAuthority")
2164
+ },
2165
+ SplTokenThawAccountInstruction: {
2166
+ account: resolveAccount("account"),
2167
+ freezeAuthority: resolveAccount("freezeAuthority"),
2168
+ mint: resolveAccount("mint"),
2169
+ multisigFreezeAuthority: resolveAccount("multisigFreezeAuthority")
2170
+ },
2171
+ SplTokenTransferCheckedInstruction: {
2172
+ authority: resolveAccount("authority"),
2173
+ destination: resolveAccount("destination"),
2174
+ mint: resolveAccount("mint"),
2175
+ multisigAuthority: resolveAccount("multisigAuthority"),
2176
+ source: resolveAccount("source")
2177
+ },
2178
+ SplTokenApproveCheckedInstruction: {
2179
+ delegate: resolveAccount("delegate"),
2180
+ mint: resolveAccount("mint"),
2181
+ multisigOwner: resolveAccount("multisigOwner"),
2182
+ owner: resolveAccount("owner"),
2183
+ source: resolveAccount("source")
2184
+ },
2185
+ SplTokenMintToCheckedInstruction: {
2186
+ account: resolveAccount("account"),
2187
+ authority: resolveAccount("authority"),
2188
+ mint: resolveAccount("mint"),
2189
+ mintAuthority: resolveAccount("mintAuthority"),
2190
+ multisigMintAuthority: resolveAccount("multisigMintAuthority")
2191
+ },
2192
+ SplTokenBurnCheckedInstruction: {
2193
+ account: resolveAccount("account"),
2194
+ authority: resolveAccount("authority"),
2195
+ mint: resolveAccount("mint"),
2196
+ multisigAuthority: resolveAccount("multisigAuthority")
2197
+ },
2198
+ SplTokenSyncNativeInstruction: {
2199
+ account: resolveAccount("account")
2200
+ },
2201
+ SplTokenGetAccountDataSizeInstruction: {
2202
+ mint: resolveAccount("mint")
2203
+ },
2204
+ SplTokenAmountToUiAmountInstruction: {
2205
+ mint: resolveAccount("mint")
2206
+ },
2207
+ SplTokenUiAmountToAmountInstruction: {
2208
+ mint: resolveAccount("mint")
2209
+ },
2210
+ SplTokenInitializeMintCloseAuthorityInstruction: {
2211
+ mint: resolveAccount("mint"),
2212
+ newAuthority: resolveAccount("newAuthority")
2213
+ },
2214
+ Lockup: {
2215
+ custodian: resolveAccount("custodian")
2216
+ },
2217
+ StakeInitializeInstructionDataAuthorized: {
2218
+ staker: resolveAccount("staker"),
2219
+ withdrawer: resolveAccount("withdrawer")
2220
+ },
2221
+ StakeInitializeInstruction: {
2222
+ stakeAccount: resolveAccount("stakeAccount")
2223
+ },
2224
+ StakeAuthorizeInstruction: {
2225
+ authority: resolveAccount("authority"),
2226
+ custodian: resolveAccount("custodian"),
2227
+ newAuthority: resolveAccount("newAuthority"),
2228
+ stakeAccount: resolveAccount("stakeAccount")
2229
+ },
2230
+ StakeDelegateStakeInstruction: {
2231
+ stakeAccount: resolveAccount("stakeAccount"),
2232
+ stakeAuthority: resolveAccount("stakeAuthority"),
2233
+ stakeConfigAccount: resolveAccount("stakeConfigAccount"),
2234
+ voteAccount: resolveAccount("voteAccount")
2235
+ },
2236
+ StakeSplitInstruction: {
2237
+ newSplitAccount: resolveAccount("newSplitAccount"),
2238
+ stakeAccount: resolveAccount("stakeAccount"),
2239
+ stakeAuthority: resolveAccount("stakeAuthority")
2240
+ },
2241
+ StakeWithdrawInstruction: {
2242
+ destination: resolveAccount("destination"),
2243
+ stakeAccount: resolveAccount("stakeAccount"),
2244
+ withdrawAuthority: resolveAccount("withdrawAuthority")
2245
+ },
2246
+ StakeDeactivateInstruction: {
2247
+ stakeAccount: resolveAccount("stakeAccount"),
2248
+ stakeAuthority: resolveAccount("stakeAuthority")
2249
+ },
2250
+ StakeSetLockupInstruction: {
2251
+ custodian: resolveAccount("custodian"),
2252
+ stakeAccount: resolveAccount("stakeAccount")
2253
+ },
2254
+ StakeMergeInstruction: {
2255
+ destination: resolveAccount("destination"),
2256
+ source: resolveAccount("source"),
2257
+ stakeAuthority: resolveAccount("stakeAuthority")
2258
+ },
2259
+ StakeAuthorizeWithSeedInstruction: {
2260
+ authorityBase: resolveAccount("authorityBase"),
2261
+ authorityOwner: resolveAccount("authorityOwner"),
2262
+ custodian: resolveAccount("custodian"),
2263
+ newAuthorized: resolveAccount("newAuthorized"),
2264
+ stakeAccount: resolveAccount("stakeAccount")
2265
+ },
2266
+ StakeInitializeCheckedInstructionDataAuthorized: {
2267
+ staker: resolveAccount("staker"),
2268
+ withdrawer: resolveAccount("withdrawer")
2269
+ },
2270
+ StakeAuthorizeCheckedInstruction: {
2271
+ authority: resolveAccount("authority"),
2272
+ custodian: resolveAccount("custodian"),
2273
+ newAuthority: resolveAccount("newAuthority"),
2274
+ stakeAccount: resolveAccount("stakeAccount")
2275
+ },
2276
+ StakeAuthorizeCheckedWithSeedInstruction: {
2277
+ authorityBase: resolveAccount("authorityBase"),
2278
+ authorityOwner: resolveAccount("authorityOwner"),
2279
+ custodian: resolveAccount("custodian"),
2280
+ newAuthorized: resolveAccount("newAuthorized"),
2281
+ stakeAccount: resolveAccount("stakeAccount")
2282
+ },
2283
+ StakeSetLockupCheckedInstruction: {
2284
+ custodian: resolveAccount("custodian"),
2285
+ stakeAccount: resolveAccount("stakeAccount")
2286
+ },
2287
+ StakeDeactivateDelinquentInstruction: {
2288
+ referenceVoteAccount: resolveAccount("referenceVoteAccount"),
2289
+ stakeAccount: resolveAccount("stakeAccount"),
2290
+ voteAccount: resolveAccount("voteAccount")
2291
+ },
2292
+ StakeRedelegateInstruction: {
2293
+ newStakeAccount: resolveAccount("newStakeAccount"),
2294
+ stakeAccount: resolveAccount("stakeAccount"),
2295
+ stakeAuthority: resolveAccount("stakeAuthority"),
2296
+ stakeConfigAccount: resolveAccount("stakeConfigAccount"),
2297
+ voteAccount: resolveAccount("voteAccount")
2298
+ },
2299
+ CreateAccountInstruction: {
2300
+ newAccount: resolveAccount("newAccount"),
2301
+ owner: resolveAccount("owner"),
2302
+ source: resolveAccount("source")
2303
+ },
2304
+ AssignInstruction: {
2305
+ account: resolveAccount("account"),
2306
+ owner: resolveAccount("owner")
2307
+ },
2308
+ TransferInstruction: {
2309
+ destination: resolveAccount("destination"),
2310
+ source: resolveAccount("source")
2311
+ },
2312
+ CreateAccountWithSeedInstruction: {
2313
+ base: resolveAccount("base"),
2314
+ owner: resolveAccount("owner"),
2315
+ seed: resolveAccount("seed")
2316
+ },
2317
+ AdvanceNonceAccountInstruction: {
2318
+ nonceAccount: resolveAccount("nonceAccount"),
2319
+ nonceAuthority: resolveAccount("nonceAuthority")
2320
+ },
2321
+ WithdrawNonceAccountInstruction: {
2322
+ destination: resolveAccount("destination"),
2323
+ nonceAccount: resolveAccount("nonceAccount"),
2324
+ nonceAuthority: resolveAccount("nonceAuthority")
2325
+ },
2326
+ InitializeNonceAccountInstruction: {
2327
+ nonceAccount: resolveAccount("nonceAccount"),
2328
+ nonceAuthority: resolveAccount("nonceAuthority")
2329
+ },
2330
+ AuthorizeNonceAccountInstruction: {
2331
+ newAuthorized: resolveAccount("newAuthorized"),
2332
+ nonceAccount: resolveAccount("nonceAccount"),
2333
+ nonceAuthority: resolveAccount("nonceAuthority")
2334
+ },
2335
+ UpgradeNonceAccountInstruction: {
2336
+ nonceAccount: resolveAccount("nonceAccount"),
2337
+ nonceAuthority: resolveAccount("nonceAuthority")
2338
+ },
2339
+ AllocateInstruction: {
2340
+ account: resolveAccount("account")
2341
+ },
2342
+ AllocateWithSeedInstruction: {
2343
+ account: resolveAccount("account"),
2344
+ owner: resolveAccount("owner")
2345
+ },
2346
+ AssignWithSeedInstruction: {
2347
+ account: resolveAccount("account"),
2348
+ owner: resolveAccount("owner")
2349
+ },
2350
+ TransferWithSeedInstruction: {
2351
+ destination: resolveAccount("destination"),
2352
+ source: resolveAccount("source"),
2353
+ sourceOwner: resolveAccount("sourceOwner")
2354
+ },
2355
+ VoteInitializeAccountInstruction: {
2356
+ authorizedVoter: resolveAccount("authorizedVoter"),
2357
+ authorizedWithdrawer: resolveAccount("authorizedWithdrawer"),
2358
+ node: resolveAccount("node"),
2359
+ voteAccount: resolveAccount("voteAccount")
2360
+ },
2361
+ VoteAuthorizeInstruction: {
2362
+ authority: resolveAccount("authority"),
2363
+ newAuthority: resolveAccount("newAuthority"),
2364
+ voteAccount: resolveAccount("voteAccount")
2365
+ },
2366
+ VoteAuthorizeWithSeedInstruction: {
2367
+ authorityOwner: resolveAccount("authorityOwner"),
2368
+ newAuthority: resolveAccount("newAuthority"),
2369
+ voteAccount: resolveAccount("voteAccount")
2370
+ },
2371
+ VoteAuthorizeCheckedWithSeedInstruction: {
2372
+ authorityOwner: resolveAccount("authorityOwner"),
2373
+ newAuthority: resolveAccount("newAuthority"),
2374
+ voteAccount: resolveAccount("voteAccount")
2375
+ },
2376
+ VoteVoteInstruction: {
2377
+ voteAccount: resolveAccount("voteAccount"),
2378
+ voteAuthority: resolveAccount("voteAuthority")
2379
+ },
2380
+ VoteUpdateVoteStateInstruction: {
2381
+ voteAccount: resolveAccount("voteAccount"),
2382
+ voteAuthority: resolveAccount("voteAuthority")
2383
+ },
2384
+ VoteUpdateVoteStateSwitchInstruction: {
2385
+ voteAccount: resolveAccount("voteAccount"),
2386
+ voteAuthority: resolveAccount("voteAuthority")
2387
+ },
2388
+ VoteCompactUpdateVoteStateInstruction: {
2389
+ voteAccount: resolveAccount("voteAccount"),
2390
+ voteAuthority: resolveAccount("voteAuthority")
2391
+ },
2392
+ VoteCompactUpdateVoteStateSwitchInstruction: {
2393
+ voteAccount: resolveAccount("voteAccount"),
2394
+ voteAuthority: resolveAccount("voteAuthority")
2395
+ },
2396
+ VoteWithdrawInstruction: {
2397
+ voteAccount: resolveAccount("voteAccount"),
2398
+ withdrawAuthority: resolveAccount("withdrawAuthority")
2399
+ },
2400
+ VoteUpdateValidatorIdentityInstruction: {
2401
+ newValidatorIdentity: resolveAccount("newValidatorIdentity"),
2402
+ voteAccount: resolveAccount("voteAccount"),
2403
+ withdrawAuthority: resolveAccount("withdrawAuthority")
2404
+ },
2405
+ VoteUpdateCommissionInstruction: {
2406
+ voteAccount: resolveAccount("voteAccount"),
2407
+ withdrawAuthority: resolveAccount("withdrawAuthority")
2408
+ },
2409
+ VoteVoteSwitchInstruction: {
2410
+ voteAccount: resolveAccount("voteAccount"),
2411
+ voteAuthority: resolveAccount("voteAuthority")
2412
+ },
2413
+ VoteAuthorizeCheckedInstruction: {
2414
+ authority: resolveAccount("authority"),
2415
+ newAuthority: resolveAccount("newAuthority"),
2416
+ voteAccount: resolveAccount("voteAccount")
2417
+ }
1883
2418
  };
1884
- var memoisedTransactionInterface;
1885
- var transactionInterface = () => {
1886
- if (!memoisedTransactionInterface)
1887
- memoisedTransactionInterface = new GraphQLInterfaceType({
1888
- fields: {
1889
- ...transactionInterfaceFields()
1890
- },
1891
- name: "Transaction",
1892
- resolveType(transaction) {
1893
- if (transaction.encoding === "base58") {
2419
+
2420
+ // src/schema/transaction.ts
2421
+ var transactionTypeDefs = (
2422
+ /* GraphQL */
2423
+ `
2424
+ type TransactionStatusOk {
2425
+ Ok: String
2426
+ }
2427
+ type TransactionStatusErr {
2428
+ Err: String
2429
+ }
2430
+ union TransactionStatus = TransactionStatusOk | TransactionStatusErr
2431
+
2432
+ type TransactionLoadedAddresses {
2433
+ readonly: [String]
2434
+ writable: [String]
2435
+ }
2436
+
2437
+ type TransactionInnerInstruction {
2438
+ index: Int
2439
+ instructions: [TransactionInstruction]
2440
+ }
2441
+
2442
+ type TransactionMeta {
2443
+ computeUnitsConsumed: BigInt
2444
+ err: String
2445
+ fee: BigInt
2446
+ innerInstructions: [TransactionInnerInstruction]
2447
+ loadedAddresses: TransactionLoadedAddresses
2448
+ logMessages: [String]
2449
+ postBalances: [BigInt]
2450
+ postTokenBalances: [TokenBalance]
2451
+ preBalances: [BigInt]
2452
+ preTokenBalances: [TokenBalance]
2453
+ returnData: ReturnData
2454
+ rewards: [Reward]
2455
+ status: TransactionStatus
2456
+ }
2457
+
2458
+ type TransactionMessageAccountKey {
2459
+ pubkey: Address
2460
+ signer: Boolean
2461
+ source: String
2462
+ writable: Boolean
2463
+ }
2464
+
2465
+ type TransactionMessageAddressTableLookup {
2466
+ accountKey: Address
2467
+ readableIndexes: [Int]
2468
+ writableIndexes: [Int]
2469
+ }
2470
+
2471
+ type TransactionMessageHeader {
2472
+ numReadonlySignedAccounts: Int
2473
+ numReadonlyUnsignedAccounts: Int
2474
+ numRequiredSignatures: Int
2475
+ }
2476
+
2477
+ type TransactionMessage {
2478
+ accountKeys: [TransactionMessageAccountKey]
2479
+ addressTableLookups: [TransactionMessageAddressTableLookup]
2480
+ header: TransactionMessageHeader
2481
+ instructions: [TransactionInstruction]
2482
+ recentBlockhash: String
2483
+ }
2484
+
2485
+ # Transaction interface
2486
+ interface Transaction {
2487
+ blockTime: String
2488
+ meta: TransactionMeta
2489
+ slot: BigInt
2490
+ version: String
2491
+ }
2492
+
2493
+ # A transaction with base58 encoded data
2494
+ type TransactionBase58 implements Transaction {
2495
+ blockTime: String
2496
+ data: Base58EncodedBytes
2497
+ meta: TransactionMeta
2498
+ slot: BigInt
2499
+ version: String
2500
+ }
2501
+
2502
+ # A transaction with base64 encoded data
2503
+ type TransactionBase64 implements Transaction {
2504
+ blockTime: String
2505
+ data: Base64EncodedBytes
2506
+ meta: TransactionMeta
2507
+ slot: BigInt
2508
+ version: String
2509
+ }
2510
+
2511
+ # A transaction with JSON encoded data
2512
+ type TransactionDataParsed {
2513
+ message: TransactionMessage
2514
+ signatures: [String]
2515
+ }
2516
+ type TransactionParsed implements Transaction {
2517
+ blockTime: String
2518
+ data: TransactionDataParsed
2519
+ meta: TransactionMeta
2520
+ slot: BigInt
2521
+ version: String
2522
+ }
2523
+ `
2524
+ );
2525
+ var transactionResolvers = {
2526
+ Transaction: {
2527
+ __resolveType(transaction) {
2528
+ switch (transaction.encoding) {
2529
+ case "base58":
1894
2530
  return "TransactionBase58";
1895
- }
1896
- if (transaction.encoding === "base64") {
2531
+ case "base64":
1897
2532
  return "TransactionBase64";
1898
- }
1899
- if (transaction.encoding === "json") {
1900
- return "TransactionJson";
1901
- }
1902
- return "TransactionJsonParsed";
2533
+ default:
2534
+ return "TransactionParsed";
1903
2535
  }
1904
- });
1905
- return memoisedTransactionInterface;
1906
- };
1907
- var transactionType = (name, description, transaction) => new GraphQLObjectType({
1908
- description,
1909
- fields: {
1910
- ...transactionInterfaceFields(),
1911
- transaction
1912
- },
1913
- interfaces: [transactionInterface()],
1914
- name
1915
- });
1916
- var memoisedTransactionBase58;
1917
- var transactionBase58 = () => {
1918
- if (!memoisedTransactionBase58)
1919
- memoisedTransactionBase58 = transactionType(
1920
- "TransactionBase58",
1921
- "A Solana transaction as base58 encoded data",
1922
- string()
1923
- );
1924
- return memoisedTransactionBase58;
1925
- };
1926
- var memoisedTransactionBase64;
1927
- var transactionBase64 = () => {
1928
- if (!memoisedTransactionBase64)
1929
- memoisedTransactionBase64 = transactionType(
1930
- "TransactionBase64",
1931
- "A Solana transaction as base64 encoded data",
1932
- string()
1933
- );
1934
- return memoisedTransactionBase64;
1935
- };
1936
- var memoisedTransactionJson;
1937
- var transactionJson = () => {
1938
- if (!memoisedTransactionJson)
1939
- memoisedTransactionJson = transactionType(
1940
- "TransactionJson",
1941
- "A Solana transaction as a JSON object",
1942
- type(transactionTransaction())
1943
- );
1944
- return memoisedTransactionJson;
1945
- };
1946
- var memoisedTransactionJsonParsed;
1947
- var transactionJsonParsed = () => {
1948
- if (!memoisedTransactionJsonParsed)
1949
- memoisedTransactionJsonParsed = transactionType(
1950
- "TransactionJsonParsed",
1951
- "A Solana transaction as a parsed JSON object",
1952
- type(transactionTransaction())
1953
- );
1954
- return memoisedTransactionJsonParsed;
1955
- };
1956
- var memoisedTransactionTypes;
1957
- var transactionTypes = () => {
1958
- if (!memoisedTransactionTypes)
1959
- memoisedTransactionTypes = [
1960
- partiallyDecodedTransactionInstruction(),
1961
- ...parsedInstructionsAddressLookupTable(),
1962
- ...parsedInstructionsBpfLoader(),
1963
- ...parsedInstructionsBpfUpgradeableLoader(),
1964
- ...parsedInstructionsStake(),
1965
- ...parsedInstructionsSplAssociatedToken(),
1966
- parsedInstructionSplMemo(),
1967
- ...parsedInstructionsSplToken(),
1968
- ...parsedInstructionsSystem(),
1969
- ...parsedInstructionsVote(),
1970
- transactionMetaUnparsed(),
1971
- transactionMetaParsed(),
1972
- transactionMessageUnparsed(),
1973
- transactionMessageParsed(),
1974
- transactionBase58(),
1975
- transactionBase64(),
1976
- transactionJson(),
1977
- transactionJsonParsed()
1978
- ];
1979
- return memoisedTransactionTypes;
1980
- };
1981
-
1982
- // src/schema/transaction/query.ts
1983
- var transactionQuery = () => ({
1984
- transaction: {
1985
- args: {
1986
- commitment: type(commitmentInputType()),
1987
- encoding: type(transactionEncodingInputType()),
1988
- maxSupportedTransactionVersion: type(maxSupportedTransactionVersionInputType()),
1989
- signature: nonNull(string())
1990
- },
1991
- resolve: (_parent, args, context) => context.resolveTransaction(args),
1992
- type: transactionInterface()
2536
+ }
1993
2537
  }
1994
- });
1995
-
1996
- // src/schema/block/types.ts
1997
- var memoisedTransactionForAccounts;
1998
- var transactionForAccounts = () => {
1999
- if (!memoisedTransactionForAccounts)
2000
- memoisedTransactionForAccounts = new GraphQLObjectType({
2001
- fields: {
2002
- meta: object("TransactionMetaForAccounts", {
2003
- computeUnitsUsed: bigint(),
2004
- err: string(),
2005
- fee: bigint(),
2006
- format: string(),
2007
- loadedAddresses: type(transactionMetaLoadedAddresses()),
2008
- logMessages: list(string()),
2009
- postBalances: list(bigint()),
2010
- postTokenBalances: list(type(tokenBalance())),
2011
- preBalances: list(bigint()),
2012
- preTokenBalances: list(type(tokenBalance())),
2013
- returnData: type(returnData()),
2014
- rewards: list(type(reward())),
2015
- status: type(transactionStatus())
2016
- }),
2017
- transaction: type(transactionInterface()),
2018
- // TODO
2019
- version: string()
2020
- },
2021
- name: "TransactionForAccounts"
2022
- });
2023
- return memoisedTransactionForAccounts;
2024
- };
2025
- var memoisedBlockInterfaceFields;
2026
- var blockInterfaceFields = () => {
2027
- if (!memoisedBlockInterfaceFields)
2028
- memoisedBlockInterfaceFields = {
2029
- blockHeight: bigint(),
2030
- blockTime: bigint(),
2031
- blockhash: string(),
2032
- parentSlot: bigint(),
2033
- previousBlockhash: string(),
2034
- rewards: list(type(reward()))
2035
- };
2036
- return memoisedBlockInterfaceFields;
2037
- };
2038
- var memoisedBlockInterface;
2039
- var blockInterface = () => {
2040
- if (!memoisedBlockInterface)
2041
- memoisedBlockInterface = new GraphQLInterfaceType({
2042
- fields: {
2043
- ...blockInterfaceFields()
2044
- },
2045
- name: "Block",
2046
- resolveType(block) {
2047
- if (block.transactionDetails === "signatures") {
2048
- return "BlockWithSignatures";
2049
- }
2050
- if (block.transactionDetails === "accounts") {
2051
- return "BlockWithAccounts";
2052
- }
2053
- if (block.transactionDetails === "none") {
2054
- return "BlockWithNoTransactions";
2055
- }
2056
- return "BlockWithTransactions";
2057
- }
2058
- });
2059
- return memoisedBlockInterface;
2060
- };
2061
- var memoisedBlockWithNoTransactions;
2062
- var blockWithNoTransactions = () => {
2063
- if (!memoisedBlockWithNoTransactions)
2064
- memoisedBlockWithNoTransactions = new GraphQLObjectType({
2065
- fields: {
2066
- ...blockInterfaceFields()
2067
- },
2068
- interfaces: [blockInterface()],
2069
- name: "BlockWithNoTransactions"
2070
- });
2071
- return memoisedBlockWithNoTransactions;
2072
- };
2073
- var memoisedBlockWithSignatures;
2074
- var blockWithSignatures = () => {
2075
- if (!memoisedBlockWithSignatures)
2076
- memoisedBlockWithSignatures = new GraphQLObjectType({
2077
- fields: {
2078
- ...blockInterfaceFields(),
2079
- signatures: list(string())
2080
- },
2081
- interfaces: [blockInterface()],
2082
- name: "BlockWithSignatures"
2083
- });
2084
- return memoisedBlockWithSignatures;
2085
- };
2086
- var memoisedBlockWithAccounts;
2087
- var blockWithAccounts = () => {
2088
- if (!memoisedBlockWithAccounts)
2089
- memoisedBlockWithAccounts = new GraphQLObjectType({
2090
- fields: {
2091
- ...blockInterfaceFields(),
2092
- transactions: list(type(transactionForAccounts()))
2093
- },
2094
- interfaces: [blockInterface()],
2095
- name: "BlockWithAccounts"
2096
- });
2097
- return memoisedBlockWithAccounts;
2098
- };
2099
- var memoisedBlockWithTransactions;
2100
- var blockWithTransactions = () => {
2101
- if (!memoisedBlockWithTransactions)
2102
- memoisedBlockWithTransactions = new GraphQLObjectType({
2103
- fields: {
2104
- ...blockInterfaceFields(),
2105
- transactions: list(type(transactionInterface()))
2106
- },
2107
- interfaces: [blockInterface()],
2108
- name: "BlockWithTransactions"
2109
- });
2110
- return memoisedBlockWithTransactions;
2111
- };
2112
- var memoisedBlockTypes;
2113
- var blockTypes = () => {
2114
- if (!memoisedBlockTypes)
2115
- memoisedBlockTypes = [
2116
- blockWithNoTransactions(),
2117
- blockWithSignatures(),
2118
- blockWithAccounts(),
2119
- blockWithTransactions()
2120
- ];
2121
- return memoisedBlockTypes;
2122
2538
  };
2123
2539
 
2124
- // src/schema/block/query.ts
2125
- var blockQuery = () => ({
2126
- block: {
2127
- args: {
2128
- commitment: type(commitmentInputType()),
2129
- encoding: type(transactionEncodingInputType()),
2130
- maxSupportedTransactionVersion: string(),
2131
- rewards: boolean(),
2132
- slot: nonNull(bigint()),
2133
- transactionDetails: type(blockTransactionDetailsInputType())
2540
+ // src/schema/index.ts
2541
+ var schemaTypeDefs = (
2542
+ /* GraphQL */
2543
+ `
2544
+ type Query {
2545
+ account(
2546
+ address: String!
2547
+ commitment: Commitment
2548
+ dataSlice: DataSlice
2549
+ encoding: AccountEncoding
2550
+ minContextSlot: BigInt
2551
+ ): Account
2552
+ block(
2553
+ slot: BigInt!
2554
+ commitment: Commitment
2555
+ encoding: TransactionEncoding
2556
+ transactionDetails: BlockTransactionDetails
2557
+ ): Block
2558
+ programAccounts(
2559
+ programAddress: String!
2560
+ commitment: Commitment
2561
+ dataSlice: DataSlice
2562
+ encoding: AccountEncoding
2563
+ filters: [ProgramAccountsFilter]
2564
+ minContextSlot: BigInt
2565
+ ): [Account]
2566
+ transaction(
2567
+ signature: String!
2568
+ commitment: Commitment
2569
+ encoding: TransactionEncoding
2570
+ ): Transaction
2571
+ }
2572
+
2573
+ schema {
2574
+ query: Query
2575
+ }
2576
+ `
2577
+ );
2578
+ var schemaResolvers = {
2579
+ Query: {
2580
+ account(_, args, context, info) {
2581
+ return context.loaders.account.load(args, info);
2134
2582
  },
2135
- resolve: (_parent, args, context) => context.resolveBlock(args),
2136
- type: blockInterface()
2137
- }
2138
- });
2139
- var programAccount = () => new GraphQLObjectType({
2140
- fields: {
2141
- account: type(accountInterface()),
2142
- pubkey: string()
2143
- },
2144
- name: "ProgramAccount"
2145
- });
2146
-
2147
- // src/schema/program-accounts/query.ts
2148
- var programAccountsQuery = () => ({
2149
- programAccounts: {
2150
- args: {
2151
- commitment: type(commitmentInputType()),
2152
- dataSlice: type(dataSliceInputType()),
2153
- encoding: type(accountEncodingInputType()),
2154
- filters: list(type(programAccountFilterInputType())),
2155
- minContextSlot: bigint(),
2156
- programAddress: nonNull(string()),
2157
- withContext: string()
2583
+ block(_, args, context, info) {
2584
+ return context.loaders.block.load(args, info);
2585
+ },
2586
+ programAccounts(_, args, context, info) {
2587
+ return context.loaders.programAccounts.load(args, info);
2158
2588
  },
2159
- resolve: (_parent, args, context) => context.resolveProgramAccounts(args),
2160
- type: new GraphQLList(programAccount())
2589
+ transaction(_, args, context, info) {
2590
+ return context.loaders.transaction.load(args, info);
2591
+ }
2161
2592
  }
2162
- });
2593
+ };
2594
+ function createSolanaGraphQLSchema() {
2595
+ return makeExecutableSchema({
2596
+ resolvers: {
2597
+ ...accountResolvers,
2598
+ ...blockResolvers,
2599
+ ...commonResolvers,
2600
+ ...inputResolvers,
2601
+ ...instructionResolvers,
2602
+ ...scalarResolvers,
2603
+ ...schemaResolvers,
2604
+ ...transactionResolvers
2605
+ },
2606
+ typeDefs: [
2607
+ accountTypeDefs,
2608
+ blockTypeDefs,
2609
+ commonTypeDefs,
2610
+ inputTypeDefs,
2611
+ instructionTypeDefs,
2612
+ scalarTypeDefs,
2613
+ schemaTypeDefs,
2614
+ transactionTypeDefs
2615
+ ]
2616
+ });
2617
+ }
2163
2618
 
2164
2619
  // src/rpc.ts
2165
2620
  function createRpcGraphQL(rpc) {
2166
2621
  const context = createSolanaGraphQLContext(rpc);
2167
- const schema = new GraphQLSchema({
2168
- query: new GraphQLObjectType({
2169
- fields: {
2170
- ...accountQuery(),
2171
- ...blockQuery(),
2172
- ...programAccountsQuery(),
2173
- ...transactionQuery()
2174
- },
2175
- name: "RootQuery"
2176
- }),
2177
- types: [...accountTypes(), ...blockTypes(), ...transactionTypes()]
2178
- });
2622
+ const schema = createSolanaGraphQLSchema();
2179
2623
  return {
2180
2624
  context,
2181
2625
  async query(source, variableValues) {
2182
- const result = await graphql({
2626
+ return graphql({
2183
2627
  contextValue: this.context,
2184
2628
  schema: this.schema,
2185
2629
  source,
2186
2630
  variableValues
2187
2631
  });
2188
- this.context.cache.flush();
2189
- return result;
2190
2632
  },
2191
2633
  schema
2192
2634
  };