@solana/rpc-graphql 2.0.0-experimental.fd11bd1 → 2.0.0-experimental.fd64233

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