@solana/rpc-graphql 2.0.0-experimental.df45965 → 2.0.0-experimental.e662875

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.
@@ -37,8 +37,29 @@ function createGraphQLCache() {
37
37
  } ;
38
38
  }
39
39
 
40
- // src/context.ts
41
- async function resolveAccount({ address, encoding = "jsonParsed", ...config }, cache, rpc) {
40
+ // src/resolvers/account.ts
41
+ function refineJsonParsedAccountData(jsonParsedData) {
42
+ const meta = {
43
+ program: jsonParsedData.program,
44
+ space: jsonParsedData.space,
45
+ type: jsonParsedData.parsed.type
46
+ };
47
+ const data = jsonParsedData.parsed.info;
48
+ return { data, meta };
49
+ }
50
+ async function resolveAccount({ address, encoding = "jsonParsed", ...config }, cache, rpc, info) {
51
+ if (info && info.fieldNodes[0].selectionSet) {
52
+ const selectionSet = info.fieldNodes[0].selectionSet;
53
+ const requestedFields = selectionSet.selections.map((field) => {
54
+ if (field.kind === "Field") {
55
+ return field.name.value;
56
+ }
57
+ return null;
58
+ });
59
+ if (requestedFields && requestedFields.length === 1 && requestedFields[0] === "address") {
60
+ return { address };
61
+ }
62
+ }
42
63
  const requestConfig = { encoding, ...config };
43
64
  const cached = cache.get(address, requestConfig);
44
65
  if (cached !== null) {
@@ -48,17 +69,29 @@ async function resolveAccount({ address, encoding = "jsonParsed", ...config }, c
48
69
  throw e;
49
70
  });
50
71
  if (account === null) {
51
- return null;
72
+ return {
73
+ address
74
+ };
52
75
  }
53
- const [data, responseEncoding] = Array.isArray(account.data) ? encoding === "jsonParsed" ? [account.data[0], "base64"] : [account.data[0], encoding] : [account.data, "jsonParsed"];
54
- const queryResponse = {
76
+ const [refinedData, responseEncoding] = Array.isArray(account.data) ? encoding === "jsonParsed" ? [account.data[0], "base64"] : [account.data[0], encoding] : [refineJsonParsedAccountData(account.data), "jsonParsed"];
77
+ const responseBase = {
55
78
  ...account,
56
- data,
79
+ address,
57
80
  encoding: responseEncoding
58
81
  };
82
+ const queryResponse = typeof refinedData === "object" && "meta" in refinedData ? {
83
+ ...responseBase,
84
+ data: refinedData.data,
85
+ meta: refinedData.meta
86
+ } : {
87
+ ...responseBase,
88
+ data: refinedData
89
+ };
59
90
  cache.insert(address, requestConfig, queryResponse);
60
91
  return queryResponse;
61
92
  }
93
+
94
+ // src/resolvers/block.ts
62
95
  async function resolveBlock({ slot, encoding = "jsonParsed", ...config }, cache, rpc) {
63
96
  const requestConfig = { encoding, ...config };
64
97
  const cached = cache.get(slot, config);
@@ -72,6 +105,8 @@ async function resolveBlock({ slot, encoding = "jsonParsed", ...config }, cache,
72
105
  cache.insert(slot, config, block);
73
106
  return block;
74
107
  }
108
+
109
+ // src/resolvers/program-accounts.ts
75
110
  async function resolveProgramAccounts({ programAddress, encoding = "jsonParsed", ...config }, cache, rpc) {
76
111
  const requestConfig = { encoding, ...config };
77
112
  const cached = cache.get(programAddress, requestConfig);
@@ -86,18 +121,28 @@ async function resolveProgramAccounts({ programAddress, encoding = "jsonParsed",
86
121
  }).catch((e) => {
87
122
  throw e;
88
123
  });
89
- const queryResponse = programAccounts.map((programAccount2) => {
90
- const [data, responseEncoding] = Array.isArray(programAccount2.account.data) ? encoding === "jsonParsed" ? [programAccount2.account.data[0], "base64"] : [programAccount2.account.data[0], encoding] : [programAccount2.account.data, "jsonParsed"];
91
- const pubkey = programAccount2.pubkey;
92
- const account = { ...programAccount2.account, data, encoding: responseEncoding };
93
- return {
94
- account,
95
- pubkey
124
+ const queryResponse = programAccounts.map((programAccount) => {
125
+ 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"];
126
+ const pubkey = programAccount.pubkey;
127
+ const responseBase = {
128
+ ...programAccount.account,
129
+ address: pubkey,
130
+ encoding: responseEncoding
131
+ };
132
+ return typeof refinedData === "object" && "meta" in refinedData ? {
133
+ ...responseBase,
134
+ data: refinedData.data,
135
+ meta: refinedData.meta
136
+ } : {
137
+ ...responseBase,
138
+ data: refinedData
96
139
  };
97
140
  });
98
141
  cache.insert(programAddress, requestConfig, queryResponse);
99
142
  return queryResponse;
100
143
  }
144
+
145
+ // src/resolvers/transaction.ts
101
146
  async function resolveTransaction({ signature, encoding = "jsonParsed", ...config }, cache, rpc) {
102
147
  const requestConfig = { encoding, ...config };
103
148
  const cached = cache.get(signature, requestConfig);
@@ -123,12 +168,14 @@ async function resolveTransaction({ signature, encoding = "jsonParsed", ...confi
123
168
  cache.insert(signature, requestConfig, queryResponse);
124
169
  return queryResponse;
125
170
  }
171
+
172
+ // src/context.ts
126
173
  function createSolanaGraphQLContext(rpc) {
127
174
  const cache = createGraphQLCache();
128
175
  return {
129
176
  cache,
130
- resolveAccount(args) {
131
- return resolveAccount(args, this.cache, this.rpc);
177
+ resolveAccount(args, info) {
178
+ return resolveAccount(args, this.cache, this.rpc, info);
132
179
  },
133
180
  resolveBlock(args) {
134
181
  return resolveBlock(args, this.cache, this.rpc);
@@ -270,7 +317,7 @@ var dataSliceInputType = () => {
270
317
  length: number(),
271
318
  offset: number()
272
319
  },
273
- name: "DataSliceConfig"
320
+ name: "DataSlice"
274
321
  });
275
322
  return memoisedDataSliceInputType;
276
323
  };
@@ -316,9 +363,6 @@ var transactionEncodingInputType = () => {
316
363
  base64: {
317
364
  value: "base64"
318
365
  },
319
- json: {
320
- value: "json"
321
- },
322
366
  jsonParsed: {
323
367
  value: "jsonParsed"
324
368
  }
@@ -341,10 +385,25 @@ var tokenAmountType = () => {
341
385
  }
342
386
  return memoisedTokenAmountType;
343
387
  };
388
+ var memoisedJsonParsedMeta;
389
+ var jsonParsedMeta = () => {
390
+ if (!memoisedJsonParsedMeta) {
391
+ memoisedJsonParsedMeta = new GraphQLObjectType({
392
+ fields: {
393
+ program: string(),
394
+ space: bigint(),
395
+ type: string()
396
+ },
397
+ name: "JsonParsedMeta"
398
+ });
399
+ }
400
+ return memoisedJsonParsedMeta;
401
+ };
344
402
  var memoisedAccountInterfaceFields;
345
403
  var accountInterfaceFields = () => {
346
404
  if (!memoisedAccountInterfaceFields) {
347
405
  memoisedAccountInterfaceFields = {
406
+ address: string(),
348
407
  encoding: string(),
349
408
  executable: boolean(),
350
409
  lamports: bigint(),
@@ -374,22 +433,22 @@ var accountInterface = () => {
374
433
  return "AccountBase64Zstd";
375
434
  }
376
435
  if (account.encoding === "jsonParsed") {
377
- if (account.data.parsed.type === "mint" && account.data.program === "spl-token") {
436
+ if (account.meta.type === "mint" && account.meta.program === "spl-token") {
378
437
  return "MintAccount";
379
438
  }
380
- if (account.data.parsed.type === "account" && account.data.program === "spl-token") {
439
+ if (account.meta.type === "account" && account.meta.program === "spl-token") {
381
440
  return "TokenAccount";
382
441
  }
383
- if (account.data.program === "nonce") {
442
+ if (account.meta.program === "nonce") {
384
443
  return "NonceAccount";
385
444
  }
386
- if (account.data.program === "stake") {
445
+ if (account.meta.program === "stake") {
387
446
  return "StakeAccount";
388
447
  }
389
- if (account.data.parsed.type === "vote" && account.data.program === "vote") {
448
+ if (account.meta.type === "vote" && account.meta.program === "vote") {
390
449
  return "VoteAccount";
391
450
  }
392
- if (account.data.parsed.type === "lookupTable" && account.data.program === "address-lookup-table") {
451
+ if (account.meta.type === "lookupTable" && account.meta.program === "address-lookup-table") {
393
452
  return "LookupTableAccount";
394
453
  }
395
454
  }
@@ -399,11 +458,11 @@ var accountInterface = () => {
399
458
  }
400
459
  return memoisedAccountInterface;
401
460
  };
402
- var accountType = (name, description, data) => new GraphQLObjectType({
403
- description,
404
- fields: {
461
+ var accountType = (name, description, data, meta) => {
462
+ const fieldsBase = {
405
463
  ...accountInterfaceFields(),
406
464
  data,
465
+ // Nested Account interface
407
466
  owner: {
408
467
  args: {
409
468
  commitment: type(commitmentInputType()),
@@ -411,31 +470,42 @@ var accountType = (name, description, data) => new GraphQLObjectType({
411
470
  encoding: type(accountEncodingInputType()),
412
471
  minContextSlot: bigint()
413
472
  },
414
- resolve: (parent, args, context) => context.resolveAccount({ ...args, address: parent.owner }),
473
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
474
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
415
475
  type: accountInterface()
416
476
  }
417
- },
418
- interfaces: [accountInterface()],
419
- name
420
- });
421
- var accountDataJsonParsed = (name, parsedInfoFields) => object(name + "Data", {
422
- parsed: object(name + "DataParsed", {
423
- info: object(name + "DataParsedInfo", parsedInfoFields),
424
- type: string()
425
- }),
426
- program: string(),
427
- space: bigint()
428
- });
477
+ };
478
+ const graphQLObject = (fields) => new GraphQLObjectType({
479
+ description,
480
+ fields,
481
+ interfaces: [accountInterface()],
482
+ name
483
+ });
484
+ return meta ? graphQLObject({
485
+ ...fieldsBase,
486
+ meta: type(jsonParsedMeta())
487
+ }) : graphQLObject(fieldsBase);
488
+ };
429
489
  var memoisedAccountBase58;
430
490
  var accountBase58 = () => {
431
491
  if (!memoisedAccountBase58)
432
- memoisedAccountBase58 = accountType("AccountBase58", "A Solana account with base58 encoded data", string());
492
+ memoisedAccountBase58 = accountType(
493
+ "AccountBase58",
494
+ "A Solana account with base58 encoded data",
495
+ string(),
496
+ false
497
+ );
433
498
  return memoisedAccountBase58;
434
499
  };
435
500
  var memoisedAccountBase64;
436
501
  var accountBase64 = () => {
437
502
  if (!memoisedAccountBase64)
438
- memoisedAccountBase64 = accountType("AccountBase64", "A Solana account with base64 encoded data", string());
503
+ memoisedAccountBase64 = accountType(
504
+ "AccountBase64",
505
+ "A Solana account with base64 encoded data",
506
+ string(),
507
+ false
508
+ );
439
509
  return memoisedAccountBase64;
440
510
  };
441
511
  var memoisedAccountBase64Zstd;
@@ -444,7 +514,8 @@ var accountBase64Zstd = () => {
444
514
  memoisedAccountBase64Zstd = accountType(
445
515
  "AccountBase64Zstd",
446
516
  "A Solana account with base64 encoded data compressed with zstd",
447
- string()
517
+ string(),
518
+ false
448
519
  );
449
520
  return memoisedAccountBase64Zstd;
450
521
  };
@@ -454,13 +525,25 @@ var accountNonceAccount = () => {
454
525
  memoisedAccountNonceAccount = accountType(
455
526
  "NonceAccount",
456
527
  "A nonce account",
457
- accountDataJsonParsed("Nonce", {
458
- authority: string(),
528
+ object("NonceData", {
529
+ // Nested Account interface
530
+ authority: {
531
+ args: {
532
+ commitment: type(commitmentInputType()),
533
+ dataSlice: type(dataSliceInputType()),
534
+ encoding: type(accountEncodingInputType()),
535
+ minContextSlot: bigint()
536
+ },
537
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
538
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
539
+ type: accountInterface()
540
+ },
459
541
  blockhash: string(),
460
542
  feeCalculator: object("NonceFeeCalculator", {
461
543
  lamportsPerSignature: string()
462
544
  })
463
- })
545
+ }),
546
+ true
464
547
  );
465
548
  return memoisedAccountNonceAccount;
466
549
  };
@@ -470,13 +553,25 @@ var accountLookupTable = () => {
470
553
  memoisedAccountLookupTable = accountType(
471
554
  "LookupTableAccount",
472
555
  "An address lookup table account",
473
- accountDataJsonParsed("LookupTable", {
556
+ object("LookupTableData", {
474
557
  addresses: list(string()),
475
- authority: string(),
558
+ // Nested Account interface
559
+ authority: {
560
+ args: {
561
+ commitment: type(commitmentInputType()),
562
+ dataSlice: type(dataSliceInputType()),
563
+ encoding: type(accountEncodingInputType()),
564
+ minContextSlot: bigint()
565
+ },
566
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
567
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
568
+ type: accountInterface()
569
+ },
476
570
  deactivationSlot: string(),
477
571
  lastExtendedSlot: string(),
478
572
  lastExtendedSlotStartIndex: number()
479
- })
573
+ }),
574
+ true
480
575
  );
481
576
  return memoisedAccountLookupTable;
482
577
  };
@@ -486,13 +581,25 @@ var accountMint = () => {
486
581
  memoisedAccountMint = accountType(
487
582
  "MintAccount",
488
583
  "An SPL mint",
489
- accountDataJsonParsed("Mint", {
584
+ object("MintData", {
490
585
  decimals: number(),
491
586
  freezeAuthority: string(),
492
587
  isInitialized: boolean(),
493
- mintAuthority: string(),
588
+ // Nested Account interface
589
+ mintAuthority: {
590
+ args: {
591
+ commitment: type(commitmentInputType()),
592
+ dataSlice: type(dataSliceInputType()),
593
+ encoding: type(accountEncodingInputType()),
594
+ minContextSlot: bigint()
595
+ },
596
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
597
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mintAuthority }, info),
598
+ type: accountInterface()
599
+ },
494
600
  supply: string()
495
- })
601
+ }),
602
+ true
496
603
  );
497
604
  return memoisedAccountMint;
498
605
  };
@@ -502,13 +609,25 @@ var accountTokenAccount = () => {
502
609
  memoisedAccountTokenAccount = accountType(
503
610
  "TokenAccount",
504
611
  "An SPL token account",
505
- accountDataJsonParsed("TokenAccount", {
612
+ object("TokenAccountData", {
506
613
  isNative: boolean(),
507
614
  mint: string(),
508
- owner: string(),
615
+ // Nested Account interface
616
+ owner: {
617
+ args: {
618
+ commitment: type(commitmentInputType()),
619
+ dataSlice: type(dataSliceInputType()),
620
+ encoding: type(accountEncodingInputType()),
621
+ minContextSlot: bigint()
622
+ },
623
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
624
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
625
+ type: accountInterface()
626
+ },
509
627
  state: string(),
510
628
  tokenAmount: type(tokenAmountType())
511
- })
629
+ }),
630
+ true
512
631
  );
513
632
  return memoisedAccountTokenAccount;
514
633
  };
@@ -518,14 +637,47 @@ var accountStakeAccount = () => {
518
637
  memoisedAccountStakeAccount = accountType(
519
638
  "StakeAccount",
520
639
  "A stake account",
521
- accountDataJsonParsed("Stake", {
640
+ object("StakeData", {
522
641
  meta: object("StakeMeta", {
523
642
  authorized: object("StakeMetaAuthorized", {
524
- staker: string(),
525
- withdrawer: string()
643
+ // Nested Account interface
644
+ staker: {
645
+ args: {
646
+ commitment: type(commitmentInputType()),
647
+ dataSlice: type(dataSliceInputType()),
648
+ encoding: type(accountEncodingInputType()),
649
+ minContextSlot: bigint()
650
+ },
651
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
652
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.staker }, info),
653
+ type: accountInterface()
654
+ },
655
+ // Nested Account interface
656
+ withdrawer: {
657
+ args: {
658
+ commitment: type(commitmentInputType()),
659
+ dataSlice: type(dataSliceInputType()),
660
+ encoding: type(accountEncodingInputType()),
661
+ minContextSlot: bigint()
662
+ },
663
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
664
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.withdrawer }, info),
665
+ type: accountInterface()
666
+ }
526
667
  }),
527
668
  lockup: object("StakeMetaLockup", {
528
- custodian: string(),
669
+ // Nested Account interface
670
+ custodian: {
671
+ args: {
672
+ commitment: type(commitmentInputType()),
673
+ dataSlice: type(dataSliceInputType()),
674
+ encoding: type(accountEncodingInputType()),
675
+ minContextSlot: bigint()
676
+ },
677
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
678
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.custodian }, info),
679
+ type: accountInterface()
680
+ },
529
681
  epoch: bigint(),
530
682
  unixTimestamp: bigint()
531
683
  }),
@@ -537,11 +689,23 @@ var accountStakeAccount = () => {
537
689
  activationEpoch: bigint(),
538
690
  deactivationEpoch: bigint(),
539
691
  stake: string(),
540
- voter: string(),
692
+ // Nested Account interface
693
+ voter: {
694
+ args: {
695
+ commitment: type(commitmentInputType()),
696
+ dataSlice: type(dataSliceInputType()),
697
+ encoding: type(accountEncodingInputType()),
698
+ minContextSlot: bigint()
699
+ },
700
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
701
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voter }, info),
702
+ type: accountInterface()
703
+ },
541
704
  warmupCooldownRate: number()
542
705
  })
543
706
  })
544
- })
707
+ }),
708
+ true
545
709
  );
546
710
  return memoisedAccountStakeAccount;
547
711
  };
@@ -551,14 +715,36 @@ var accountVoteAccount = () => {
551
715
  memoisedAccountVoteAccount = accountType(
552
716
  "VoteAccount",
553
717
  "A vote account",
554
- accountDataJsonParsed("Vote", {
718
+ object("VoteData", {
555
719
  authorizedVoters: list(
556
720
  object("VoteAuthorizedVoter", {
557
- authorizedVoter: string(),
721
+ // Nested Account interface
722
+ authorizedVoter: {
723
+ args: {
724
+ commitment: type(commitmentInputType()),
725
+ dataSlice: type(dataSliceInputType()),
726
+ encoding: type(accountEncodingInputType()),
727
+ minContextSlot: bigint()
728
+ },
729
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
730
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authorizedVoter }, info),
731
+ type: accountInterface()
732
+ },
558
733
  epoch: bigint()
559
734
  })
560
735
  ),
561
- authorizedWithdrawer: string(),
736
+ // Nested Account interface
737
+ authorizedWithdrawer: {
738
+ args: {
739
+ commitment: type(commitmentInputType()),
740
+ dataSlice: type(dataSliceInputType()),
741
+ encoding: type(accountEncodingInputType()),
742
+ minContextSlot: bigint()
743
+ },
744
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
745
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authorizedWithdrawer }, info),
746
+ type: accountInterface()
747
+ },
562
748
  commission: number(),
563
749
  epochCredits: list(
564
750
  object("VoteEpochCredits", {
@@ -571,7 +757,18 @@ var accountVoteAccount = () => {
571
757
  slot: bigint(),
572
758
  timestamp: bigint()
573
759
  }),
574
- nodePubkey: string(),
760
+ // Nested Account interface
761
+ node: {
762
+ args: {
763
+ commitment: type(commitmentInputType()),
764
+ dataSlice: type(dataSliceInputType()),
765
+ encoding: type(accountEncodingInputType()),
766
+ minContextSlot: bigint()
767
+ },
768
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
769
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.nodePubkey }, info),
770
+ type: accountInterface()
771
+ },
575
772
  priorVoters: list(string()),
576
773
  rootSlot: bigint(),
577
774
  votes: list(
@@ -580,7 +777,8 @@ var accountVoteAccount = () => {
580
777
  slot: bigint()
581
778
  })
582
779
  )
583
- })
780
+ }),
781
+ true
584
782
  );
585
783
  return memoisedAccountVoteAccount;
586
784
  };
@@ -611,7 +809,8 @@ var accountQuery = () => ({
611
809
  encoding: type(accountEncodingInputType()),
612
810
  minContextSlot: bigint()
613
811
  },
614
- resolve: (_parent, args, context) => context.resolveAccount(args),
812
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
813
+ resolve: (_parent, args, context, info) => context.resolveAccount(args, info),
615
814
  type: accountInterface()
616
815
  }
617
816
  });
@@ -621,8 +820,30 @@ var tokenBalance = () => {
621
820
  memoisedTokenBalance = new GraphQLObjectType({
622
821
  fields: {
623
822
  accountIndex: number(),
624
- mint: string(),
625
- owner: string(),
823
+ // Nested Account interface
824
+ mint: {
825
+ args: {
826
+ commitment: type(commitmentInputType()),
827
+ dataSlice: type(dataSliceInputType()),
828
+ encoding: type(accountEncodingInputType()),
829
+ minContextSlot: bigint()
830
+ },
831
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
832
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
833
+ type: accountInterface()
834
+ },
835
+ // Nested Account interface
836
+ owner: {
837
+ args: {
838
+ commitment: type(commitmentInputType()),
839
+ dataSlice: type(dataSliceInputType()),
840
+ encoding: type(accountEncodingInputType()),
841
+ minContextSlot: bigint()
842
+ },
843
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
844
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
845
+ type: accountInterface()
846
+ },
626
847
  programId: string(),
627
848
  uiAmountString: string()
628
849
  },
@@ -1042,30 +1263,184 @@ var parsedInstructionsAddressLookupTable = () => {
1042
1263
  memoisedParsedInstructionsAddressLookupTable = [
1043
1264
  parsedTransactionInstructionType("CreateLookupTableInstruction", {
1044
1265
  bumpSeed: number(),
1045
- lookupTableAccount: string(),
1046
- lookupTableAuthority: string(),
1047
- payerAccount: string(),
1266
+ // Nested Account interface
1267
+ lookupTableAccount: {
1268
+ args: {
1269
+ commitment: type(commitmentInputType()),
1270
+ dataSlice: type(dataSliceInputType()),
1271
+ encoding: type(accountEncodingInputType()),
1272
+ minContextSlot: bigint()
1273
+ },
1274
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1275
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),
1276
+ type: accountInterface()
1277
+ },
1278
+ // Nested Account interface
1279
+ lookupTableAuthority: {
1280
+ args: {
1281
+ commitment: type(commitmentInputType()),
1282
+ dataSlice: type(dataSliceInputType()),
1283
+ encoding: type(accountEncodingInputType()),
1284
+ minContextSlot: bigint()
1285
+ },
1286
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1287
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),
1288
+ type: accountInterface()
1289
+ },
1290
+ // Nested Account interface
1291
+ payerAccount: {
1292
+ args: {
1293
+ commitment: type(commitmentInputType()),
1294
+ dataSlice: type(dataSliceInputType()),
1295
+ encoding: type(accountEncodingInputType()),
1296
+ minContextSlot: bigint()
1297
+ },
1298
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1299
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.payerAccount }, info),
1300
+ type: accountInterface()
1301
+ },
1048
1302
  recentSlot: bigint(),
1049
- systemProgram: string()
1303
+ // Nested Account interface
1304
+ systemProgram: {
1305
+ args: {
1306
+ commitment: type(commitmentInputType()),
1307
+ dataSlice: type(dataSliceInputType()),
1308
+ encoding: type(accountEncodingInputType()),
1309
+ minContextSlot: bigint()
1310
+ },
1311
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1312
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.systemProgram }, info),
1313
+ type: accountInterface()
1314
+ }
1050
1315
  }),
