@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
@@ -40,7 +40,19 @@ function createGraphQLCache() {
40
40
  }
41
41
 
42
42
  // src/context.ts
43
- async function resolveAccount({ address, encoding = "jsonParsed", ...config }, cache, rpc) {
43
+ async function resolveAccount({ address, encoding = "jsonParsed", ...config }, cache, rpc, info) {
44
+ if (info && info.fieldNodes[0].selectionSet) {
45
+ const selectionSet = info.fieldNodes[0].selectionSet;
46
+ const requestedFields = selectionSet.selections.map((field) => {
47
+ if (field.kind === "Field") {
48
+ return field.name.value;
49
+ }
50
+ return null;
51
+ });
52
+ if (requestedFields && requestedFields.length === 1 && requestedFields[0] === "address") {
53
+ return { address };
54
+ }
55
+ }
44
56
  const requestConfig = { encoding, ...config };
45
57
  const cached = cache.get(address, requestConfig);
46
58
  if (cached !== null) {
@@ -50,11 +62,14 @@ async function resolveAccount({ address, encoding = "jsonParsed", ...config }, c
50
62
  throw e;
51
63
  });
52
64
  if (account === null) {
53
- return null;
65
+ return {
66
+ address
67
+ };
54
68
  }
55
69
  const [data, responseEncoding] = Array.isArray(account.data) ? encoding === "jsonParsed" ? [account.data[0], "base64"] : [account.data[0], encoding] : [account.data, "jsonParsed"];
56
70
  const queryResponse = {
57
71
  ...account,
72
+ address,
58
73
  data,
59
74
  encoding: responseEncoding
60
75
  };
@@ -129,8 +144,8 @@ function createSolanaGraphQLContext(rpc) {
129
144
  const cache = createGraphQLCache();
130
145
  return {
131
146
  cache,
132
- resolveAccount(args) {
133
- return resolveAccount(args, this.cache, this.rpc);
147
+ resolveAccount(args, info) {
148
+ return resolveAccount(args, this.cache, this.rpc, info);
134
149
  },
135
150
  resolveBlock(args) {
136
151
  return resolveBlock(args, this.cache, this.rpc);
@@ -347,6 +362,7 @@ var memoisedAccountInterfaceFields;
347
362
  var accountInterfaceFields = () => {
348
363
  if (!memoisedAccountInterfaceFields) {
349
364
  memoisedAccountInterfaceFields = {
365
+ address: string(),
350
366
  encoding: string(),
351
367
  executable: boolean(),
352
368
  lamports: bigint(),
@@ -413,7 +429,7 @@ var accountType = (name, description, data) => new graphql.GraphQLObjectType({
413
429
  encoding: type(accountEncodingInputType()),
414
430
  minContextSlot: bigint()
415
431
  },
416
- resolve: (parent, args, context) => context.resolveAccount({ ...args, address: parent.owner }),
432
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
417
433
  type: accountInterface()
418
434
  }
419
435
  },
@@ -613,7 +629,8 @@ var accountQuery = () => ({
613
629
  encoding: type(accountEncodingInputType()),
614
630
  minContextSlot: bigint()
615
631
  },
616
- resolve: (_parent, args, context) => context.resolveAccount(args),
632
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
633
+ resolve: (_parent, args, context, info) => context.resolveAccount(args, info),
617
634
  type: accountInterface()
618
635
  }
619
636
  });