@solana/rpc-graphql 2.0.0-experimental.fc4e943 → 2.0.0-experimental.fe07532

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/index.browser.cjs +23 -6
  2. package/dist/index.browser.cjs.map +1 -1
  3. package/dist/index.browser.js +23 -6
  4. package/dist/index.browser.js.map +1 -1
  5. package/dist/index.native.js +23 -6
  6. package/dist/index.native.js.map +1 -1
  7. package/dist/index.node.cjs +23 -6
  8. package/dist/index.node.cjs.map +1 -1
  9. package/dist/index.node.js +23 -6
  10. package/dist/index.node.js.map +1 -1
  11. package/dist/types/cache.d.ts.map +1 -0
  12. package/dist/types/context.d.ts +3 -2
  13. package/dist/types/context.d.ts.map +1 -0
  14. package/dist/types/index.d.ts.map +1 -0
  15. package/dist/types/rpc.d.ts.map +1 -0
  16. package/dist/types/schema/account/index.d.ts.map +1 -0
  17. package/dist/types/schema/account/query.d.ts +2 -2
  18. package/dist/types/schema/account/query.d.ts.map +1 -0
  19. package/dist/types/schema/account/types.d.ts.map +1 -0
  20. package/dist/types/schema/block/index.d.ts.map +1 -0
  21. package/dist/types/schema/block/query.d.ts +1 -1
  22. package/dist/types/schema/block/query.d.ts.map +1 -0
  23. package/dist/types/schema/block/types.d.ts.map +1 -0
  24. package/dist/types/schema/inputs.d.ts.map +1 -0
  25. package/dist/types/schema/picks.d.ts.map +1 -0
  26. package/dist/types/schema/program-accounts/index.d.ts.map +1 -0
  27. package/dist/types/schema/program-accounts/query.d.ts +1 -1
  28. package/dist/types/schema/program-accounts/query.d.ts.map +1 -0
  29. package/dist/types/schema/program-accounts/types.d.ts.map +1 -0
  30. package/dist/types/schema/scalars.d.ts.map +1 -0
  31. package/dist/types/schema/transaction/index.d.ts.map +1 -0
  32. package/dist/types/schema/transaction/query.d.ts +1 -1
  33. package/dist/types/schema/transaction/query.d.ts.map +1 -0
  34. package/dist/types/schema/transaction/types.d.ts.map +1 -0
  35. package/package.json +12 -11
@@ -36,7 +36,19 @@ function createGraphQLCache() {
36
36
  }
37
37
 
38
38
  // src/context.ts
39
- async function resolveAccount({ address, encoding = "jsonParsed", ...config }, cache, rpc) {
39
+ async function resolveAccount({ address, encoding = "jsonParsed", ...config }, cache, rpc, info) {
40
+ if (info && info.fieldNodes[0].selectionSet) {
41
+ const selectionSet = info.fieldNodes[0].selectionSet;
42
+ const requestedFields = selectionSet.selections.map((field) => {
43
+ if (field.kind === "Field") {
44
+ return field.name.value;
45
+ }
46
+ return null;
47
+ });
48
+ if (requestedFields && requestedFields.length === 1 && requestedFields[0] === "address") {
49
+ return { address };
50
+ }
51
+ }
40
52
  const requestConfig = { encoding, ...config };
41
53
  const cached = cache.get(address, requestConfig);
42
54
  if (cached !== null) {
@@ -46,11 +58,14 @@ async function resolveAccount({ address, encoding = "jsonParsed", ...config }, c
46
58
  throw e;
47
59
  });
48
60
  if (account === null) {
49
- return null;
61
+ return {
62
+ address
63
+ };
50
64
  }
51
65
  const [data, responseEncoding] = Array.isArray(account.data) ? encoding === "jsonParsed" ? [account.data[0], "base64"] : [account.data[0], encoding] : [account.data, "jsonParsed"];
52
66
  const queryResponse = {
53
67
  ...account,
68
+ address,
54
69
  data,
55
70
  encoding: responseEncoding
56
71
  };
@@ -125,8 +140,8 @@ function createSolanaGraphQLContext(rpc) {
125
140
  const cache = createGraphQLCache();
126
141
  return {
127
142
  cache,
128
- resolveAccount(args) {
129
- return resolveAccount(args, this.cache, this.rpc);
143
+ resolveAccount(args, info) {
144
+ return resolveAccount(args, this.cache, this.rpc, info);
130
145
  },
131
146
  resolveBlock(args) {
132
147
  return resolveBlock(args, this.cache, this.rpc);
@@ -343,6 +358,7 @@ var memoisedAccountInterfaceFields;
343
358
  var accountInterfaceFields = () => {
344
359
  if (!memoisedAccountInterfaceFields) {
345
360
  memoisedAccountInterfaceFields = {
361
+ address: string(),
346
362
  encoding: string(),
347
363
  executable: boolean(),
348
364
  lamports: bigint(),
@@ -409,7 +425,7 @@ var accountType = (name, description, data) => new graphql.GraphQLObjectType({
409
425
  encoding: type(accountEncodingInputType()),
410
426
  minContextSlot: bigint()
411
427
  },
412
- resolve: (parent, args, context) => context.resolveAccount({ ...args, address: parent.owner }),
428
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
413
429
  type: accountInterface()
414
430
  }
415
431
  },
@@ -609,7 +625,8 @@ var accountQuery = () => ({
609
625
  encoding: type(accountEncodingInputType()),
610
626
  minContextSlot: bigint()
611
627
  },
612
- resolve: (_parent, args, context) => context.resolveAccount(args),
628
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
629
+ resolve: (_parent, args, context, info) => context.resolveAccount(args, info),
613
630
  type: accountInterface()
614
631
  }
615
632
  });