1051
1316
  parsedTransactionInstructionType("FreezeLookupTableInstruction", {
1052
- lookupTableAccount: string(),
1053
- lookupTableAuthority: string()
1317
+ // Nested Account interface
1318
+ lookupTableAccount: {
1319
+ args: {
1320
+ commitment: type(commitmentInputType()),
1321
+ dataSlice: type(dataSliceInputType()),
1322
+ encoding: type(accountEncodingInputType()),
1323
+ minContextSlot: bigint()
1324
+ },
1325
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1326
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),
1327
+ type: accountInterface()
1328
+ },
1329
+ // Nested Account interface
1330
+ lookupTableAuthority: {
1331
+ args: {
1332
+ commitment: type(commitmentInputType()),
1333
+ dataSlice: type(dataSliceInputType()),
1334
+ encoding: type(accountEncodingInputType()),
1335
+ minContextSlot: bigint()
1336
+ },
1337
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1338
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),
1339
+ type: accountInterface()
1340
+ }
1054
1341
  }),
1055
1342
  parsedTransactionInstructionType("ExtendLookupTableInstruction", {
1056
- lookupTableAccount: string(),
1057
- lookupTableAuthority: string(),
1343
+ // Nested Account interface
1344
+ lookupTableAccount: {
1345
+ args: {
1346
+ commitment: type(commitmentInputType()),
1347
+ dataSlice: type(dataSliceInputType()),
1348
+ encoding: type(accountEncodingInputType()),
1349
+ minContextSlot: bigint()
1350
+ },
1351
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1352
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),
1353
+ type: accountInterface()
1354
+ },
1355
+ // Nested Account interface
1356
+ lookupTableAuthority: {
1357
+ args: {
1358
+ commitment: type(commitmentInputType()),
1359
+ dataSlice: type(dataSliceInputType()),
1360
+ encoding: type(accountEncodingInputType()),
1361
+ minContextSlot: bigint()
1362
+ },
1363
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1364
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),
1365
+ type: accountInterface()
1366
+ },
1058
1367
  newAddresses: list(string()),
1059
- payerAccount: string(),
1060
- systemProgram: string()
1368
+ // Nested Account interface
1369
+ payerAccount: {
1370
+ args: {
1371
+ commitment: type(commitmentInputType()),
1372
+ dataSlice: type(dataSliceInputType()),
1373
+ encoding: type(accountEncodingInputType()),
1374
+ minContextSlot: bigint()
1375
+ },
1376
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1377
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.payerAccount }, info),
1378
+ type: accountInterface()
1379
+ },
1380
+ // Nested Account interface
1381
+ systemProgram: {
1382
+ args: {
1383
+ commitment: type(commitmentInputType()),
1384
+ dataSlice: type(dataSliceInputType()),
1385
+ encoding: type(accountEncodingInputType()),
1386
+ minContextSlot: bigint()
1387
+ },
1388
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1389
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.systemProgram }, info),
1390
+ type: accountInterface()
1391
+ }
1061
1392
  }),
1062
1393
  parsedTransactionInstructionType("DeactivateLookupTableInstruction", {
1063
- lookupTableAccount: string(),
1064
- lookupTableAuthority: string()
1394
+ // Nested Account interface
1395
+ lookupTableAccount: {
1396
+ args: {
1397
+ commitment: type(commitmentInputType()),
1398
+ dataSlice: type(dataSliceInputType()),
1399
+ encoding: type(accountEncodingInputType()),
1400
+ minContextSlot: bigint()
1401
+ },
1402
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1403
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),
1404
+ type: accountInterface()
1405
+ },
1406
+ // Nested Account interface
1407
+ lookupTableAuthority: {
1408
+ args: {
1409
+ commitment: type(commitmentInputType()),
1410
+ dataSlice: type(dataSliceInputType()),
1411
+ encoding: type(accountEncodingInputType()),
1412
+ minContextSlot: bigint()
1413
+ },
1414
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1415
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),
1416
+ type: accountInterface()
1417
+ }
1065
1418
  }),
1066
1419
  parsedTransactionInstructionType("CloseLookupTableInstruction", {
1067
- lookupTableAccount: string(),
1068
- lookupTableAuthority: string(),
1420
+ // Nested Account interface
1421
+ lookupTableAccount: {
1422
+ args: {
1423
+ commitment: type(commitmentInputType()),
1424
+ dataSlice: type(dataSliceInputType()),
1425
+ encoding: type(accountEncodingInputType()),
1426
+ minContextSlot: bigint()
1427
+ },
1428
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1429
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),
1430
+ type: accountInterface()
1431
+ },
1432
+ // Nested Account interface
1433
+ lookupTableAuthority: {
1434
+ args: {
1435
+ commitment: type(commitmentInputType()),
1436
+ dataSlice: type(dataSliceInputType()),
1437
+ encoding: type(accountEncodingInputType()),
1438
+ minContextSlot: bigint()
1439
+ },
1440
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1441
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),
1442
+ type: accountInterface()
1443
+ },
1069
1444
  recipient: string()
1070
1445
  })
1071
1446
  ];
@@ -1076,12 +1451,34 @@ var parsedInstructionsBpfLoader = () => {
1076
1451
  if (!memoisedParsedInstructionsBpfLoader)
1077
1452
  memoisedParsedInstructionsBpfLoader = [
1078
1453
  parsedTransactionInstructionType("BpfLoaderWriteInstruction", {
1079
- account: string(),
1454
+ // Nested Account interface
1455
+ account: {
1456
+ args: {
1457
+ commitment: type(commitmentInputType()),
1458
+ dataSlice: type(dataSliceInputType()),
1459
+ encoding: type(accountEncodingInputType()),
1460
+ minContextSlot: bigint()
1461
+ },
1462
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1463
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
1464
+ type: accountInterface()
1465
+ },
1080
1466
  bytes: string(),
1081
1467
  offset: number()
1082
1468
  }),
1083
1469
  parsedTransactionInstructionType("BpfLoaderFinalizeInstruction", {
1084
- account: string()
1470
+ // Nested Account interface
1471
+ account: {
1472
+ args: {
1473
+ commitment: type(commitmentInputType()),
1474
+ dataSlice: type(dataSliceInputType()),
1475
+ encoding: type(accountEncodingInputType()),
1476
+ minContextSlot: bigint()
1477
+ },
1478
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1479
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
1480
+ type: accountInterface()
1481
+ }
1085
1482
  })
1086
1483
  ];
1087
1484
  return memoisedParsedInstructionsBpfLoader;
@@ -1091,55 +1488,329 @@ var parsedInstructionsBpfUpgradeableLoader = () => {
1091
1488
  if (!memoisedParsedInstructionsBpfUpgradeableLoader)
1092
1489
  memoisedParsedInstructionsBpfUpgradeableLoader = [
1093
1490
  parsedTransactionInstructionType("BpfUpgradeableLoaderInitializeBufferInstruction", {
1094
- account: string()
1491
+ // Nested Account interface
1492
+ account: {
1493
+ args: {
1494
+ commitment: type(commitmentInputType()),
1495
+ dataSlice: type(dataSliceInputType()),
1496
+ encoding: type(accountEncodingInputType()),
1497
+ minContextSlot: bigint()
1498
+ },
1499
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1500
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
1501
+ type: accountInterface()
1502
+ }
1095
1503
  }),
1096
1504
  parsedTransactionInstructionType("BpfUpgradeableLoaderWriteInstruction", {
1097
- account: string(),
1098
- authority: string(),
1505
+ // Nested Account interface
1506
+ account: {
1507
+ args: {
1508
+ commitment: type(commitmentInputType()),
1509
+ dataSlice: type(dataSliceInputType()),
1510
+ encoding: type(accountEncodingInputType()),
1511
+ minContextSlot: bigint()
1512
+ },
1513
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1514
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
1515
+ type: accountInterface()
1516
+ },
1517
+ // Nested Account interface
1518
+ authority: {
1519
+ args: {
1520
+ commitment: type(commitmentInputType()),
1521
+ dataSlice: type(dataSliceInputType()),
1522
+ encoding: type(accountEncodingInputType()),
1523
+ minContextSlot: bigint()
1524
+ },
1525
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1526
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
1527
+ type: accountInterface()
1528
+ },
1099
1529
  bytes: string(),
1100
1530
  offset: number()
1101
1531
  }),
1102
1532
  parsedTransactionInstructionType("BpfUpgradeableLoaderDeployWithMaxDataLenInstruction", {
1103
- authority: string(),
1104
- bufferAccount: string(),
1533
+ // Nested Account interface
1534
+ authority: {
1535
+ args: {
1536
+ commitment: type(commitmentInputType()),
1537
+ dataSlice: type(dataSliceInputType()),
1538
+ encoding: type(accountEncodingInputType()),
1539
+ minContextSlot: bigint()
1540
+ },
1541
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1542
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
1543
+ type: accountInterface()
1544
+ },
1545
+ // Nested Account interface
1546
+ bufferAccount: {
1547
+ args: {
1548
+ commitment: type(commitmentInputType()),
1549
+ dataSlice: type(dataSliceInputType()),
1550
+ encoding: type(accountEncodingInputType()),
1551
+ minContextSlot: bigint()
1552
+ },
1553
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1554
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.bufferAccount }, info),
1555
+ type: accountInterface()
1556
+ },
1105
1557
  clockSysvar: string(),
1106
1558
  maxDataLen: bigint(),
1107
- payerAccount: string(),
1108
- programAccount: string(),
1109
- programDataAccount: string(),
1559
+ // Nested Account interface
1560
+ payerAccount: {
1561
+ args: {
1562
+ commitment: type(commitmentInputType()),
1563
+ dataSlice: type(dataSliceInputType()),
1564
+ encoding: type(accountEncodingInputType()),
1565
+ minContextSlot: bigint()
1566
+ },
1567
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1568
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.payerAccount }, info),
1569
+ type: accountInterface()
1570
+ },
1571
+ // Nested Account interface
1572
+ programAccount: {
1573
+ args: {
1574
+ commitment: type(commitmentInputType()),
1575
+ dataSlice: type(dataSliceInputType()),
1576
+ encoding: type(accountEncodingInputType()),
1577
+ minContextSlot: bigint()
1578
+ },
1579
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1580
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.programAccount }, info),
1581
+ type: accountInterface()
1582
+ },
1583
+ // Nested Account interface
1584
+ programDataAccount: {
1585
+ args: {
1586
+ commitment: type(commitmentInputType()),
1587
+ dataSlice: type(dataSliceInputType()),
1588
+ encoding: type(accountEncodingInputType()),
1589
+ minContextSlot: bigint()
1590
+ },
1591
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1592
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.programDataAccount }, info),
1593
+ type: accountInterface()
1594
+ },
1110
1595
  rentSysvar: string()
1111
1596
  }),
1112
1597
  parsedTransactionInstructionType("BpfUpgradeableLoaderUpgradeInstruction", {
1113
- authority: string(),
1114
- bufferAccount: string(),
1598
+ // Nested Account interface
1599
+ authority: {
1600
+ args: {
1601
+ commitment: type(commitmentInputType()),
1602
+ dataSlice: type(dataSliceInputType()),
1603
+ encoding: type(accountEncodingInputType()),
1604
+ minContextSlot: bigint()
1605
+ },
1606
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1607
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
1608
+ type: accountInterface()
1609
+ },
1610
+ // Nested Account interface
1611
+ bufferAccount: {
1612
+ args: {
1613
+ commitment: type(commitmentInputType()),
1614
+ dataSlice: type(dataSliceInputType()),
1615
+ encoding: type(accountEncodingInputType()),
1616
+ minContextSlot: bigint()
1617
+ },
1618
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1619
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.bufferAccount }, info),
1620
+ type: accountInterface()
1621
+ },
1115
1622
  clockSysvar: string(),
1116
- programAccount: string(),
1117
- programDataAccount: string(),
1623
+ // Nested Account interface
1624
+ programAccount: {
1625
+ args: {
1626
+ commitment: type(commitmentInputType()),
1627
+ dataSlice: type(dataSliceInputType()),
1628
+ encoding: type(accountEncodingInputType()),
1629
+ minContextSlot: bigint()
1630
+ },
1631
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1632
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.programAccount }, info),
1633
+ type: accountInterface()
1634
+ },
1635
+ // Nested Account interface
1636
+ programDataAccount: {
1637
+ args: {
1638
+ commitment: type(commitmentInputType()),
1639
+ dataSlice: type(dataSliceInputType()),
1640
+ encoding: type(accountEncodingInputType()),
1641
+ minContextSlot: bigint()
1642
+ },
1643
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1644
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.programDataAccount }, info),
1645
+ type: accountInterface()
1646
+ },
1118
1647
  rentSysvar: string(),
1119
- spillAccount: string()
1648
+ // Nested Account interface
1649
+ spillAccount: {
1650
+ args: {
1651
+ commitment: type(commitmentInputType()),
1652
+ dataSlice: type(dataSliceInputType()),
1653
+ encoding: type(accountEncodingInputType()),
1654
+ minContextSlot: bigint()
1655
+ },
1656
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1657
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.spillAccount }, info),
1658
+ type: accountInterface()
1659
+ }
1120
1660
  }),
1121
1661
  parsedTransactionInstructionType("BpfUpgradeableLoaderSetAuthorityInstruction", {
1122
1662
  account: string(),
1123
- authority: string(),
1124
- newAuthority: string()
1663
+ // Nested Account interface
1664
+ authority: {
1665
+ args: {
1666
+ commitment: type(commitmentInputType()),
1667
+ dataSlice: type(dataSliceInputType()),
1668
+ encoding: type(accountEncodingInputType()),
1669
+ minContextSlot: bigint()
1670
+ },
1671
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1672
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
1673
+ type: accountInterface()
1674
+ },
1675
+ // Nested Account interface
1676
+ newAuthority: {
1677
+ args: {
1678
+ commitment: type(commitmentInputType()),
1679
+ dataSlice: type(dataSliceInputType()),
1680
+ encoding: type(accountEncodingInputType()),
1681
+ minContextSlot: bigint()
1682
+ },
1683
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1684
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newAuthority }, info),
1685
+ type: accountInterface()
1686
+ }
1125
1687
  }),
