@solana/rpc-graphql 2.0.0-experimental.fe07532 → 2.0.0-experimental.ff8c65b

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