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

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