1126
1688
  parsedTransactionInstructionType("BpfUpgradeableLoaderSetAuthorityCheckedInstruction", {
1127
- account: string(),
1128
- authority: string(),
1129
- newAuthority: string()
1689
+ // Nested Account interface
1690
+ account: {
1691
+ args: {
1692
+ commitment: type(commitmentInputType()),
1693
+ dataSlice: type(dataSliceInputType()),
1694
+ encoding: type(accountEncodingInputType()),
1695
+ minContextSlot: bigint()
1696
+ },
1697
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1698
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
1699
+ type: accountInterface()
1700
+ },
1701
+ // Nested Account interface
1702
+ authority: {
1703
+ args: {
1704
+ commitment: type(commitmentInputType()),
1705
+ dataSlice: type(dataSliceInputType()),
1706
+ encoding: type(accountEncodingInputType()),
1707
+ minContextSlot: bigint()
1708
+ },
1709
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1710
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
1711
+ type: accountInterface()
1712
+ },
1713
+ // Nested Account interface
1714
+ newAuthority: {
1715
+ args: {
1716
+ commitment: type(commitmentInputType()),
1717
+ dataSlice: type(dataSliceInputType()),
1718
+ encoding: type(accountEncodingInputType()),
1719
+ minContextSlot: bigint()
1720
+ },
1721
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1722
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newAuthority }, info),
1723
+ type: accountInterface()
1724
+ }
1130
1725
  }),
1131
1726
  parsedTransactionInstructionType("BpfUpgradeableLoaderCloseInstruction", {
1132
- account: string(),
1133
- authority: string(),
1134
- programAccount: string(),
1727
+ // Nested Account interface
1728
+ account: {
1729
+ args: {
1730
+ commitment: type(commitmentInputType()),
1731
+ dataSlice: type(dataSliceInputType()),
1732
+ encoding: type(accountEncodingInputType()),
1733
+ minContextSlot: bigint()
1734
+ },
1735
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1736
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
1737
+ type: accountInterface()
1738
+ },
1739
+ // Nested Account interface
1740
+ authority: {
1741
+ args: {
1742
+ commitment: type(commitmentInputType()),
1743
+ dataSlice: type(dataSliceInputType()),
1744
+ encoding: type(accountEncodingInputType()),
1745
+ minContextSlot: bigint()
1746
+ },
1747
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1748
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
1749
+ type: accountInterface()
1750
+ },
1751
+ // Nested Account interface
1752
+ programAccount: {
1753
+ args: {
1754
+ commitment: type(commitmentInputType()),
1755
+ dataSlice: type(dataSliceInputType()),
1756
+ encoding: type(accountEncodingInputType()),
1757
+ minContextSlot: bigint()
1758
+ },
1759
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1760
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.programAccount }, info),
1761
+ type: accountInterface()
1762
+ },
1135
1763
  recipient: string()
1136
1764
  }),
1137
1765
  parsedTransactionInstructionType("BpfUpgradeableLoaderExtendProgramInstruction", {
1138
1766
  additionalBytes: bigint(),
1139
- payerAccount: string(),
1140
- programAccount: string(),
1141
- programDataAccount: string(),
1142
- systemProgram: string()
1767
+ payerAccount: {
1768
+ args: {
1769
+ commitment: type(commitmentInputType()),
1770
+ dataSlice: type(dataSliceInputType()),
1771
+ encoding: type(accountEncodingInputType()),
1772
+ minContextSlot: bigint()
1773
+ },
1774
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1775
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.payerAccount }, info),
1776
+ type: accountInterface()
1777
+ },
1778
+ // Nested Account interface
1779
+ programAccount: {
1780
+ args: {
1781
+ commitment: type(commitmentInputType()),
1782
+ dataSlice: type(dataSliceInputType()),
1783
+ encoding: type(accountEncodingInputType()),
1784
+ minContextSlot: bigint()
1785
+ },
1786
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1787
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.programAccount }, info),
1788
+ type: accountInterface()
1789
+ },
1790
+ // Nested Account interface
1791
+ programDataAccount: {
1792
+ args: {
1793
+ commitment: type(commitmentInputType()),
1794
+ dataSlice: type(dataSliceInputType()),
1795
+ encoding: type(accountEncodingInputType()),
1796
+ minContextSlot: bigint()
1797
+ },
1798
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1799
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.programDataAccount }, info),
1800
+ type: accountInterface()
1801
+ },
1802
+ // Nested Account interface
1803
+ systemProgram: {
1804
+ args: {
1805
+ commitment: type(commitmentInputType()),
1806
+ dataSlice: type(dataSliceInputType()),
1807
+ encoding: type(accountEncodingInputType()),
1808
+ minContextSlot: bigint()
1809
+ },
1810
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1811
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.systemProgram }, info),
1812
+ type: accountInterface()
1813
+ }
1143
1814
  })
1144
1815
  ];
1145
1816
  return memoisedParsedInstructionsBpfUpgradeableLoader;
@@ -1149,29 +1820,221 @@ var parsedInstructionsSplAssociatedToken = () => {
1149
1820
  if (!memoisedParsedInstructionsSplAssociatedToken)
1150
1821
  memoisedParsedInstructionsSplAssociatedToken = [
1151
1822
  parsedTransactionInstructionType("SplAssociatedTokenCreateInstruction", {
1152
- account: string(),
1153
- mint: string(),
1154
- source: string(),
1155
- systemProgram: string(),
1156
- tokenProgram: string(),
1157
- wallet: string()
1823
+ // Nested Account interface
1824
+ account: {
1825
+ args: {
1826
+ commitment: type(commitmentInputType()),
1827
+ dataSlice: type(dataSliceInputType()),
1828
+ encoding: type(accountEncodingInputType()),
1829
+ minContextSlot: bigint()
1830
+ },
1831
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1832
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
1833
+ type: accountInterface()
1834
+ },
1835
+ mint: {
1836
+ args: {
1837
+ commitment: type(commitmentInputType()),
1838
+ dataSlice: type(dataSliceInputType()),
1839
+ encoding: type(accountEncodingInputType()),
1840
+ minContextSlot: bigint()
1841
+ },
1842
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1843
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
1844
+ type: accountInterface()
1845
+ },
1846
+ source: {
1847
+ args: {
1848
+ commitment: type(commitmentInputType()),
1849
+ dataSlice: type(dataSliceInputType()),
1850
+ encoding: type(accountEncodingInputType()),
1851
+ minContextSlot: bigint()
1852
+ },
1853
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1854
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.source }, info),
1855
+ type: accountInterface()
1856
+ },
1857
+ systemProgram: {
1858
+ args: {
1859
+ commitment: type(commitmentInputType()),
1860
+ dataSlice: type(dataSliceInputType()),
1861
+ encoding: type(accountEncodingInputType()),
1862
+ minContextSlot: bigint()
1863
+ },
1864
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1865
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.systemProgram }, info),
1866
+ type: accountInterface()
1867
+ },
1868
+ tokenProgram: {
1869
+ args: {
1870
+ commitment: type(commitmentInputType()),
1871
+ dataSlice: type(dataSliceInputType()),
1872
+ encoding: type(accountEncodingInputType()),
1873
+ minContextSlot: bigint()
1874
+ },
1875
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1876
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.tokenProgram }, info),
1877
+ type: accountInterface()
1878
+ },
1879
+ wallet: {
1880
+ args: {
1881
+ commitment: type(commitmentInputType()),
1882
+ dataSlice: type(dataSliceInputType()),
1883
+ encoding: type(accountEncodingInputType()),
1884
+ minContextSlot: bigint()
1885
+ },
1886
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1887
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.wallet }, info),
1888
+ type: accountInterface()
1889
+ }
1158
1890
  }),
1159
1891
  parsedTransactionInstructionType("SplAssociatedTokenCreateIdempotentInstruction", {
1160
- account: string(),
1161
- mint: string(),
1162
- source: string(),
1163
- systemProgram: string(),
1164
- tokenProgram: string(),
1165
- wallet: string()
1892
+ // Nested Account interface
1893
+ account: {
1894
+ args: {
1895
+ commitment: type(commitmentInputType()),
1896
+ dataSlice: type(dataSliceInputType()),
1897
+ encoding: type(accountEncodingInputType()),
1898
+ minContextSlot: bigint()
1899
+ },
1900
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1901
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
1902
+ type: accountInterface()
1903
+ },
1904
+ mint: {
1905
+ args: {
1906
+ commitment: type(commitmentInputType()),
1907
+ dataSlice: type(dataSliceInputType()),
1908
+ encoding: type(accountEncodingInputType()),
1909
+ minContextSlot: bigint()
1910
+ },
1911
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1912
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
1913
+ type: accountInterface()
1914
+ },
1915
+ source: {
1916
+ args: {
1917
+ commitment: type(commitmentInputType()),
1918
+ dataSlice: type(dataSliceInputType()),
1919
+ encoding: type(accountEncodingInputType()),
1920
+ minContextSlot: bigint()
1921
+ },
1922
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1923
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.source }, info),
1924
+ type: accountInterface()
1925
+ },
1926
+ systemProgram: {
1927
+ args: {
1928
+ commitment: type(commitmentInputType()),
1929
+ dataSlice: type(dataSliceInputType()),
1930
+ encoding: type(accountEncodingInputType()),
1931
+ minContextSlot: bigint()
1932
+ },
1933
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1934
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.systemProgram }, info),
1935
+ type: accountInterface()
1936
+ },
1937
+ tokenProgram: {
1938
+ args: {
1939
+ commitment: type(commitmentInputType()),
1940
+ dataSlice: type(dataSliceInputType()),
1941
+ encoding: type(accountEncodingInputType()),
1942
+ minContextSlot: bigint()
1943
+ },
1944
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1945
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.tokenProgram }, info),
1946
+ type: accountInterface()
1947
+ },
1948
+ wallet: {
1949
+ args: {
1950
+ commitment: type(commitmentInputType()),
1951
+ dataSlice: type(dataSliceInputType()),
1952
+ encoding: type(accountEncodingInputType()),
1953
+ minContextSlot: bigint()
1954
+ },
1955
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1956
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.wallet }, info),
1957
+ type: accountInterface()
1958
+ }
1166
1959
  }),
1167
1960
  parsedTransactionInstructionType("SplAssociatedTokenRecoverNestedInstruction", {
1168
- destination: string(),
1169
- nestedMint: string(),
1170
- nestedOwner: string(),
1171
- nestedSource: string(),
1172
- ownerMint: string(),
1173
- tokenProgram: string(),
1174
- wallet: string()
1961
+ destination: {
1962
+ args: {
1963
+ commitment: type(commitmentInputType()),
1964
+ dataSlice: type(dataSliceInputType()),
1965
+ encoding: type(accountEncodingInputType()),
1966
+ minContextSlot: bigint()
1967
+ },
1968
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1969
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.destination }, info),
1970
+ type: accountInterface()
1971
+ },
1972
+ nestedMint: {
1973
+ args: {
1974
+ commitment: type(commitmentInputType()),
1975
+ dataSlice: type(dataSliceInputType()),
1976
+ encoding: type(accountEncodingInputType()),
1977
+ minContextSlot: bigint()
1978
+ },
1979
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1980
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.nestedMint }, info),
1981
+ type: accountInterface()
1982
+ },
1983
+ nestedOwner: {
1984
+ args: {
1985
+ commitment: type(commitmentInputType()),
1986
+ dataSlice: type(dataSliceInputType()),
1987
+ encoding: type(accountEncodingInputType()),
1988
+ minContextSlot: bigint()
1989
+ },
1990
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1991
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.nestedOwner }, info),
1992
+ type: accountInterface()
1993
+ },
1994
+ nestedSource: {
1995
+ args: {
1996
+ commitment: type(commitmentInputType()),
1997
+ dataSlice: type(dataSliceInputType()),
1998
+ encoding: type(accountEncodingInputType()),
1999
+ minContextSlot: bigint()
2000
+ },
2001
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2002
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.nestedSource }, info),
2003
+ type: accountInterface()
2004
+ },
2005
+ ownerMint: {
2006
+ args: {
2007
+ commitment: type(commitmentInputType()),
2008
+ dataSlice: type(dataSliceInputType()),
2009
+ encoding: type(accountEncodingInputType()),
2010
+ minContextSlot: bigint()
2011
+ },
2012
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2013
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.ownerMint }, info),
2014
+ type: accountInterface()
2015
+ },
2016
+ tokenProgram: {
2017
+ args: {
2018
+ commitment: type(commitmentInputType()),
2019
+ dataSlice: type(dataSliceInputType()),
2020
+ encoding: type(accountEncodingInputType()),
2021
+ minContextSlot: bigint()
2022
+ },
2023
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2024
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.tokenProgram }, info),
2025
+ type: accountInterface()
2026
+ },
2027
+ wallet: {
2028
+ args: {
2029
+ commitment: type(commitmentInputType()),
2030
+ dataSlice: type(dataSliceInputType()),
2031
+ encoding: type(accountEncodingInputType()),
2032
+ minContextSlot: bigint()
2033
+ },
2034
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2035
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.wallet }, info),
2036
+ type: accountInterface()
2037
+ }
1175
2038
  })
1176
2039
  ];
1177
2040
  return memoisedParsedInstructionsSplAssociatedToken;
@@ -1196,155 +2059,980 @@ var parsedInstructionsSplToken = () => {
1196
2059
  memoisedParsedInstructionsSplToken = [
1197
2060
  parsedTransactionInstructionType("SplTokenInitializeMintInstruction", {
1198
2061
  decimals: number(),
1199
- freezeAuthority: string(),
1200
- mint: string(),
1201
- mintAuthority: string(),
2062
+ freezeAuthority: {
2063
+ args: {
2064
+ commitment: type(commitmentInputType()),
2065
+ dataSlice: type(dataSliceInputType()),
2066
+ encoding: type(accountEncodingInputType()),
2067
+ minContextSlot: bigint()
2068
+ },
2069
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2070
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.freezeAuthority }, info),
2071
+ type: accountInterface()
2072
+ },
2073
+ mint: {
2074
+ args: {
2075
+ commitment: type(commitmentInputType()),
2076
+ dataSlice: type(dataSliceInputType()),
2077
+ encoding: type(accountEncodingInputType()),
2078
+ minContextSlot: bigint()
2079
+ },
2080
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2081
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2082
+ type: accountInterface()
2083
+ },
2084
+ mintAuthority: {
2085
+ args: {
2086
+ commitment: type(commitmentInputType()),
2087
+ dataSlice: type(dataSliceInputType()),
2088
+ encoding: type(accountEncodingInputType()),
2089
+ minContextSlot: bigint()
2090
+ },
2091
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2092
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mintAuthority }, info),
2093
+ type: accountInterface()
2094
+ },
1202
2095
  rentSysvar: string()
1203
2096
  }),
1204
2097
  parsedTransactionInstructionType("SplTokenInitializeMint2Instruction", {
1205
2098
  decimals: number(),
1206
- freezeAuthority: string(),
1207
- mint: string(),
1208
- mintAuthority: string()
2099
+ freezeAuthority: {
2100
+ args: {
2101
+ commitment: type(commitmentInputType()),
2102
+ dataSlice: type(dataSliceInputType()),
2103
+ encoding: type(accountEncodingInputType()),
2104
+ minContextSlot: bigint()
2105
+ },
2106
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2107
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.freezeAuthority }, info),
2108
+ type: accountInterface()
2109
+ },
2110
+ mint: {
2111
+ args: {
2112
+ commitment: type(commitmentInputType()),
2113
+ dataSlice: type(dataSliceInputType()),
2114
+ encoding: type(accountEncodingInputType()),
2115
+ minContextSlot: bigint()
2116
+ },
2117
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2118
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2119
+ type: accountInterface()
2120
+ },
2121
+ mintAuthority: {
2122
+ args: {
2123
+ commitment: type(commitmentInputType()),
2124
+ dataSlice: type(dataSliceInputType()),
2125
+ encoding: type(accountEncodingInputType()),
2126
+ minContextSlot: bigint()
2127
+ },
2128
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2129
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mintAuthority }, info),
2130
+ type: accountInterface()
2131
+ }
1209
2132
  }),
1210
2133
  parsedTransactionInstructionType("SplTokenInitializeAccountInstruction", {
1211
- account: string(),
1212
- mint: string(),
1213
- owner: string(),
2134
+ // Nested Account interface
2135
+ account: {
2136
+ args: {
2137
+ commitment: type(commitmentInputType()),
2138
+ dataSlice: type(dataSliceInputType()),
2139
+ encoding: type(accountEncodingInputType()),
2140
+ minContextSlot: bigint()
2141
+ },
2142
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2143
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
2144
+ type: accountInterface()
2145
+ },
2146
+ mint: {
2147
+ args: {
2148
+ commitment: type(commitmentInputType()),
2149
+ dataSlice: type(dataSliceInputType()),
2150
+ encoding: type(accountEncodingInputType()),
2151
+ minContextSlot: bigint()
2152
+ },
2153
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2154
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2155
+ type: accountInterface()
2156
+ },
2157
+ // Nested Account interface
2158
+ owner: {
2159
+ args: {
2160
+ commitment: type(commitmentInputType()),
2161
+ dataSlice: type(dataSliceInputType()),
2162
+ encoding: type(accountEncodingInputType()),
2163
+ minContextSlot: bigint()
2164
+ },
2165
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2166
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
2167
+ type: accountInterface()
2168
+ },
1214
2169
  rentSysvar: string()
1215
2170
  }),
1216
2171
  parsedTransactionInstructionType("SplTokenInitializeAccount2Instruction", {
1217
- account: string(),
1218
- mint: string(),
1219
- owner: string(),
2172
+ // Nested Account interface
2173
+ account: {
2174
+ args: {
2175
+ commitment: type(commitmentInputType()),
2176
+ dataSlice: type(dataSliceInputType()),
2177
+ encoding: type(accountEncodingInputType()),
2178
+ minContextSlot: bigint()
2179
+ },
2180
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2181
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
2182
+ type: accountInterface()
2183
+ },
2184
+ mint: {
2185
+ args: {
2186
+ commitment: type(commitmentInputType()),
2187
+ dataSlice: type(dataSliceInputType()),
2188
+ encoding: type(accountEncodingInputType()),
2189
+ minContextSlot: bigint()
2190
+ },
2191
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2192
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2193
+ type: accountInterface()
2194
+ },
2195
+ // Nested Account interface
2196
+ owner: {
2197
+ args: {
2198
+ commitment: type(commitmentInputType()),
2199
+ dataSlice: type(dataSliceInputType()),
2200
+ encoding: type(accountEncodingInputType()),
2201
+ minContextSlot: bigint()
2202
+ },
2203
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2204
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
2205
+ type: accountInterface()
2206
+ },
1220
2207
  rentSysvar: string()
1221
2208
  }),
