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

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