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