1222
2209
  parsedTransactionInstructionType("SplTokenInitializeAccount3Instruction", {
1223
- account: string(),
1224
- mint: string(),
1225
- owner: string()
2210
+ // Nested Account interface
2211
+ account: {
2212
+ args: {
2213
+ commitment: type(commitmentInputType()),
2214
+ dataSlice: type(dataSliceInputType()),
2215
+ encoding: type(accountEncodingInputType()),
2216
+ minContextSlot: bigint()
2217
+ },
2218
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2219
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
2220
+ type: accountInterface()
2221
+ },
2222
+ mint: {
2223
+ args: {
2224
+ commitment: type(commitmentInputType()),
2225
+ dataSlice: type(dataSliceInputType()),
2226
+ encoding: type(accountEncodingInputType()),
2227
+ minContextSlot: bigint()
2228
+ },
2229
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2230
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2231
+ type: accountInterface()
2232
+ },
2233
+ // Nested Account interface
2234
+ owner: {
2235
+ args: {
2236
+ commitment: type(commitmentInputType()),
2237
+ dataSlice: type(dataSliceInputType()),
2238
+ encoding: type(accountEncodingInputType()),
2239
+ minContextSlot: bigint()
2240
+ },
2241
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2242
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
2243
+ type: accountInterface()
2244
+ }
1226
2245
  }),
1227
2246
  parsedTransactionInstructionType("SplTokenInitializeMultisigInstruction", {
1228
2247
  m: number(),
1229
- multisig: string(),
2248
+ // Nested Account interface
2249
+ multisig: {
2250
+ args: {
2251
+ commitment: type(commitmentInputType()),
2252
+ dataSlice: type(dataSliceInputType()),
2253
+ encoding: type(accountEncodingInputType()),
2254
+ minContextSlot: bigint()
2255
+ },
2256
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2257
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisig }, info),
2258
+ type: accountInterface()
2259
+ },
1230
2260
  rentSysvar: string(),
1231
2261
  signers: list(string())
1232
2262
  }),
1233
2263
  parsedTransactionInstructionType("SplTokenInitializeMultisig2Instruction", {
1234
2264
  m: number(),
1235
- multisig: string(),
2265
+ // Nested Account interface
2266
+ multisig: {
2267
+ args: {
2268
+ commitment: type(commitmentInputType()),
2269
+ dataSlice: type(dataSliceInputType()),
2270
+ encoding: type(accountEncodingInputType()),
2271
+ minContextSlot: bigint()
2272
+ },
2273
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2274
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisig }, info),
2275
+ type: accountInterface()
2276
+ },
1236
2277
  signers: list(string())
1237
2278
  }),
1238
2279
  parsedTransactionInstructionType("SplTokenTransferInstruction", {
1239
2280
  amount: string(),
1240
- authority: string(),
1241
- destination: string(),
1242
- multisigAuthority: string(),
1243
- source: string()
2281
+ // Nested Account interface
2282
+ authority: {
2283
+ args: {
2284
+ commitment: type(commitmentInputType()),
2285
+ dataSlice: type(dataSliceInputType()),
2286
+ encoding: type(accountEncodingInputType()),
2287
+ minContextSlot: bigint()
2288
+ },
2289
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2290
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
2291
+ type: accountInterface()
2292
+ },
2293
+ destination: {
2294
+ args: {
2295
+ commitment: type(commitmentInputType()),
2296
+ dataSlice: type(dataSliceInputType()),
2297
+ encoding: type(accountEncodingInputType()),
2298
+ minContextSlot: bigint()
2299
+ },
2300
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2301
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.destination }, info),
2302
+ type: accountInterface()
2303
+ },
2304
+ // Nested Account interface
2305
+ multisigAuthority: {
2306
+ args: {
2307
+ commitment: type(commitmentInputType()),
2308
+ dataSlice: type(dataSliceInputType()),
2309
+ encoding: type(accountEncodingInputType()),
2310
+ minContextSlot: bigint()
2311
+ },
2312
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2313
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),
2314
+ type: accountInterface()
2315
+ },
2316
+ source: {
2317
+ args: {
2318
+ commitment: type(commitmentInputType()),
2319
+ dataSlice: type(dataSliceInputType()),
2320
+ encoding: type(accountEncodingInputType()),
2321
+ minContextSlot: bigint()
2322
+ },
2323
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2324
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.source }, info),
2325
+ type: accountInterface()
2326
+ }
1244
2327
  }),
1245
2328
  parsedTransactionInstructionType("SplTokenApproveInstruction", {
1246
2329
  amount: string(),
1247
- delegate: string(),
1248
- multisigOwner: string(),
1249
- owner: string(),
1250
- source: string()
2330
+ // Nested Account interface
2331
+ delegate: {
2332
+ args: {
2333
+ commitment: type(commitmentInputType()),
2334
+ dataSlice: type(dataSliceInputType()),
2335
+ encoding: type(accountEncodingInputType()),
2336
+ minContextSlot: bigint()
2337
+ },
2338
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2339
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.delegate }, info),
2340
+ type: accountInterface()
2341
+ },
2342
+ // Nested Account interface
2343
+ multisigOwner: {
2344
+ args: {
2345
+ commitment: type(commitmentInputType()),
2346
+ dataSlice: type(dataSliceInputType()),
2347
+ encoding: type(accountEncodingInputType()),
2348
+ minContextSlot: bigint()
2349
+ },
2350
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2351
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisigOwner }, info),
2352
+ type: accountInterface()
2353
+ },
2354
+ // Nested Account interface
2355
+ owner: {
2356
+ args: {
2357
+ commitment: type(commitmentInputType()),
2358
+ dataSlice: type(dataSliceInputType()),
2359
+ encoding: type(accountEncodingInputType()),
2360
+ minContextSlot: bigint()
2361
+ },
2362
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2363
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
2364
+ type: accountInterface()
2365
+ },
2366
+ source: {
2367
+ args: {
2368
+ commitment: type(commitmentInputType()),
2369
+ dataSlice: type(dataSliceInputType()),
2370
+ encoding: type(accountEncodingInputType()),
2371
+ minContextSlot: bigint()
2372
+ },
2373
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2374
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.source }, info),
2375
+ type: accountInterface()
2376
+ }
1251
2377
  }),
1252
2378
  parsedTransactionInstructionType("SplTokenRevokeInstruction", {
1253
- multisigOwner: string(),
1254
- owner: string(),
1255
- source: string()
2379
+ // Nested Account interface
2380
+ multisigOwner: {
2381
+ args: {
2382
+ commitment: type(commitmentInputType()),
2383
+ dataSlice: type(dataSliceInputType()),
2384
+ encoding: type(accountEncodingInputType()),
2385
+ minContextSlot: bigint()
2386
+ },
2387
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2388
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisigOwner }, info),
2389
+ type: accountInterface()
2390
+ },
2391
+ // Nested Account interface
2392
+ owner: {
2393
+ args: {
2394
+ commitment: type(commitmentInputType()),
2395
+ dataSlice: type(dataSliceInputType()),
2396
+ encoding: type(accountEncodingInputType()),
2397
+ minContextSlot: bigint()
2398
+ },
2399
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2400
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
2401
+ type: accountInterface()
2402
+ },
2403
+ source: {
2404
+ args: {
2405
+ commitment: type(commitmentInputType()),
2406
+ dataSlice: type(dataSliceInputType()),
2407
+ encoding: type(accountEncodingInputType()),
2408
+ minContextSlot: bigint()
2409
+ },
2410
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2411
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.source }, info),
2412
+ type: accountInterface()
2413
+ }
1256
2414
  }),
1257
2415
  parsedTransactionInstructionType("SplTokenSetAuthorityInstruction", {
1258
- authority: string(),
2416
+ // Nested Account interface
2417
+ authority: {
2418
+ args: {
2419
+ commitment: type(commitmentInputType()),
2420
+ dataSlice: type(dataSliceInputType()),
2421
+ encoding: type(accountEncodingInputType()),
2422
+ minContextSlot: bigint()
2423
+ },
2424
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2425
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
2426
+ type: accountInterface()
2427
+ },
1259
2428
  authorityType: string(),
1260
- multisigAuthority: string(),
1261
- newAuthority: string()
2429
+ // Nested Account interface
2430
+ multisigAuthority: {
2431
+ args: {
2432
+ commitment: type(commitmentInputType()),
2433
+ dataSlice: type(dataSliceInputType()),
2434
+ encoding: type(accountEncodingInputType()),
2435
+ minContextSlot: bigint()
2436
+ },
2437
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2438
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),
2439
+ type: accountInterface()
2440
+ },
2441
+ // Nested Account interface
2442
+ newAuthority: {
2443
+ args: {
2444
+ commitment: type(commitmentInputType()),
2445
+ dataSlice: type(dataSliceInputType()),
2446
+ encoding: type(accountEncodingInputType()),
2447
+ minContextSlot: bigint()
2448
+ },
2449
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2450
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newAuthority }, info),
2451
+ type: accountInterface()
2452
+ }
1262
2453
  }),
1263
2454
  parsedTransactionInstructionType("SplTokenMintToInstruction", {
1264
- account: string(),
2455
+ // Nested Account interface
2456
+ account: {
2457
+ args: {
2458
+ commitment: type(commitmentInputType()),
2459
+ dataSlice: type(dataSliceInputType()),
2460
+ encoding: type(accountEncodingInputType()),
2461
+ minContextSlot: bigint()
2462
+ },
2463
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2464
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
2465
+ type: accountInterface()
2466
+ },
1265
2467
  amount: string(),
1266
- authority: string(),
1267
- mint: string(),
1268
- mintAuthority: string(),
1269
- multisigMintAuthority: string()
2468
+ // Nested Account interface
2469
+ authority: {
2470
+ args: {
2471
+ commitment: type(commitmentInputType()),
2472
+ dataSlice: type(dataSliceInputType()),
2473
+ encoding: type(accountEncodingInputType()),
2474
+ minContextSlot: bigint()
2475
+ },
2476
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2477
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
2478
+ type: accountInterface()
2479
+ },
2480
+ mint: {
2481
+ args: {
2482
+ commitment: type(commitmentInputType()),
2483
+ dataSlice: type(dataSliceInputType()),
2484
+ encoding: type(accountEncodingInputType()),
2485
+ minContextSlot: bigint()
2486
+ },
2487
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2488
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2489
+ type: accountInterface()
2490
+ },
2491
+ mintAuthority: {
2492
+ args: {
2493
+ commitment: type(commitmentInputType()),
2494
+ dataSlice: type(dataSliceInputType()),
2495
+ encoding: type(accountEncodingInputType()),
2496
+ minContextSlot: bigint()
2497
+ },
2498
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2499
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mintAuthority }, info),
2500
+ type: accountInterface()
2501
+ },
2502
+ // Nested Account interface
2503
+ multisigMintAuthority: {
2504
+ args: {
2505
+ commitment: type(commitmentInputType()),
2506
+ dataSlice: type(dataSliceInputType()),
2507
+ encoding: type(accountEncodingInputType()),
2508
+ minContextSlot: bigint()
2509
+ },
2510
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2511
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisigMintAuthority }, info),
2512
+ type: accountInterface()
2513
+ }
1270
2514
  }),
1271
2515
  parsedTransactionInstructionType("SplTokenBurnInstruction", {
1272
- account: string(),
2516
+ // Nested Account interface
2517
+ account: {
2518
+ args: {
2519
+ commitment: type(commitmentInputType()),
2520
+ dataSlice: type(dataSliceInputType()),
2521
+ encoding: type(accountEncodingInputType()),
2522
+ minContextSlot: bigint()
2523
+ },
2524
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2525
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
2526
+ type: accountInterface()
2527
+ },
1273
2528
  amount: string(),
1274
- authority: string(),
1275
- mint: string(),
1276
- multisigAuthority: string()
2529
+ // Nested Account interface
2530
+ authority: {
2531
+ args: {
2532
+ commitment: type(commitmentInputType()),
2533
+ dataSlice: type(dataSliceInputType()),
2534
+ encoding: type(accountEncodingInputType()),
2535
+ minContextSlot: bigint()
2536
+ },
2537
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2538
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
2539
+ type: accountInterface()
2540
+ },
2541
+ mint: {
2542
+ args: {
2543
+ commitment: type(commitmentInputType()),
2544
+ dataSlice: type(dataSliceInputType()),
2545
+ encoding: type(accountEncodingInputType()),
2546
+ minContextSlot: bigint()
2547
+ },
2548
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2549
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2550
+ type: accountInterface()
2551
+ },
2552
+ // Nested Account interface
2553
+ multisigAuthority: {
2554
+ args: {
2555
+ commitment: type(commitmentInputType()),
2556
+ dataSlice: type(dataSliceInputType()),
2557
+ encoding: type(accountEncodingInputType()),
2558
+ minContextSlot: bigint()
2559
+ },
2560
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2561
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),
2562
+ type: accountInterface()
2563
+ }
1277
2564
  }),
1278
2565
  parsedTransactionInstructionType("SplTokenCloseAccountInstruction", {
1279
- account: string(),
1280
- destination: string(),
1281
- multisigOwner: string(),
1282
- owner: string()
2566
+ // Nested Account interface
2567
+ account: {
2568
+ args: {
2569
+ commitment: type(commitmentInputType()),
2570
+ dataSlice: type(dataSliceInputType()),
2571
+ encoding: type(accountEncodingInputType()),
2572
+ minContextSlot: bigint()
2573
+ },
2574
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2575
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
2576
+ type: accountInterface()
2577
+ },
2578
+ destination: {
2579
+ args: {
2580
+ commitment: type(commitmentInputType()),
2581
+ dataSlice: type(dataSliceInputType()),
2582
+ encoding: type(accountEncodingInputType()),
2583
+ minContextSlot: bigint()
2584
+ },
2585
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2586
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.destination }, info),
2587
+ type: accountInterface()
2588
+ },
2589
+ // Nested Account interface
2590
+ multisigOwner: {
2591
+ args: {
2592
+ commitment: type(commitmentInputType()),
2593
+ dataSlice: type(dataSliceInputType()),
2594
+ encoding: type(accountEncodingInputType()),
2595
+ minContextSlot: bigint()
2596
+ },
2597
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2598
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisigOwner }, info),
2599
+ type: accountInterface()
2600
+ },
2601
+ // Nested Account interface
2602
+ owner: {
2603
+ args: {
2604
+ commitment: type(commitmentInputType()),
2605
+ dataSlice: type(dataSliceInputType()),
2606
+ encoding: type(accountEncodingInputType()),
2607
+ minContextSlot: bigint()
2608
+ },
2609
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2610
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
2611
+ type: accountInterface()
2612
+ }
1283
2613
  }),
1284
2614
  parsedTransactionInstructionType("SplTokenFreezeAccountInstruction", {
1285
- account: string(),
1286
- freezeAuthority: string(),
1287
- mint: string(),
1288
- multisigFreezeAuthority: string()
2615
+ // Nested Account interface
2616
+ account: {
2617
+ args: {
2618
+ commitment: type(commitmentInputType()),
2619
+ dataSlice: type(dataSliceInputType()),
2620
+ encoding: type(accountEncodingInputType()),
2621
+ minContextSlot: bigint()
2622
+ },
2623
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2624
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
2625
+ type: accountInterface()
2626
+ },
2627
+ freezeAuthority: {
2628
+ args: {
2629
+ commitment: type(commitmentInputType()),
2630
+ dataSlice: type(dataSliceInputType()),
2631
+ encoding: type(accountEncodingInputType()),
2632
+ minContextSlot: bigint()
2633
+ },
2634
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2635
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.freezeAuthority }, info),
2636
+ type: accountInterface()
2637
+ },
2638
+ mint: {
2639
+ args: {
2640
+ commitment: type(commitmentInputType()),
2641
+ dataSlice: type(dataSliceInputType()),
2642
+ encoding: type(accountEncodingInputType()),
2643
+ minContextSlot: bigint()
2644
+ },
2645
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2646
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2647
+ type: accountInterface()
2648
+ },
2649
+ // Nested Account interface
2650
+ multisigFreezeAuthority: {
2651
+ args: {
2652
+ commitment: type(commitmentInputType()),
2653
+ dataSlice: type(dataSliceInputType()),
2654
+ encoding: type(accountEncodingInputType()),
2655
+ minContextSlot: bigint()
2656
+ },
2657
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2658
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisigFreezeAuthority }, info),
2659
+ type: accountInterface()
2660
+ }
1289
2661
  }),
1290
2662
  parsedTransactionInstructionType("SplTokenThawAccountInstruction", {
1291
- account: string(),
1292
- freezeAuthority: string(),
1293
- mint: string(),
1294
- multisigFreezeAuthority: string()
2663
+ // Nested Account interface
2664
+ account: {
2665
+ args: {
2666
+ commitment: type(commitmentInputType()),
2667
+ dataSlice: type(dataSliceInputType()),
2668
+ encoding: type(accountEncodingInputType()),
2669
+ minContextSlot: bigint()
2670
+ },
2671
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2672
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
2673
+ type: accountInterface()
2674
+ },
2675
+ freezeAuthority: {
2676
+ args: {
2677
+ commitment: type(commitmentInputType()),
2678
+ dataSlice: type(dataSliceInputType()),
2679
+ encoding: type(accountEncodingInputType()),
2680
+ minContextSlot: bigint()
2681
+ },
2682
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2683
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.freezeAuthority }, info),
2684
+ type: accountInterface()
2685
+ },
2686
+ mint: {
2687
+ args: {
2688
+ commitment: type(commitmentInputType()),
2689
+ dataSlice: type(dataSliceInputType()),
2690
+ encoding: type(accountEncodingInputType()),
2691
+ minContextSlot: bigint()
2692
+ },
2693
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2694
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2695
+ type: accountInterface()
2696
+ },
2697
+ // Nested Account interface
2698
+ multisigFreezeAuthority: {
2699
+ args: {
2700
+ commitment: type(commitmentInputType()),
2701
+ dataSlice: type(dataSliceInputType()),
2702
+ encoding: type(accountEncodingInputType()),
2703
+ minContextSlot: bigint()
2704
+ },
2705
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2706
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisigFreezeAuthority }, info),
2707
+ type: accountInterface()
2708
+ }
1295
2709
  }),
