@solana/rpc-graphql 2.0.0-experimental.ee4214c → 2.0.0-experimental.efe6f4d

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