1296
2710
  parsedTransactionInstructionType("SplTokenTransferCheckedInstruction", {
1297
- authority: string(),
1298
- destination: string(),
1299
- mint: string(),
1300
- multisigAuthority: string(),
1301
- source: string(),
2711
+ // Nested Account interface
2712
+ authority: {
2713
+ args: {
2714
+ commitment: type(commitmentInputType()),
2715
+ dataSlice: type(dataSliceInputType()),
2716
+ encoding: type(accountEncodingInputType()),
2717
+ minContextSlot: bigint()
2718
+ },
2719
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2720
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
2721
+ type: accountInterface()
2722
+ },
2723
+ destination: {
2724
+ args: {
2725
+ commitment: type(commitmentInputType()),
2726
+ dataSlice: type(dataSliceInputType()),
2727
+ encoding: type(accountEncodingInputType()),
2728
+ minContextSlot: bigint()
2729
+ },
2730
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2731
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.destination }, info),
2732
+ type: accountInterface()
2733
+ },
2734
+ mint: {
2735
+ args: {
2736
+ commitment: type(commitmentInputType()),
2737
+ dataSlice: type(dataSliceInputType()),
2738
+ encoding: type(accountEncodingInputType()),
2739
+ minContextSlot: bigint()
2740
+ },
2741
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2742
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2743
+ type: accountInterface()
2744
+ },
2745
+ // Nested Account interface
2746
+ multisigAuthority: {
2747
+ args: {
2748
+ commitment: type(commitmentInputType()),
2749
+ dataSlice: type(dataSliceInputType()),
2750
+ encoding: type(accountEncodingInputType()),
2751
+ minContextSlot: bigint()
2752
+ },
2753
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2754
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),
2755
+ type: accountInterface()
2756
+ },
2757
+ source: {
2758
+ args: {
2759
+ commitment: type(commitmentInputType()),
2760
+ dataSlice: type(dataSliceInputType()),
2761
+ encoding: type(accountEncodingInputType()),
2762
+ minContextSlot: bigint()
2763
+ },
2764
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2765
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.source }, info),
2766
+ type: accountInterface()
2767
+ },
1302
2768
  tokenAmount: string()
1303
2769
  }),
1304
2770
  parsedTransactionInstructionType("SplTokenApproveCheckedInstruction", {
1305
- delegate: string(),
1306
- mint: string(),
1307
- multisigOwner: string(),
1308
- owner: string(),
1309
- source: string(),
2771
+ // Nested Account interface
2772
+ delegate: {
2773
+ args: {
2774
+ commitment: type(commitmentInputType()),
2775
+ dataSlice: type(dataSliceInputType()),
2776
+ encoding: type(accountEncodingInputType()),
2777
+ minContextSlot: bigint()
2778
+ },
2779
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2780
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.delegate }, info),
2781
+ type: accountInterface()
2782
+ },
2783
+ mint: {
2784
+ args: {
2785
+ commitment: type(commitmentInputType()),
2786
+ dataSlice: type(dataSliceInputType()),
2787
+ encoding: type(accountEncodingInputType()),
2788
+ minContextSlot: bigint()
2789
+ },
2790
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2791
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2792
+ type: accountInterface()
2793
+ },
2794
+ // Nested Account interface
2795
+ multisigOwner: {
2796
+ args: {
2797
+ commitment: type(commitmentInputType()),
2798
+ dataSlice: type(dataSliceInputType()),
2799
+ encoding: type(accountEncodingInputType()),
2800
+ minContextSlot: bigint()
2801
+ },
2802
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2803
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisigOwner }, info),
2804
+ type: accountInterface()
2805
+ },
2806
+ // Nested Account interface
2807
+ owner: {
2808
+ args: {
2809
+ commitment: type(commitmentInputType()),
2810
+ dataSlice: type(dataSliceInputType()),
2811
+ encoding: type(accountEncodingInputType()),
2812
+ minContextSlot: bigint()
2813
+ },
2814
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2815
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
2816
+ type: accountInterface()
2817
+ },
2818
+ source: {
2819
+ args: {
2820
+ commitment: type(commitmentInputType()),
2821
+ dataSlice: type(dataSliceInputType()),
2822
+ encoding: type(accountEncodingInputType()),
2823
+ minContextSlot: bigint()
2824
+ },
2825
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2826
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.source }, info),
2827
+ type: accountInterface()
2828
+ },
1310
2829
  tokenAmount: string()
1311
2830
  }),
1312
2831
  parsedTransactionInstructionType("SplTokenMintToCheckedInstruction", {
1313
- account: string(),
1314
- authority: string(),
1315
- mint: string(),
1316
- mintAuthority: string(),
1317
- multisigMintAuthority: string(),
2832
+ // Nested Account interface
2833
+ account: {
2834
+ args: {
2835
+ commitment: type(commitmentInputType()),
2836
+ dataSlice: type(dataSliceInputType()),
2837
+ encoding: type(accountEncodingInputType()),
2838
+ minContextSlot: bigint()
2839
+ },
2840
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2841
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
2842
+ type: accountInterface()
2843
+ },
2844
+ // Nested Account interface
2845
+ authority: {
2846
+ args: {
2847
+ commitment: type(commitmentInputType()),
2848
+ dataSlice: type(dataSliceInputType()),
2849
+ encoding: type(accountEncodingInputType()),
2850
+ minContextSlot: bigint()
2851
+ },
2852
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2853
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
2854
+ type: accountInterface()
2855
+ },
2856
+ mint: {
2857
+ args: {
2858
+ commitment: type(commitmentInputType()),
2859
+ dataSlice: type(dataSliceInputType()),
2860
+ encoding: type(accountEncodingInputType()),
2861
+ minContextSlot: bigint()
2862
+ },
2863
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2864
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2865
+ type: accountInterface()
2866
+ },
2867
+ mintAuthority: {
2868
+ args: {
2869
+ commitment: type(commitmentInputType()),
2870
+ dataSlice: type(dataSliceInputType()),
2871
+ encoding: type(accountEncodingInputType()),
2872
+ minContextSlot: bigint()
2873
+ },
2874
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2875
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mintAuthority }, info),
2876
+ type: accountInterface()
2877
+ },
2878
+ // Nested Account interface
2879
+ multisigMintAuthority: {
2880
+ args: {
2881
+ commitment: type(commitmentInputType()),
2882
+ dataSlice: type(dataSliceInputType()),
2883
+ encoding: type(accountEncodingInputType()),
2884
+ minContextSlot: bigint()
2885
+ },
2886
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2887
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisigMintAuthority }, info),
2888
+ type: accountInterface()
2889
+ },
1318
2890
  tokenAmount: string()
1319
2891
  }),
1320
2892
  parsedTransactionInstructionType("SplTokenBurnCheckedInstruction", {
1321
- account: string(),
1322
- authority: string(),
1323
- mint: string(),
1324
- multisigAuthority: string(),
2893
+ // Nested Account interface
2894
+ account: {
2895
+ args: {
2896
+ commitment: type(commitmentInputType()),
2897
+ dataSlice: type(dataSliceInputType()),
2898
+ encoding: type(accountEncodingInputType()),
2899
+ minContextSlot: bigint()
2900
+ },
2901
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2902
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
2903
+ type: accountInterface()
2904
+ },
2905
+ // Nested Account interface
2906
+ authority: {
2907
+ args: {
2908
+ commitment: type(commitmentInputType()),
2909
+ dataSlice: type(dataSliceInputType()),
2910
+ encoding: type(accountEncodingInputType()),
2911
+ minContextSlot: bigint()
2912
+ },
2913
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2914
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
2915
+ type: accountInterface()
2916
+ },
2917
+ mint: {
2918
+ args: {
2919
+ commitment: type(commitmentInputType()),
2920
+ dataSlice: type(dataSliceInputType()),
2921
+ encoding: type(accountEncodingInputType()),
2922
+ minContextSlot: bigint()
2923
+ },
2924
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2925
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2926
+ type: accountInterface()
2927
+ },
2928
+ // Nested Account interface
2929
+ multisigAuthority: {
2930
+ args: {
2931
+ commitment: type(commitmentInputType()),
2932
+ dataSlice: type(dataSliceInputType()),
2933
+ encoding: type(accountEncodingInputType()),
2934
+ minContextSlot: bigint()
2935
+ },
2936
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2937
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),
2938
+ type: accountInterface()
2939
+ },
1325
2940
  tokenAmount: string()
1326
2941
  }),
1327
2942
  parsedTransactionInstructionType("SplTokenSyncNativeInstruction", {
1328
- account: string()
2943
+ // Nested Account interface
2944
+ account: {
2945
+ args: {
2946
+ commitment: type(commitmentInputType()),
2947
+ dataSlice: type(dataSliceInputType()),
2948
+ encoding: type(accountEncodingInputType()),
2949
+ minContextSlot: bigint()
2950
+ },
2951
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2952
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
2953
+ type: accountInterface()
2954
+ }
1329
2955
  }),
1330
2956
  parsedTransactionInstructionType("SplTokenGetAccountDataSizeInstruction", {
1331
2957
  extensionTypes: list(string()),
1332
- mint: string()
2958
+ mint: {
2959
+ args: {
2960
+ commitment: type(commitmentInputType()),
2961
+ dataSlice: type(dataSliceInputType()),
2962
+ encoding: type(accountEncodingInputType()),
2963
+ minContextSlot: bigint()
2964
+ },
2965
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2966
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2967
+ type: accountInterface()
2968
+ }
1333
2969
  }),
1334
2970
  parsedTransactionInstructionType("SplTokenInitializeImmutableOwnerInstruction", {
1335
- account: string()
2971
+ // Nested Account interface
2972
+ account: {
2973
+ args: {
2974
+ commitment: type(commitmentInputType()),
2975
+ dataSlice: type(dataSliceInputType()),
2976
+ encoding: type(accountEncodingInputType()),
2977
+ minContextSlot: bigint()
2978
+ },
2979
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2980
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
2981
+ type: accountInterface()
2982
+ }
1336
2983
  }),
1337
2984
  parsedTransactionInstructionType("SplTokenAmountToUiAmountInstruction", {
1338
2985
  amount: string(),
1339
- mint: string()
2986
+ mint: {
2987
+ args: {
2988
+ commitment: type(commitmentInputType()),
2989
+ dataSlice: type(dataSliceInputType()),
2990
+ encoding: type(accountEncodingInputType()),
2991
+ minContextSlot: bigint()
2992
+ },
2993
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2994
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
2995
+ type: accountInterface()
2996
+ }
1340
2997
  }),
1341
2998
  parsedTransactionInstructionType("SplTokenUiAmountToAmountInstruction", {
1342
- mint: string(),
2999
+ mint: {
3000
+ args: {
3001
+ commitment: type(commitmentInputType()),
3002
+ dataSlice: type(dataSliceInputType()),
3003
+ encoding: type(accountEncodingInputType()),
3004
+ minContextSlot: bigint()
3005
+ },
3006
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3007
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
3008
+ type: accountInterface()
3009
+ },
1343
3010
  uiAmount: string()
1344
3011
  }),
1345
3012
  parsedTransactionInstructionType("SplTokenInitializeMintCloseAuthorityInstruction", {
1346
- mint: string(),
1347
- newAuthority: string()
3013
+ mint: {
3014
+ args: {
3015
+ commitment: type(commitmentInputType()),
3016
+ dataSlice: type(dataSliceInputType()),
3017
+ encoding: type(accountEncodingInputType()),
3018
+ minContextSlot: bigint()
3019
+ },
3020
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3021
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.mint }, info),
3022
+ type: accountInterface()
3023
+ },
3024
+ // Nested Account interface
3025
+ newAuthority: {
3026
+ args: {
3027
+ commitment: type(commitmentInputType()),
3028
+ dataSlice: type(dataSliceInputType()),
3029
+ encoding: type(accountEncodingInputType()),
3030
+ minContextSlot: bigint()
3031
+ },
3032
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3033
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newAuthority }, info),
3034
+ type: accountInterface()
3035
+ }
1348
3036
  })
1349
3037
  // TODO: Extensions!
1350
3038
  // - TransferFeeExtension
@@ -1369,7 +3057,18 @@ var lockup = () => {
1369
3057
  if (!memoisedLockup)
1370
3058
  memoisedLockup = new GraphQLObjectType({
1371
3059
  fields: {
1372
- custodian: string(),
3060
+ // Nested Account interface
3061
+ custodian: {
3062
+ args: {
3063
+ commitment: type(commitmentInputType()),
3064
+ dataSlice: type(dataSliceInputType()),
3065
+ encoding: type(accountEncodingInputType()),
3066
+ minContextSlot: bigint()
3067
+ },
3068
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3069
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.custodian }, info),
3070
+ type: accountInterface()
3071
+ },
1373
3072
  epoch: bigint(),
1374
3073
  unixTimestamp: bigint()
1375
3074
  },
@@ -1383,113 +3082,649 @@ var parsedInstructionsStake = () => {
1383
3082
  memoisedParsedInstructionsStake = [
1384
3083
  parsedTransactionInstructionType("StakeInitializeInstruction", {
1385
3084
  authorized: object("StakeInitializeInstructionAuthorized", {
1386
- staker: string(),
1387
- withdrawer: string()
3085
+ // Nested Account interface
3086
+ staker: {
3087
+ args: {
3088
+ commitment: type(commitmentInputType()),
3089
+ dataSlice: type(dataSliceInputType()),
3090
+ encoding: type(accountEncodingInputType()),
3091
+ minContextSlot: bigint()
3092
+ },
3093
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3094
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.staker }, info),
3095
+ type: accountInterface()
3096
+ },
3097
+ // Nested Account interface
3098
+ withdrawer: {
3099
+ args: {
3100
+ commitment: type(commitmentInputType()),
3101
+ dataSlice: type(dataSliceInputType()),
3102
+ encoding: type(accountEncodingInputType()),
3103
+ minContextSlot: bigint()
3104
+ },
3105
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3106
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.withdrawer }, info),
3107
+ type: accountInterface()
3108
+ }
1388
3109
  }),
1389
3110
  lockup: object("StakeInitializeInstructionLockup", {
1390
- custodian: string(),
3111
+ // Nested Account interface
3112
+ custodian: {
3113
+ args: {
3114
+ commitment: type(commitmentInputType()),
3115
+ dataSlice: type(dataSliceInputType()),
3116
+ encoding: type(accountEncodingInputType()),
3117
+ minContextSlot: bigint()
3118
+ },
3119
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3120
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.custodian }, info),
3121
+ type: accountInterface()
3122
+ },
1391
3123
  epoch: bigint(),
1392
3124
  unixTimestamp: bigint()
1393
3125
  }),
1394
3126
  rentSysvar: string(),
1395
- stakeAccount: string()
3127
+ // Nested Account interface
3128
+ stakeAccount: {
3129
+ args: {
3130
+ commitment: type(commitmentInputType()),
3131
+ dataSlice: type(dataSliceInputType()),
3132
+ encoding: type(accountEncodingInputType()),
3133
+ minContextSlot: bigint()
3134
+ },
3135
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3136
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAccount }, info),
3137
+ type: accountInterface()
3138
+ }
1396
3139
  }),
1397
3140
  parsedTransactionInstructionType("StakeAuthorizeInstruction", {
1398
- authority: string(),
3141
+ // Nested Account interface
3142
+ authority: {
3143
+ args: {
3144
+ commitment: type(commitmentInputType()),
3145
+ dataSlice: type(dataSliceInputType()),
3146
+ encoding: type(accountEncodingInputType()),
3147
+ minContextSlot: bigint()
3148
+ },
3149
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3150
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
3151
+ type: accountInterface()
3152
+ },
1399
3153
  authorityType: string(),
1400
3154
  clockSysvar: string(),
1401
- custodian: string(),
1402
- newAuthority: string(),
1403
- stakeAccount: string()
3155
+ // Nested Account interface
3156
+ custodian: {
3157
+ args: {
3158
+ commitment: type(commitmentInputType()),
3159
+ dataSlice: type(dataSliceInputType()),
3160
+ encoding: type(accountEncodingInputType()),
3161
+ minContextSlot: bigint()
3162
+ },
3163
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3164
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.custodian }, info),
3165
+ type: accountInterface()
3166
+ },
3167
+ // Nested Account interface
3168
+ newAuthority: {
3169
+ args: {
3170
+ commitment: type(commitmentInputType()),
3171
+ dataSlice: type(dataSliceInputType()),
3172
+ encoding: type(accountEncodingInputType()),
3173
+ minContextSlot: bigint()
3174
+ },
3175
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3176
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newAuthority }, info),
3177
+ type: accountInterface()
3178
+ },
3179
+ // Nested Account interface
3180
+ stakeAccount: {
3181
+ args: {
3182
+ commitment: type(commitmentInputType()),
3183
+ dataSlice: type(dataSliceInputType()),
3184
+ encoding: type(accountEncodingInputType()),
3185
+ minContextSlot: bigint()
3186
+ },
3187
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3188
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAccount }, info),
3189
+ type: accountInterface()
3190
+ }
1404
3191
  }),
1405
3192
  parsedTransactionInstructionType("StakeDelegateStakeInstruction", {
1406
3193
  clockSysvar: string(),
1407
- stakeAccount: string(),
1408
- stakeAuthority: string(),
1409
- stakeConfigAccount: string(),
3194
+ // Nested Account interface
3195
+ stakeAccount: {
3196
+ args: {
3197
+ commitment: type(commitmentInputType()),
3198
+ dataSlice: type(dataSliceInputType()),
3199
+ encoding: type(accountEncodingInputType()),
3200
+ minContextSlot: bigint()
3201
+ },
3202
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3203
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAccount }, info),
3204
+ type: accountInterface()
3205
+ },
3206
+ // Nested Account interface
3207
+ stakeAuthority: {
3208
+ args: {
3209
+ commitment: type(commitmentInputType()),
3210
+ dataSlice: type(dataSliceInputType()),
3211
+ encoding: type(accountEncodingInputType()),
3212
+ minContextSlot: bigint()
3213
+ },
3214
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3215
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),
3216
+ type: accountInterface()
3217
+ },
3218
+ // Nested Account interface
3219
+ stakeConfigAccount: {
3220
+ args: {
3221
+ commitment: type(commitmentInputType()),
3222
+ dataSlice: type(dataSliceInputType()),
3223
+ encoding: type(accountEncodingInputType()),
3224
+ minContextSlot: bigint()
3225
+ },
3226
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3227
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeConfigAccount }, info),
3228
+ type: accountInterface()
3229
+ },
1410
3230
  stakeHistorySysvar: string(),
1411
- voteAccount: string()
3231
+ // Nested Account interface
3232
+ voteAccount: {
3233
+ args: {
3234
+ commitment: type(commitmentInputType()),
3235
+ dataSlice: type(dataSliceInputType()),
3236
+ encoding: type(accountEncodingInputType()),
3237
+ minContextSlot: bigint()
3238
+ },
3239
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3240
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
3241
+ type: accountInterface()
3242
+ }
1412
3243
  }),
1413
3244
  parsedTransactionInstructionType("StakeSplitInstruction", {
1414
3245
  lamports: bigint(),
1415
3246
  newSplitAccount: string(),
1416
- stakeAccount: string(),
1417
- stakeAuthority: string()
3247
+ // Nested Account interface
3248
+ stakeAccount: {
3249
+ args: {
3250
+ commitment: type(commitmentInputType()),
3251
+ dataSlice: type(dataSliceInputType()),
3252
+ encoding: type(accountEncodingInputType()),
3253
+ minContextSlot: bigint()
3254
+ },
3255
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3256
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAccount }, info),
3257
+ type: accountInterface()
3258
+ },
3259
+ // Nested Account interface
3260
+ stakeAuthority: {
3261
+ args: {
3262
+ commitment: type(commitmentInputType()),
3263
+ dataSlice: type(dataSliceInputType()),
3264
+ encoding: type(accountEncodingInputType()),
3265
+ minContextSlot: bigint()
3266
+ },
3267
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3268
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),
3269
+ type: accountInterface()
3270
+ }
1418
3271
  }),
1419
3272
  parsedTransactionInstructionType("StakeWithdrawInstruction", {
1420
3273
  clockSysvar: string(),
1421
- destination: string(),
3274
+ destination: {
3275
+ args: {
3276
+ commitment: type(commitmentInputType()),
3277
+ dataSlice: type(dataSliceInputType()),
3278
+ encoding: type(accountEncodingInputType()),
3279
+ minContextSlot: bigint()
3280
+ },
3281
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3282
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.destination }, info),
3283
+ type: accountInterface()
3284
+ },
1422
3285
  lamports: bigint(),
1423
- stakeAccount: string(),
1424
- withdrawAuthority: string()
3286
+ // Nested Account interface
3287
+ stakeAccount: {
3288
+ args: {
3289
+ commitment: type(commitmentInputType()),
3290
+ dataSlice: type(dataSliceInputType()),
3291
+ encoding: type(accountEncodingInputType()),
3292
+ minContextSlot: bigint()
3293
+ },
3294
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3295
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAccount }, info),
3296
+ type: accountInterface()
3297
+ },
3298
+ // Nested Account interface
3299
+ withdrawAuthority: {
3300
+ args: {
3301
+ commitment: type(commitmentInputType()),
3302
+ dataSlice: type(dataSliceInputType()),
3303
+ encoding: type(accountEncodingInputType()),
3304
+ minContextSlot: bigint()
3305
+ },
3306
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3307
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.withdrawAuthority }, info),
3308
+ type: accountInterface()
3309
+ }
1425
3310
  }),
1426
3311
  parsedTransactionInstructionType("StakeDeactivateInstruction", {
1427
3312
  clockSysvar: string(),
1428
- stakeAccount: string(),
1429
- stakeAuthority: string()
3313
+ // Nested Account interface
3314
+ stakeAccount: {
3315
+ args: {
3316
+ commitment: type(commitmentInputType()),
3317
+ dataSlice: type(dataSliceInputType()),
3318
+ encoding: type(accountEncodingInputType()),
3319
+ minContextSlot: bigint()
3320
+ },
3321
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3322
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAccount }, info),
3323
+ type: accountInterface()
3324
+ },
3325
+ // Nested Account interface
3326
+ stakeAuthority: {
3327
+ args: {
3328
+ commitment: type(commitmentInputType()),
3329
+ dataSlice: type(dataSliceInputType()),
3330
+ encoding: type(accountEncodingInputType()),
3331
+ minContextSlot: bigint()
3332
+ },
3333
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3334
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),
3335
+ type: accountInterface()
3336
+ }
1430
3337
  }),
1431
3338
  parsedTransactionInstructionType("StakeSetLockupInstruction", {
1432
- custodian: string(),
3339
+ // Nested Account interface
3340
+ custodian: {
3341
+ args: {
3342
+ commitment: type(commitmentInputType()),
3343
+ dataSlice: type(dataSliceInputType()),
3344
+ encoding: type(accountEncodingInputType()),
3345
+ minContextSlot: bigint()
3346
+ },
3347
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3348
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.custodian }, info),
3349
+ type: accountInterface()
3350
+ },
1433
3351
  lockup: type(lockup()),
1434
- stakeAccount: string()
3352
+ // Nested Account interface
3353
+ stakeAccount: {
3354
+ args: {
3355
+ commitment: type(commitmentInputType()),
3356
+ dataSlice: type(dataSliceInputType()),
3357
+ encoding: type(accountEncodingInputType()),
3358
+ minContextSlot: bigint()
3359
+ },
3360
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3361
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAccount }, info),
3362
+ type: accountInterface()
3363
+ }
1435
3364
  }),
1436
3365
  parsedTransactionInstructionType("StakeMergeInstruction", {
1437
3366
  clockSysvar: string(),
1438
- destination: string(),
1439
- source: string(),
1440
- stakeAuthority: string(),
3367
+ destination: {
3368
+ args: {
3369
+ commitment: type(commitmentInputType()),
3370
+ dataSlice: type(dataSliceInputType()),
3371
+ encoding: type(accountEncodingInputType()),
3372
+ minContextSlot: bigint()
3373
+ },
3374
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3375
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.destination }, info),
3376
+ type: accountInterface()
3377
+ },
3378
+ source: {
3379
+ args: {
3380
+ commitment: type(commitmentInputType()),
3381
+ dataSlice: type(dataSliceInputType()),
3382
+ encoding: type(accountEncodingInputType()),
3383
+ minContextSlot: bigint()
3384
+ },
3385
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3386
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.source }, info),
3387
+ type: accountInterface()
3388
+ },
3389
+ // Nested Account interface
3390
+ stakeAuthority: {
3391
+ args: {
3392
+ commitment: type(commitmentInputType()),
3393
+ dataSlice: type(dataSliceInputType()),
3394
+ encoding: type(accountEncodingInputType()),
3395
+ minContextSlot: bigint()
3396
+ },
3397
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3398
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),
3399
+ type: accountInterface()
3400
+ },
1441
3401
  stakeHistorySysvar: string()
1442
3402
  }),
1443
3403
  parsedTransactionInstructionType("StakeAuthorizeWithSeedInstruction", {
1444
- authorityBase: string(),
1445
- authorityOwner: string(),
3404
+ // Nested Account interface
3405
+ authorityBase: {
3406
+ args: {
3407
+ commitment: type(commitmentInputType()),
3408
+ dataSlice: type(dataSliceInputType()),
3409
+ encoding: type(accountEncodingInputType()),
3410
+ minContextSlot: bigint()
3411
+ },
3412
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3413
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authorityBase }, info),
3414
+ type: accountInterface()
3415
+ },
3416
+ // Nested Account interface
3417
+ authorityOwner: {
3418
+ args: {
3419
+ commitment: type(commitmentInputType()),
3420
+ dataSlice: type(dataSliceInputType()),
3421
+ encoding: type(accountEncodingInputType()),
3422
+ minContextSlot: bigint()
3423
+ },
3424
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3425
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authorityOwner }, info),
3426
+ type: accountInterface()
3427
+ },
1446
3428
  authoritySeed: string(),
1447
3429
  authorityType: string(),
1448
3430
  clockSysvar: string(),
1449
- custodian: string(),
1450
- newAuthorized: string(),
1451
- stakeAccount: string()
3431
+ // Nested Account interface
3432
+ custodian: {
3433
+ args: {
3434
+ commitment: type(commitmentInputType()),
3435
+ dataSlice: type(dataSliceInputType()),
3436
+ encoding: type(accountEncodingInputType()),
3437
+ minContextSlot: bigint()
3438
+ },
3439
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3440
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.custodian }, info),
3441
+ type: accountInterface()
3442
+ },
3443
+ // Nested Account interface
3444
+ newAuthorized: {
3445
+ args: {
3446
+ commitment: type(commitmentInputType()),
3447
+ dataSlice: type(dataSliceInputType()),
3448
+ encoding: type(accountEncodingInputType()),
3449
+ minContextSlot: bigint()
3450
+ },
3451
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3452
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newAuthorized }, info),
3453
+ type: accountInterface()
3454
+ },
3455
+ // Nested Account interface
3456
+ stakeAccount: {
3457
+ args: {
3458
+ commitment: type(commitmentInputType()),
3459
+ dataSlice: type(dataSliceInputType()),
3460
+ encoding: type(accountEncodingInputType()),
3461
+ minContextSlot: bigint()
3462
+ },
3463
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3464
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAccount }, info),
3465
+ type: accountInterface()
3466
+ }
1452
3467
  }),
1453
3468
  parsedTransactionInstructionType("StakeInitializeCheckedInstruction", {
1454
3469
  rentSysvar: string(),
1455
- stakeAccount: string(),
1456
- staker: string(),
1457
- withdrawer: string()
3470
+ // Nested Account interface
3471
+ stakeAccount: {
3472
+ args: {
3473
+ commitment: type(commitmentInputType()),
3474
+ dataSlice: type(dataSliceInputType()),
3475
+ encoding: type(accountEncodingInputType()),
3476
+ minContextSlot: bigint()
3477
+ },
3478
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3479
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAccount }, info),
3480
+ type: accountInterface()
3481
+ },
3482
+ // Nested Account interface
3483
+ staker: {
3484
+ args: {
3485
+ commitment: type(commitmentInputType()),
3486
+ dataSlice: type(dataSliceInputType()),
3487
+ encoding: type(accountEncodingInputType()),
3488
+ minContextSlot: bigint()
3489
+ },
3490
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3491
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.staker }, info),
3492
+ type: accountInterface()
3493
+ },
3494
+ // Nested Account interface
3495
+ withdrawer: {
3496
+ args: {
3497
+ commitment: type(commitmentInputType()),
3498
+ dataSlice: type(dataSliceInputType()),
3499
+ encoding: type(accountEncodingInputType()),
3500
+ minContextSlot: bigint()
3501
+ },
3502
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3503
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.withdrawer }, info),
3504
+ type: accountInterface()
3505
+ }
1458
3506
  }),
1459
3507
  parsedTransactionInstructionType("StakeAuthorizeCheckedInstruction", {
1460
- authority: string(),
3508
+ // Nested Account interface
3509
+ authority: {
3510
+ args: {
3511
+ commitment: type(commitmentInputType()),
3512
+ dataSlice: type(dataSliceInputType()),
3513
+ encoding: type(accountEncodingInputType()),
3514
+ minContextSlot: bigint()
3515
+ },
3516
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3517
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
3518
+ type: accountInterface()
3519
+ },
1461
3520
  authorityType: string(),
1462
3521
  clockSysvar: string(),
1463
- custodian: string(),
1464
- newAuthority: string(),
1465
- stakeAccount: string()
3522
+ // Nested Account interface
3523
+ custodian: {
3524
+ args: {
3525
+ commitment: type(commitmentInputType()),
3526
+ dataSlice: type(dataSliceInputType()),
3527
+ encoding: type(accountEncodingInputType()),
3528
+ minContextSlot: bigint()
3529
+ },
3530
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3531
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.custodian }, info),
3532
+ type: accountInterface()
3533
+ },
3534
+ // Nested Account interface
3535
+ newAuthority: {
3536
+ args: {
3537
+ commitment: type(commitmentInputType()),
3538
+ dataSlice: type(dataSliceInputType()),
3539
+ encoding: type(accountEncodingInputType()),
3540
+ minContextSlot: bigint()
3541
+ },
3542
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3543
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newAuthority }, info),
3544
+ type: accountInterface()
3545
+ },
3546
+ // Nested Account interface
3547
+ stakeAccount: {
3548
+ args: {
3549
+ commitment: type(commitmentInputType()),
3550
+ dataSlice: type(dataSliceInputType()),
3551
+ encoding: type(accountEncodingInputType()),
3552
+ minContextSlot: bigint()
3553
+ },
3554
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3555
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAccount }, info),
3556
+ type: accountInterface()
3557
+ }
1466
3558
  }),
1467
3559
  parsedTransactionInstructionType("StakeAuthorizeCheckedWithSeedInstruction", {
1468
- authorityBase: string(),
1469
- authorityOwner: string(),
3560
+ // Nested Account interface
3561
+ authorityBase: {
3562
+ args: {
3563
+ commitment: type(commitmentInputType()),
3564
+ dataSlice: type(dataSliceInputType()),
3565
+ encoding: type(accountEncodingInputType()),
3566
+ minContextSlot: bigint()
3567
+ },
3568
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3569
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authorityBase }, info),
3570
+ type: accountInterface()
3571
+ },
3572
+ // Nested Account interface
3573
+ authorityOwner: {
3574
+ args: {
3575
+ commitment: type(commitmentInputType()),
3576
+ dataSlice: type(dataSliceInputType()),
3577
+ encoding: type(accountEncodingInputType()),
3578
+ minContextSlot: bigint()
3579
+ },
3580
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3581
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authorityOwner }, info),
3582
+ type: accountInterface()
3583
+ },
1470
3584
  authoritySeed: string(),
1471
3585
  authorityType: string(),
1472
3586
  clockSysvar: string(),
1473
- custodian: string(),
1474
- newAuthorized: string(),
1475
- stakeAccount: string()
3587
+ // Nested Account interface
3588
+ custodian: {
3589
+ args: {
3590
+ commitment: type(commitmentInputType()),
3591
+ dataSlice: type(dataSliceInputType()),
3592
+ encoding: type(accountEncodingInputType()),
3593
+ minContextSlot: bigint()
3594
+ },
3595
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3596
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.custodian }, info),
3597
+ type: accountInterface()
3598
+ },
3599
+ // Nested Account interface
3600
+ newAuthorized: {
3601
+ args: {
3602
+ commitment: type(commitmentInputType()),
3603
+ dataSlice: type(dataSliceInputType()),
3604
+ encoding: type(accountEncodingInputType()),
3605
+ minContextSlot: bigint()
3606
+ },
3607
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3608
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newAuthorized }, info),
3609
+ type: accountInterface()
3610
+ },
3611
+ // Nested Account interface
3612
+ stakeAccount: {
3613
+ args: {
3614
+ commitment: type(commitmentInputType()),
3615
+ dataSlice: type(dataSliceInputType()),
3616
+ encoding: type(accountEncodingInputType()),
3617
+ minContextSlot: bigint()
3618
+ },
3619
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3620
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAccount }, info),
3621
+ type: accountInterface()
3622
+ }
1476
3623
  }),
1477
3624
  parsedTransactionInstructionType("StakeSetLockupCheckedInstruction", {
1478
- custodian: string(),
3625
+ // Nested Account interface
3626
+ custodian: {
3627
+ args: {
3628
+ commitment: type(commitmentInputType()),
3629
+ dataSlice: type(dataSliceInputType()),
3630
+ encoding: type(accountEncodingInputType()),
3631
+ minContextSlot: bigint()
3632
+ },
3633
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3634
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.custodian }, info),
3635
+ type: accountInterface()
3636
+ },
1479
3637
  lockup: type(lockup()),
1480
- stakeAccount: string()
3638
+ // Nested Account interface
3639
+ stakeAccount: {
3640
+ args: {
3641
+ commitment: type(commitmentInputType()),
3642
+ dataSlice: type(dataSliceInputType()),
3643
+ encoding: type(accountEncodingInputType()),
3644
+ minContextSlot: bigint()
3645
+ },
3646
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3647
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAccount }, info),
3648
+ type: accountInterface()
3649
+ }
1481
3650
  }),
1482
3651
  parsedTransactionInstructionType("StakeDeactivateDelinquentInstruction", {
1483
3652
  referenceVoteAccount: string(),
1484
- stakeAccount: string(),
1485
- voteAccount: string()
3653
+ // Nested Account interface
3654
+ stakeAccount: {
3655
+ args: {
3656
+ commitment: type(commitmentInputType()),
3657
+ dataSlice: type(dataSliceInputType()),
3658
+ encoding: type(accountEncodingInputType()),
3659
+ minContextSlot: bigint()
3660
+ },
3661
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3662
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAccount }, info),
3663
+ type: accountInterface()
3664
+ },
3665
+ // Nested Account interface
3666
+ voteAccount: {
3667
+ args: {
3668
+ commitment: type(commitmentInputType()),
3669
+ dataSlice: type(dataSliceInputType()),
3670
+ encoding: type(accountEncodingInputType()),
3671
+ minContextSlot: bigint()
3672
+ },
3673
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3674
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
3675
+ type: accountInterface()
3676
+ }
1486
3677
  }),
1487
3678
  parsedTransactionInstructionType("StakeRedelegateInstruction", {
1488
3679
  newStakeAccount: string(),
1489
- stakeAccount: string(),
1490
- stakeAuthority: string(),
1491
- stakeConfigAccount: string(),
1492
- voteAccount: string()
3680
+ // Nested Account interface
3681
+ stakeAccount: {
3682
+ args: {
3683
+ commitment: type(commitmentInputType()),
3684
+ dataSlice: type(dataSliceInputType()),
3685
+ encoding: type(accountEncodingInputType()),
3686
+ minContextSlot: bigint()
3687
+ },
3688
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3689
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAccount }, info),
3690
+ type: accountInterface()
3691
+ },
3692
+ // Nested Account interface
3693
+ stakeAuthority: {
3694
+ args: {
3695
+ commitment: type(commitmentInputType()),
3696
+ dataSlice: type(dataSliceInputType()),
3697
+ encoding: type(accountEncodingInputType()),
3698
+ minContextSlot: bigint()
3699
+ },
3700
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3701
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),
3702
+ type: accountInterface()
3703
+ },
3704
+ // Nested Account interface
3705
+ stakeConfigAccount: {
3706
+ args: {
3707
+ commitment: type(commitmentInputType()),
3708
+ dataSlice: type(dataSliceInputType()),
3709
+ encoding: type(accountEncodingInputType()),
3710
+ minContextSlot: bigint()
3711
+ },
3712
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3713
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.stakeConfigAccount }, info),
3714
+ type: accountInterface()
3715
+ },
3716
+ // Nested Account interface
3717
+ voteAccount: {
3718
+ args: {
3719
+ commitment: type(commitmentInputType()),
3720
+ dataSlice: type(dataSliceInputType()),
3721
+ encoding: type(accountEncodingInputType()),
3722
+ minContextSlot: bigint()
3723
+ },
3724
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3725
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
3726
+ type: accountInterface()
3727
+ }
1493
3728
  })
1494
3729
  ];
1495
3730
  return memoisedParsedInstructionsStake;
@@ -1500,76 +3735,357 @@ var parsedInstructionsSystem = () => {
1500
3735
  memoisedParsedInstructionsSystem = [
1501
3736
  parsedTransactionInstructionType("CreateAccountInstruction", {
1502
3737
  lamports: bigint(),
1503
- newAccount: string(),
1504
- owner: string(),
1505
- source: string(),
3738
+ // Nested Account interface
3739
+ newAccount: {
3740
+ args: {
3741
+ commitment: type(commitmentInputType()),
3742
+ dataSlice: type(dataSliceInputType()),
3743
+ encoding: type(accountEncodingInputType()),
3744
+ minContextSlot: bigint()
3745
+ },
3746
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3747
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newAccount }, info),
3748
+ type: accountInterface()
3749
+ },
3750
+ // Nested Account interface
3751
+ owner: {
3752
+ args: {
3753
+ commitment: type(commitmentInputType()),
3754
+ dataSlice: type(dataSliceInputType()),
3755
+ encoding: type(accountEncodingInputType()),
3756
+ minContextSlot: bigint()
3757
+ },
3758
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3759
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
3760
+ type: accountInterface()
3761
+ },
3762
+ source: {
3763
+ args: {
3764
+ commitment: type(commitmentInputType()),
3765
+ dataSlice: type(dataSliceInputType()),
3766
+ encoding: type(accountEncodingInputType()),
3767
+ minContextSlot: bigint()
3768
+ },
3769
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3770
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.source }, info),
3771
+ type: accountInterface()
3772
+ },
1506
3773
  space: bigint()
1507
3774
  }),
1508
3775
  parsedTransactionInstructionType("AssignInstruction", {
1509
- owner: string()
3776
+ // Nested Account interface
3777
+ owner: {
3778
+ args: {
3779
+ commitment: type(commitmentInputType()),
3780
+ dataSlice: type(dataSliceInputType()),
3781
+ encoding: type(accountEncodingInputType()),
3782
+ minContextSlot: bigint()
3783
+ },
3784
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3785
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
3786
+ type: accountInterface()
3787
+ }
1510
3788
  }),
1511
3789
  parsedTransactionInstructionType("TransferInstruction", {
1512
3790
  amount: string(),
1513
3791
  lamports: number(),
1514
- source: string()
3792
+ source: {
3793
+ args: {
3794
+ commitment: type(commitmentInputType()),
3795
+ dataSlice: type(dataSliceInputType()),
3796
+ encoding: type(accountEncodingInputType()),
3797
+ minContextSlot: bigint()
3798
+ },
3799
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3800
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.source }, info),
3801
+ type: accountInterface()
3802
+ }
1515
3803
  }),
1516
3804
  parsedTransactionInstructionType("CreateAccountWithSeedInstruction", {
1517
3805
  base: string(),
1518
3806
  lamports: bigint(),
1519
- owner: string(),
3807
+ // Nested Account interface
3808
+ owner: {
3809
+ args: {
3810
+ commitment: type(commitmentInputType()),
3811
+ dataSlice: type(dataSliceInputType()),
3812
+ encoding: type(accountEncodingInputType()),
3813
+ minContextSlot: bigint()
3814
+ },
3815
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3816
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
3817
+ type: accountInterface()
3818
+ },
1520
3819
  seed: string(),
1521
3820
  space: bigint()
1522
3821
  }),
1523
3822
  parsedTransactionInstructionType("AdvanceNonceAccountInstruction", {
1524
- nonceAccount: string(),
1525
- nonceAuthority: string(),
3823
+ // Nested Account interface
3824
+ nonceAccount: {
3825
+ args: {
3826
+ commitment: type(commitmentInputType()),
3827
+ dataSlice: type(dataSliceInputType()),
3828
+ encoding: type(accountEncodingInputType()),
3829
+ minContextSlot: bigint()
3830
+ },
3831
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3832
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.nonceAccount }, info),
3833
+ type: accountInterface()
3834
+ },
3835
+ // Nested Account interface
3836
+ nonceAuthority: {
3837
+ args: {
3838
+ commitment: type(commitmentInputType()),
3839
+ dataSlice: type(dataSliceInputType()),
3840
+ encoding: type(accountEncodingInputType()),
3841
+ minContextSlot: bigint()
3842
+ },
3843
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3844
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.nonceAuthority }, info),
3845
+ type: accountInterface()
3846
+ },
1526
3847
  recentBlockhashesSysvar: string()
1527
3848
  }),
1528
3849
  parsedTransactionInstructionType("WithdrawNonceAccountInstruction", {
1529
- destination: string(),
3850
+ destination: {
3851
+ args: {
3852
+ commitment: type(commitmentInputType()),
3853
+ dataSlice: type(dataSliceInputType()),
3854
+ encoding: type(accountEncodingInputType()),
3855
+ minContextSlot: bigint()
3856
+ },
3857
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3858
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.destination }, info),
3859
+ type: accountInterface()
3860
+ },
1530
3861
  lamports: bigint(),
1531
- nonceAccount: string(),
1532
- nonceAuthority: string(),
3862
+ // Nested Account interface
3863
+ nonceAccount: {
3864
+ args: {
3865
+ commitment: type(commitmentInputType()),
3866
+ dataSlice: type(dataSliceInputType()),
3867
+ encoding: type(accountEncodingInputType()),
3868
+ minContextSlot: bigint()
3869
+ },
3870
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3871
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.nonceAccount }, info),
3872
+ type: accountInterface()
3873
+ },
3874
+ // Nested Account interface
3875
+ nonceAuthority: {
3876
+ args: {
3877
+ commitment: type(commitmentInputType()),
3878
+ dataSlice: type(dataSliceInputType()),
3879
+ encoding: type(accountEncodingInputType()),
3880
+ minContextSlot: bigint()
3881
+ },
3882
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3883
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.nonceAuthority }, info),
3884
+ type: accountInterface()
3885
+ },
1533
3886
  recentBlockhashesSysvar: string(),
1534
3887
  rentSysvar: string()
1535
3888
  }),
1536
3889
  parsedTransactionInstructionType("InitializeNonceAccountInstruction", {
1537
- nonceAccount: string(),
1538
- nonceAuthority: string(),
3890
+ // Nested Account interface
3891
+ nonceAccount: {
3892
+ args: {
3893
+ commitment: type(commitmentInputType()),
3894
+ dataSlice: type(dataSliceInputType()),
3895
+ encoding: type(accountEncodingInputType()),
3896
+ minContextSlot: bigint()
3897
+ },
3898
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3899
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.nonceAccount }, info),
3900
+ type: accountInterface()
3901
+ },
3902
+ // Nested Account interface
3903
+ nonceAuthority: {
3904
+ args: {
3905
+ commitment: type(commitmentInputType()),
3906
+ dataSlice: type(dataSliceInputType()),
3907
+ encoding: type(accountEncodingInputType()),
3908
+ minContextSlot: bigint()
3909
+ },
3910
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3911
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.nonceAuthority }, info),
3912
+ type: accountInterface()
3913
+ },
1539
3914
  recentBlockhashesSysvar: string(),
1540
3915
  rentSysvar: string()
1541
3916
  }),
1542
3917
  parsedTransactionInstructionType("AuthorizeNonceAccountInstruction", {
1543
- newAuthorized: string(),
1544
- nonceAccount: string(),
1545
- nonceAuthority: string()
3918
+ // Nested Account interface
3919
+ newAuthorized: {
3920
+ args: {
3921
+ commitment: type(commitmentInputType()),
3922
+ dataSlice: type(dataSliceInputType()),
3923
+ encoding: type(accountEncodingInputType()),
3924
+ minContextSlot: bigint()
3925
+ },
3926
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3927
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newAuthorized }, info),
3928
+ type: accountInterface()
3929
+ },
3930
+ // Nested Account interface
3931
+ nonceAccount: {
3932
+ args: {
3933
+ commitment: type(commitmentInputType()),
3934
+ dataSlice: type(dataSliceInputType()),
3935
+ encoding: type(accountEncodingInputType()),
3936
+ minContextSlot: bigint()
3937
+ },
3938
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3939
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.nonceAccount }, info),
3940
+ type: accountInterface()
3941
+ },
3942
+ // Nested Account interface
3943
+ nonceAuthority: {
3944
+ args: {
3945
+ commitment: type(commitmentInputType()),
3946
+ dataSlice: type(dataSliceInputType()),
3947
+ encoding: type(accountEncodingInputType()),
3948
+ minContextSlot: bigint()
3949
+ },
3950
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3951
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.nonceAuthority }, info),
3952
+ type: accountInterface()
3953
+ }
1546
3954
  }),
1547
3955
  parsedTransactionInstructionType("UpgradeNonceAccountInstruction", {
1548
- nonceAccount: string()
3956
+ // Nested Account interface
3957
+ nonceAccount: {
3958
+ args: {
3959
+ commitment: type(commitmentInputType()),
3960
+ dataSlice: type(dataSliceInputType()),
3961
+ encoding: type(accountEncodingInputType()),
3962
+ minContextSlot: bigint()
3963
+ },
3964
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3965
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.nonceAccount }, info),
3966
+ type: accountInterface()
3967
+ }
1549
3968
  }),
1550
3969
  parsedTransactionInstructionType("AllocateInstruction", {
1551
- account: string(),
3970
+ // Nested Account interface
3971
+ account: {
3972
+ args: {
3973
+ commitment: type(commitmentInputType()),
3974
+ dataSlice: type(dataSliceInputType()),
3975
+ encoding: type(accountEncodingInputType()),
3976
+ minContextSlot: bigint()
3977
+ },
3978
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3979
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
3980
+ type: accountInterface()
3981
+ },
1552
3982
  space: bigint()
1553
3983
  }),
1554
3984
  parsedTransactionInstructionType("AllocateWithSeedInstruction", {
1555
- account: string(),
3985
+ // Nested Account interface
3986
+ account: {
3987
+ args: {
3988
+ commitment: type(commitmentInputType()),
3989
+ dataSlice: type(dataSliceInputType()),
3990
+ encoding: type(accountEncodingInputType()),
3991
+ minContextSlot: bigint()
3992
+ },
3993
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3994
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
3995
+ type: accountInterface()
3996
+ },
1556
3997
  base: string(),
1557
- owner: string(),
3998
+ // Nested Account interface
3999
+ owner: {
4000
+ args: {
4001
+ commitment: type(commitmentInputType()),
4002
+ dataSlice: type(dataSliceInputType()),
4003
+ encoding: type(accountEncodingInputType()),
4004
+ minContextSlot: bigint()
4005
+ },
4006
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4007
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
4008
+ type: accountInterface()
4009
+ },
1558
4010
  seed: string(),
1559
4011
  space: bigint()
1560
4012
  }),
1561
4013
  parsedTransactionInstructionType("AssignWithSeedInstruction", {
1562
- account: string(),
4014
+ // Nested Account interface
4015
+ account: {
4016
+ args: {
4017
+ commitment: type(commitmentInputType()),
4018
+ dataSlice: type(dataSliceInputType()),
4019
+ encoding: type(accountEncodingInputType()),
4020
+ minContextSlot: bigint()
4021
+ },
4022
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4023
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.account }, info),
4024
+ type: accountInterface()
4025
+ },
1563
4026
  base: string(),
1564
- owner: string(),
4027
+ // Nested Account interface
4028
+ owner: {
4029
+ args: {
4030
+ commitment: type(commitmentInputType()),
4031
+ dataSlice: type(dataSliceInputType()),
4032
+ encoding: type(accountEncodingInputType()),
4033
+ minContextSlot: bigint()
4034
+ },
4035
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4036
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
4037
+ type: accountInterface()
4038
+ },
1565
4039
  seed: string()
1566
4040
  }),
1567
4041
  parsedTransactionInstructionType("TransferWithSeedInstruction", {
1568
- destination: string(),
4042
+ destination: {
4043
+ args: {
4044
+ commitment: type(commitmentInputType()),
4045
+ dataSlice: type(dataSliceInputType()),
4046
+ encoding: type(accountEncodingInputType()),
4047
+ minContextSlot: bigint()
4048
+ },
4049
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4050
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.destination }, info),
4051
+ type: accountInterface()
4052
+ },
1569
4053
  lamports: bigint(),
1570
- source: string(),
1571
- sourceBase: string(),
1572
- sourceOwner: string(),
4054
+ source: {
4055
+ args: {
4056
+ commitment: type(commitmentInputType()),
4057
+ dataSlice: type(dataSliceInputType()),
4058
+ encoding: type(accountEncodingInputType()),
4059
+ minContextSlot: bigint()
4060
+ },
4061
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4062
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.source }, info),
4063
+ type: accountInterface()
4064
+ },
4065
+ // Nested Account interface
4066
+ sourceBase: {
4067
+ args: {
4068
+ commitment: type(commitmentInputType()),
4069
+ dataSlice: type(dataSliceInputType()),
4070
+ encoding: type(accountEncodingInputType()),
4071
+ minContextSlot: bigint()
4072
+ },
4073
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4074
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.sourceBase }, info),
4075
+ type: accountInterface()
4076
+ },
4077
+ // Nested Account interface
4078
+ sourceOwner: {
4079
+ args: {
4080
+ commitment: type(commitmentInputType()),
4081
+ dataSlice: type(dataSliceInputType()),
4082
+ encoding: type(accountEncodingInputType()),
4083
+ minContextSlot: bigint()
4084
+ },
4085
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4086
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.sourceOwner }, info),
4087
+ type: accountInterface()
4088
+ },
1573
4089
  sourceSeed: string()
1574
4090
  })
1575
4091
  ];
@@ -1612,100 +4128,506 @@ var parsedInstructionsVote = () => {
1612
4128
  if (!memoisedParsedInstructionsVote)
1613
4129
  memoisedParsedInstructionsVote = [
1614
4130
  parsedTransactionInstructionType("VoteInitializeAccountInstruction", {
1615
- authorizedVoter: string(),
1616
- authorizedWithdrawer: string(),
4131
+ // Nested Account interface
4132
+ authorizedVoter: {
4133
+ args: {
4134
+ commitment: type(commitmentInputType()),
4135
+ dataSlice: type(dataSliceInputType()),
4136
+ encoding: type(accountEncodingInputType()),
4137
+ minContextSlot: bigint()
4138
+ },
4139
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4140
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authorizedVoter }, info),
4141
+ type: accountInterface()
4142
+ },
4143
+ // Nested Account interface
4144
+ authorizedWithdrawer: {
4145
+ args: {
4146
+ commitment: type(commitmentInputType()),
4147
+ dataSlice: type(dataSliceInputType()),
4148
+ encoding: type(accountEncodingInputType()),
4149
+ minContextSlot: bigint()
4150
+ },
4151
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4152
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authorizedWithdrawer }, info),
4153
+ type: accountInterface()
4154
+ },
1617
4155
  clockSysvar: string(),
1618
4156
  commission: number(),
1619
4157
  node: string(),
1620
4158
  rentSysvar: string(),
1621
- voteAccount: string()
4159
+ // Nested Account interface
4160
+ voteAccount: {
4161
+ args: {
4162
+ commitment: type(commitmentInputType()),
4163
+ dataSlice: type(dataSliceInputType()),
4164
+ encoding: type(accountEncodingInputType()),
4165
+ minContextSlot: bigint()
4166
+ },
4167
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4168
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
4169
+ type: accountInterface()
4170
+ }
1622
4171
  }),
1623
4172
  parsedTransactionInstructionType("VoteAuthorizeInstruction", {
1624
- authority: string(),
4173
+ // Nested Account interface
4174
+ authority: {
4175
+ args: {
4176
+ commitment: type(commitmentInputType()),
4177
+ dataSlice: type(dataSliceInputType()),
4178
+ encoding: type(accountEncodingInputType()),
4179
+ minContextSlot: bigint()
4180
+ },
4181
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4182
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
4183
+ type: accountInterface()
4184
+ },
1625
4185
  authorityType: string(),
1626
4186
  clockSysvar: string(),
1627
- newAuthority: string(),
1628
- voteAccount: string()
4187
+ // Nested Account interface
4188
+ newAuthority: {
4189
+ args: {
4190
+ commitment: type(commitmentInputType()),
4191
+ dataSlice: type(dataSliceInputType()),
4192
+ encoding: type(accountEncodingInputType()),
4193
+ minContextSlot: bigint()
4194
+ },
4195
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4196
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newAuthority }, info),
4197
+ type: accountInterface()
4198
+ },
4199
+ // Nested Account interface
4200
+ voteAccount: {
4201
+ args: {
4202
+ commitment: type(commitmentInputType()),
4203
+ dataSlice: type(dataSliceInputType()),
4204
+ encoding: type(accountEncodingInputType()),
4205
+ minContextSlot: bigint()
4206
+ },
4207
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4208
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
4209
+ type: accountInterface()
4210
+ }
1629
4211
  }),
1630
4212
  parsedTransactionInstructionType("VoteAuthorizeWithSeedInstruction", {
1631
- authorityBaseKey: string(),
1632
- authorityOwner: string(),
4213
+ // Nested Account interface
4214
+ authorityBaseKey: {
4215
+ args: {
4216
+ commitment: type(commitmentInputType()),
4217
+ dataSlice: type(dataSliceInputType()),
4218
+ encoding: type(accountEncodingInputType()),
4219
+ minContextSlot: bigint()
4220
+ },
4221
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4222
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authorityBaseKey }, info),
4223
+ type: accountInterface()
4224
+ },
4225
+ // Nested Account interface
4226
+ authorityOwner: {
4227
+ args: {
4228
+ commitment: type(commitmentInputType()),
4229
+ dataSlice: type(dataSliceInputType()),
4230
+ encoding: type(accountEncodingInputType()),
4231
+ minContextSlot: bigint()
4232
+ },
4233
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4234
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authorityOwner }, info),
4235
+ type: accountInterface()
4236
+ },
1633
4237
  authoritySeed: string(),
1634
4238
  authorityType: string(),
1635
4239
  clockSysvar: string(),
1636
- newAuthority: string(),
1637
- voteAccount: string()
4240
+ // Nested Account interface
4241
+ newAuthority: {
4242
+ args: {
4243
+ commitment: type(commitmentInputType()),
4244
+ dataSlice: type(dataSliceInputType()),
4245
+ encoding: type(accountEncodingInputType()),
4246
+ minContextSlot: bigint()
4247
+ },
4248
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4249
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newAuthority }, info),
4250
+ type: accountInterface()
4251
+ },
4252
+ // Nested Account interface
4253
+ voteAccount: {
4254
+ args: {
4255
+ commitment: type(commitmentInputType()),
4256
+ dataSlice: type(dataSliceInputType()),
4257
+ encoding: type(accountEncodingInputType()),
4258
+ minContextSlot: bigint()
4259
+ },
4260
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4261
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
4262
+ type: accountInterface()
4263
+ }
1638
4264
  }),
1639
4265
  parsedTransactionInstructionType("VoteAuthorizeCheckedWithSeedInstruction", {
1640
- authorityBaseKey: string(),
1641
- authorityOwner: string(),
4266
+ // Nested Account interface
4267
+ authorityBaseKey: {
4268
+ args: {
4269
+ commitment: type(commitmentInputType()),
4270
+ dataSlice: type(dataSliceInputType()),
4271
+ encoding: type(accountEncodingInputType()),
4272
+ minContextSlot: bigint()
4273
+ },
4274
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4275
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authorityBaseKey }, info),
4276
+ type: accountInterface()
4277
+ },
4278
+ // Nested Account interface
4279
+ authorityOwner: {
4280
+ args: {
4281
+ commitment: type(commitmentInputType()),
4282
+ dataSlice: type(dataSliceInputType()),
4283
+ encoding: type(accountEncodingInputType()),
4284
+ minContextSlot: bigint()
4285
+ },
4286
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4287
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authorityOwner }, info),
4288
+ type: accountInterface()
4289
+ },
1642
4290
  authoritySeed: string(),
1643
4291
  authorityType: string(),
1644
4292
  clockSysvar: string(),
1645
- newAuthority: string(),
1646
- voteAccount: string()
4293
+ // Nested Account interface
4294
+ newAuthority: {
4295
+ args: {
4296
+ commitment: type(commitmentInputType()),
4297
+ dataSlice: type(dataSliceInputType()),
4298
+ encoding: type(accountEncodingInputType()),
4299
+ minContextSlot: bigint()
4300
+ },
4301
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4302
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newAuthority }, info),
4303
+ type: accountInterface()
4304
+ },
4305
+ // Nested Account interface
4306
+ voteAccount: {
4307
+ args: {
4308
+ commitment: type(commitmentInputType()),
4309
+ dataSlice: type(dataSliceInputType()),
4310
+ encoding: type(accountEncodingInputType()),
4311
+ minContextSlot: bigint()
4312
+ },
4313
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4314
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
4315
+ type: accountInterface()
4316
+ }
1647
4317
  }),
1648
4318
  parsedTransactionInstructionType("VoteVoteInstruction", {
1649
4319
  clockSysvar: string(),
1650
4320
  slotHashedSysvar: string(),
1651
4321
  vote: type(vote()),
1652
- voteAccount: string(),
1653
- voteAuthority: string()
4322
+ // Nested Account interface
4323
+ voteAccount: {
4324
+ args: {
4325
+ commitment: type(commitmentInputType()),
4326
+ dataSlice: type(dataSliceInputType()),
4327
+ encoding: type(accountEncodingInputType()),
4328
+ minContextSlot: bigint()
4329
+ },
4330
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4331
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
4332
+ type: accountInterface()
4333
+ },
4334
+ // Nested Account interface
4335
+ voteAuthority: {
4336
+ args: {
4337
+ commitment: type(commitmentInputType()),
4338
+ dataSlice: type(dataSliceInputType()),
4339
+ encoding: type(accountEncodingInputType()),
4340
+ minContextSlot: bigint()
4341
+ },
4342
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4343
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAuthority }, info),
4344
+ type: accountInterface()
4345
+ }
1654
4346
  }),
1655
4347
  parsedTransactionInstructionType("VoteUpdateVoteStateInstruction", {
1656
4348
  hash: string(),
1657
- voteAccount: string(),
1658
- voteAuthority: string(),
4349
+ // Nested Account interface
4350
+ voteAccount: {
4351
+ args: {
4352
+ commitment: type(commitmentInputType()),
4353
+ dataSlice: type(dataSliceInputType()),
4354
+ encoding: type(accountEncodingInputType()),
4355
+ minContextSlot: bigint()
4356
+ },
4357
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4358
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
4359
+ type: accountInterface()
4360
+ },
4361
+ // Nested Account interface
4362
+ voteAuthority: {
4363
+ args: {
4364
+ commitment: type(commitmentInputType()),
4365
+ dataSlice: type(dataSliceInputType()),
4366
+ encoding: type(accountEncodingInputType()),
4367
+ minContextSlot: bigint()
4368
+ },
4369
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4370
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAuthority }, info),
4371
+ type: accountInterface()
4372
+ },
1659
4373
  voteStateUpdate: type(voteStateUpdate())
1660
4374
  }),
1661
4375
  parsedTransactionInstructionType("VoteUpdateVoteStateSwitchInstruction", {
1662
4376
  hash: string(),
1663
- voteAccount: string(),
1664
- voteAuthority: string(),
4377
+ // Nested Account interface
4378
+ voteAccount: {
4379
+ args: {
4380
+ commitment: type(commitmentInputType()),
4381
+ dataSlice: type(dataSliceInputType()),
4382
+ encoding: type(accountEncodingInputType()),
4383
+ minContextSlot: bigint()
4384
+ },
4385
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4386
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
4387
+ type: accountInterface()
4388
+ },
4389
+ // Nested Account interface
4390
+ voteAuthority: {
4391
+ args: {
4392
+ commitment: type(commitmentInputType()),
4393
+ dataSlice: type(dataSliceInputType()),
4394
+ encoding: type(accountEncodingInputType()),
4395
+ minContextSlot: bigint()
4396
+ },
4397
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4398
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAuthority }, info),
4399
+ type: accountInterface()
4400
+ },
1665
4401
  voteStateUpdate: type(voteStateUpdate())
1666
4402
  }),
1667
4403
  parsedTransactionInstructionType("VoteCompactUpdateVoteStateInstruction", {
1668
4404
  hash: string(),
1669
- voteAccount: string(),
1670
- voteAuthority: string(),
4405
+ // Nested Account interface
4406
+ voteAccount: {
4407
+ args: {
4408
+ commitment: type(commitmentInputType()),
4409
+ dataSlice: type(dataSliceInputType()),
4410
+ encoding: type(accountEncodingInputType()),
4411
+ minContextSlot: bigint()
4412
+ },
4413
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4414
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
4415
+ type: accountInterface()
4416
+ },
4417
+ // Nested Account interface
4418
+ voteAuthority: {
4419
+ args: {
4420
+ commitment: type(commitmentInputType()),
4421
+ dataSlice: type(dataSliceInputType()),
4422
+ encoding: type(accountEncodingInputType()),
4423
+ minContextSlot: bigint()
4424
+ },
4425
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4426
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAuthority }, info),
4427
+ type: accountInterface()
4428
+ },
1671
4429
  voteStateUpdate: type(voteStateUpdate())
1672
4430
  }),
1673
4431
  parsedTransactionInstructionType("VoteCompactUpdateVoteStateSwitchInstruction", {
1674
4432
  hash: string(),
1675
- voteAccount: string(),
1676
- voteAuthority: string(),
4433
+ // Nested Account interface
4434
+ voteAccount: {
4435
+ args: {
4436
+ commitment: type(commitmentInputType()),
4437
+ dataSlice: type(dataSliceInputType()),
4438
+ encoding: type(accountEncodingInputType()),
4439
+ minContextSlot: bigint()
4440
+ },
4441
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4442
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
4443
+ type: accountInterface()
4444
+ },
4445
+ // Nested Account interface
4446
+ voteAuthority: {
4447
+ args: {
4448
+ commitment: type(commitmentInputType()),
4449
+ dataSlice: type(dataSliceInputType()),
4450
+ encoding: type(accountEncodingInputType()),
4451
+ minContextSlot: bigint()
4452
+ },
4453
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4454
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAuthority }, info),
4455
+ type: accountInterface()
4456
+ },
1677
4457
  voteStateUpdate: type(voteStateUpdate())
1678
4458
  }),
1679
4459
  parsedTransactionInstructionType("VoteWithdrawInstruction", {
1680
- destination: string(),
4460
+ destination: {
4461
+ args: {
4462
+ commitment: type(commitmentInputType()),
4463
+ dataSlice: type(dataSliceInputType()),
4464
+ encoding: type(accountEncodingInputType()),
4465
+ minContextSlot: bigint()
4466
+ },
4467
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4468
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.destination }, info),
4469
+ type: accountInterface()
4470
+ },
1681
4471
  lamports: bigint(),
1682
- voteAccount: string(),
1683
- withdrawAuthority: string()
4472
+ // Nested Account interface
4473
+ voteAccount: {
4474
+ args: {
4475
+ commitment: type(commitmentInputType()),
4476
+ dataSlice: type(dataSliceInputType()),
4477
+ encoding: type(accountEncodingInputType()),
4478
+ minContextSlot: bigint()
4479
+ },
4480
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4481
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
4482
+ type: accountInterface()
4483
+ },
4484
+ // Nested Account interface
4485
+ withdrawAuthority: {
4486
+ args: {
4487
+ commitment: type(commitmentInputType()),
4488
+ dataSlice: type(dataSliceInputType()),
4489
+ encoding: type(accountEncodingInputType()),
4490
+ minContextSlot: bigint()
4491
+ },
4492
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4493
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.withdrawAuthority }, info),
4494
+ type: accountInterface()
4495
+ }
1684
4496
  }),
1685
4497
  parsedTransactionInstructionType("VoteUpdateValidatorIdentityInstruction", {
1686
- newValidatorIdentity: string(),
1687
- voteAccount: string(),
1688
- withdrawAuthority: string()
4498
+ // Nested Account interface
4499
+ newValidatorIdentity: {
4500
+ args: {
4501
+ commitment: type(commitmentInputType()),
4502
+ dataSlice: type(dataSliceInputType()),
4503
+ encoding: type(accountEncodingInputType()),
4504
+ minContextSlot: bigint()
4505
+ },
4506
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4507
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newValidatorIdentity }, info),
4508
+ type: accountInterface()
4509
+ },
4510
+ // Nested Account interface
4511
+ voteAccount: {
4512
+ args: {
4513
+ commitment: type(commitmentInputType()),
4514
+ dataSlice: type(dataSliceInputType()),
4515
+ encoding: type(accountEncodingInputType()),
4516
+ minContextSlot: bigint()
4517
+ },
4518
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4519
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
4520
+ type: accountInterface()
4521
+ },
4522
+ // Nested Account interface
4523
+ withdrawAuthority: {
4524
+ args: {
4525
+ commitment: type(commitmentInputType()),
4526
+ dataSlice: type(dataSliceInputType()),
4527
+ encoding: type(accountEncodingInputType()),
4528
+ minContextSlot: bigint()
4529
+ },
4530
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4531
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.withdrawAuthority }, info),
4532
+ type: accountInterface()
4533
+ }
1689
4534
  }),
1690
4535
  parsedTransactionInstructionType("VoteUpdateCommissionInstruction", {
1691
4536
  commission: string(),
1692
- voteAccount: string(),
1693
- withdrawAuthority: string()
4537
+ // Nested Account interface
4538
+ voteAccount: {
4539
+ args: {
4540
+ commitment: type(commitmentInputType()),
4541
+ dataSlice: type(dataSliceInputType()),
4542
+ encoding: type(accountEncodingInputType()),
4543
+ minContextSlot: bigint()
4544
+ },
4545
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4546
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
4547
+ type: accountInterface()
4548
+ },
4549
+ // Nested Account interface
4550
+ withdrawAuthority: {
4551
+ args: {
4552
+ commitment: type(commitmentInputType()),
4553
+ dataSlice: type(dataSliceInputType()),
4554
+ encoding: type(accountEncodingInputType()),
4555
+ minContextSlot: bigint()
4556
+ },
4557
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4558
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.withdrawAuthority }, info),
4559
+ type: accountInterface()
4560
+ }
1694
4561
  }),
1695
4562
  parsedTransactionInstructionType("VoteVoteSwitchInstruction", {
1696
4563
  clockSysvar: string(),
1697
4564
  hash: string(),
1698
4565
  slotHashesSysvar: string(),
1699
4566
  vote: type(vote()),
1700
- voteAccount: string(),
1701
- voteAuthority: string()
4567
+ // Nested Account interface
4568
+ voteAccount: {
4569
+ args: {
4570
+ commitment: type(commitmentInputType()),
4571
+ dataSlice: type(dataSliceInputType()),
4572
+ encoding: type(accountEncodingInputType()),
4573
+ minContextSlot: bigint()
4574
+ },
4575
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4576
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
4577
+ type: accountInterface()
4578
+ },
4579
+ // Nested Account interface
4580
+ voteAuthority: {
4581
+ args: {
4582
+ commitment: type(commitmentInputType()),
4583
+ dataSlice: type(dataSliceInputType()),
4584
+ encoding: type(accountEncodingInputType()),
4585
+ minContextSlot: bigint()
4586
+ },
4587
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4588
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAuthority }, info),
4589
+ type: accountInterface()
4590
+ }
1702
4591
  }),
1703
4592
  parsedTransactionInstructionType("VoteAuthorizeCheckedInstruction", {
1704
- authority: string(),
4593
+ // Nested Account interface
4594
+ authority: {
4595
+ args: {
4596
+ commitment: type(commitmentInputType()),
4597
+ dataSlice: type(dataSliceInputType()),
4598
+ encoding: type(accountEncodingInputType()),
4599
+ minContextSlot: bigint()
4600
+ },
4601
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4602
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.authority }, info),
4603
+ type: accountInterface()
4604
+ },
1705
4605
  authorityType: string(),
1706
4606
  clockSysvar: string(),
1707
- newAuthority: string(),
1708
- voteAccount: string()
4607
+ // Nested Account interface
4608
+ newAuthority: {
4609
+ args: {
4610
+ commitment: type(commitmentInputType()),
4611
+ dataSlice: type(dataSliceInputType()),
4612
+ encoding: type(accountEncodingInputType()),
4613
+ minContextSlot: bigint()
4614
+ },
4615
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4616
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.newAuthority }, info),
4617
+ type: accountInterface()
4618
+ },
4619
+ // Nested Account interface
4620
+ voteAccount: {
4621
+ args: {
4622
+ commitment: type(commitmentInputType()),
4623
+ dataSlice: type(dataSliceInputType()),
4624
+ encoding: type(accountEncodingInputType()),
4625
+ minContextSlot: bigint()
4626
+ },
4627
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4628
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.voteAccount }, info),
4629
+ type: accountInterface()
4630
+ }
1709
4631
  })
1710
4632
  ];
1711
4633
  return memoisedParsedInstructionsVote;
@@ -1791,83 +4713,40 @@ var transactionMetaParsed = () => {
1791
4713
  );
1792
4714
  return memoisedTransactionMetaParsed;
1793
4715
  };
1794
- var memoisedTransactionMessageInterfaceFields;
1795
- var transactionMessageInterfaceFields = () => {
1796
- if (!memoisedTransactionMessageInterfaceFields)
1797
- memoisedTransactionMessageInterfaceFields = {
1798
- addressTableLookups: list(type(addressTableLookup())),
1799
- format: string(),
1800
- header: object("TransactionJsonTransactionHeader", {
1801
- numReadonlySignedAccounts: number(),
1802
- numReadonlyUnsignedAccounts: number(),
1803
- numRequiredSignatures: number()
1804
- }),
1805
- recentBlockhash: string()
1806
- };
1807
- return memoisedTransactionMessageInterfaceFields;
1808
- };
1809
- var memoisedTransactionMessageInterface;
1810
- var transactionMessageInterface = () => {
1811
- if (!memoisedTransactionMessageInterface)
1812
- memoisedTransactionMessageInterface = new GraphQLInterfaceType({
4716
+ var memoisedTransactionMessage;
4717
+ var transactionMessage = () => {
4718
+ if (!memoisedTransactionMessage)
4719
+ memoisedTransactionMessage = new GraphQLObjectType({
4720
+ description: "A transaction message",
1813
4721
  fields: {
1814
- ...transactionMessageInterfaceFields()
4722
+ accountKeys: list(
4723
+ object("transactionMessageParsedAccountKey", {
4724
+ pubkey: string(),
4725
+ signer: boolean(),
4726
+ source: string(),
4727
+ writable: boolean()
4728
+ })
4729
+ ),
4730
+ addressTableLookups: list(type(addressTableLookup())),
4731
+ format: string(),
4732
+ header: object("TransactionJsonTransactionHeader", {
4733
+ numReadonlySignedAccounts: number(),
4734
+ numReadonlyUnsignedAccounts: number(),
4735
+ numRequiredSignatures: number()
4736
+ }),
4737
+ instructions: list(type(parsedTransactionInstructionInterface())),
4738
+ recentBlockhash: string()
1815
4739
  },
1816
- name: "TransactionMessage",
1817
- resolveType(message) {
1818
- if (message.format === "parsed") {
1819
- return "TransactionMessageParsed";
1820
- }
1821
- return "TransactionMessageUnparsed";
1822
- }
4740
+ name: "TransactionMessage"
1823
4741
  });
1824
- return memoisedTransactionMessageInterface;
1825
- };
1826
- var transactionMessageType = (name, description, accountKeys, instructions) => new GraphQLObjectType({
1827
- description,
1828
- fields: {
1829
- ...transactionMessageInterfaceFields(),
1830
- accountKeys,
1831
- instructions
1832
- },
1833
- interfaces: [transactionMessageInterface()],
1834
- name
1835
- });
1836
- var memoisedTransactionMessageUnparsed;
1837
- var transactionMessageUnparsed = () => {
1838
- if (!memoisedTransactionMessageUnparsed)
1839
- memoisedTransactionMessageUnparsed = transactionMessageType(
1840
- "TransactionMessageUnparsed",
1841
- "Non-parsed transaction message",
1842
- list(string()),
1843
- list(type(transactionInstruction()))
1844
- );
1845
- return memoisedTransactionMessageUnparsed;
1846
- };
1847
- var memoisedTransactionMessageParsed;
1848
- var transactionMessageParsed = () => {
1849
- if (!memoisedTransactionMessageParsed)
1850
- memoisedTransactionMessageParsed = transactionMessageType(
1851
- "TransactionMessageParsed",
1852
- "Parsed transaction message",
1853
- list(
1854
- object("transactionMessageParsedAccountKey", {
1855
- pubkey: string(),
1856
- signer: boolean(),
1857
- source: string(),
1858
- writable: boolean()
1859
- })
1860
- ),
1861
- list(type(parsedTransactionInstructionInterface()))
1862
- );
1863
- return memoisedTransactionMessageParsed;
4742
+ return memoisedTransactionMessage;
1864
4743
  };
1865
4744
  var memoisedTransactionTransaction;
1866
4745
  var transactionTransaction = () => {
1867
4746
  if (!memoisedTransactionTransaction)
1868
4747
  memoisedTransactionTransaction = new GraphQLObjectType({
1869
4748
  fields: {
1870
- message: type(transactionMessageInterface()),
4749
+ message: type(transactionMessage()),
1871
4750
  signatures: list(string())
1872
4751
  },
1873
4752
  name: "TransactionTransaction"
@@ -1973,8 +4852,6 @@ var transactionTypes = () => {
1973
4852
  ...parsedInstructionsVote(),
1974
4853
  transactionMetaUnparsed(),
1975
4854
  transactionMetaParsed(),
1976
- transactionMessageUnparsed(),
1977
- transactionMessageParsed(),
1978
4855
  transactionBase58(),
1979
4856
  transactionBase64(),
1980
4857
  transactionJson(),
@@ -2140,15 +5017,6 @@ var blockQuery = () => ({
2140
5017
  type: blockInterface()
2141
5018
  }
2142
5019
  });
2143
- var programAccount = () => new GraphQLObjectType({
2144
- fields: {
2145
- account: type(accountInterface()),
2146
- pubkey: string()
2147
- },
2148
- name: "ProgramAccount"
2149
- });
2150
-
2151
- // src/schema/program-accounts/query.ts
2152
5020
  var programAccountsQuery = () => ({
2153
5021
  programAccounts: {
2154
5022
  args: {
@@ -2161,7 +5029,7 @@ var programAccountsQuery = () => ({
2161
5029
  withContext: string()
2162
5030
  },
2163
5031
  resolve: (_parent, args, context) => context.resolveProgramAccounts(args),
2164
- type: new GraphQLList(programAccount())
5032
+ type: new GraphQLList(accountInterface())
2165
5033
  }
2166
5034
  });
2167
5035