@graphprotocol/graph-cli 0.45.0-alpha-20230330113700-1b45db7 → 0.45.0-alpha-20230330173033-57c7de2

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.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @graphprotocol/graph-cli
2
2
 
3
- ## 0.45.0-alpha-20230330113700-1b45db7
3
+ ## 0.45.0-alpha-20230330173033-57c7de2
4
4
 
5
5
  ### Minor Changes
6
6
 
@@ -20,13 +20,6 @@
20
20
  - Removed dependency [`node-fetch@2.6.0` ↗︎](https://www.npmjs.com/package/node-fetch/v/2.6.0)
21
21
  (from `dependencies`)
22
22
 
23
- - [#1224](https://github.com/graphprotocol/graph-tooling/pull/1224)
24
- [`1b45db7`](https://github.com/graphprotocol/graph-tooling/commit/1b45db73418693d463e3e4217351a76fbd9ba62e)
25
- Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
26
-
27
- - Updated dependency [`chokidar@3.5.3` ↗︎](https://www.npmjs.com/package/chokidar/v/3.5.3) (from
28
- `3.5.1`, in `dependencies`)
29
-
30
23
  - [#1207](https://github.com/graphprotocol/graph-tooling/pull/1207)
31
24
  [`ad275b3`](https://github.com/graphprotocol/graph-tooling/commit/ad275b31e635dab03cfefda00617ef9f612b01c0)
32
25
  Thanks [@saihaj](https://github.com/saihaj)! - bring back short hand for version and help
@@ -71,13 +71,13 @@ const writeABI = async (abi, contractName) => {
71
71
  await fs_extra_1.default.writeFile(`./abis/${contractName}.json`, data, 'utf-8');
72
72
  };
73
73
  exports.writeABI = writeABI;
74
- const writeSchema = async (abi, protocol, schemaPath, entities) => {
74
+ const writeSchema = async (abi, protocol, schemaPath, entities, contractName) => {
75
75
  const events = protocol.hasEvents()
76
76
  ? (0, schema_1.abiEvents)(abi)
77
77
  .filter(event => !entities.includes(event.get('name')))
78
78
  .toJS()
79
79
  : [];
80
- const data = prettier_1.default.format(events.map(event => (0, schema_1.generateEventType)(event, protocol.name)).join('\n\n'), {
80
+ const data = prettier_1.default.format(events.map(event => (0, schema_1.generateEventType)(event, protocol.name, contractName)).join('\n\n'), {
81
81
  parser: 'graphql',
82
82
  });
83
83
  await fs_extra_1.default.appendFile(schemaPath, data, { encoding: 'utf-8' });
@@ -72,7 +72,7 @@ class AddCommand extends core_1.Command {
72
72
  const { collisionEntities, onlyCollisions, abiData } = updateEventNamesOnCollision(ethabi, entities, contractName, mergeEntities);
73
73
  ethabi.data = abiData;
74
74
  await (0, scaffold_1.writeABI)(ethabi, contractName);
75
- await (0, scaffold_1.writeSchema)(ethabi, protocol, result.getIn(['schema', 'file']), collisionEntities);
75
+ await (0, scaffold_1.writeSchema)(ethabi, protocol, result.getIn(['schema', 'file']), collisionEntities, contractName);
76
76
  await (0, scaffold_1.writeMapping)(ethabi, protocol, contractName, collisionEntities);
77
77
  await (0, scaffold_1.writeTestsFiles)(ethabi, protocol, contractName);
78
78
  const dataSources = result.get('dataSources');
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- /* eslint-disable */
3
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
3
  if (k2 === undefined) k2 = k;
5
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -27,6 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
28
27
  };
29
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
+ /* eslint-disable */
30
30
  const toolbox = __importStar(require("gluegun"));
31
31
  const semver_1 = __importDefault(require("semver"));
32
32
  const load_manifest_1 = require("./util/load-manifest");
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- /* eslint-disable */
3
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
3
  if (k2 === undefined) k2 = k;
5
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -27,6 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
28
27
  };
29
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
+ /* eslint-disable */
30
30
  const toolbox = __importStar(require("gluegun"));
31
31
  const semver_1 = __importDefault(require("semver"));
32
32
  const load_manifest_1 = require("./util/load-manifest");
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- /* eslint-disable */
3
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
3
  if (k2 === undefined) k2 = k;
5
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -27,6 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
28
27
  };
29
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
+ /* eslint-disable */
30
30
  const toolbox = __importStar(require("gluegun"));
31
31
  const semver_1 = __importDefault(require("semver"));
32
32
  const load_manifest_1 = require("./util/load-manifest");
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- /* eslint-disable */
3
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
3
  if (k2 === undefined) k2 = k;
5
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -27,6 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
28
27
  };
29
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
+ /* eslint-disable */
30
30
  const toolbox = __importStar(require("gluegun"));
31
31
  const semver_1 = __importDefault(require("semver"));
32
32
  const load_manifest_1 = require("./util/load-manifest");
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- /* eslint-disable */
3
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
3
  if (k2 === undefined) k2 = k;
5
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -27,6 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
28
27
  };
29
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
+ /* eslint-disable */
30
30
  const toolbox = __importStar(require("gluegun"));
31
31
  const semver_1 = __importDefault(require("semver"));
32
32
  const load_manifest_1 = require("./util/load-manifest");
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- /* eslint-disable */
3
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
3
  if (k2 === undefined) k2 = k;
5
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -24,6 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
23
  return result;
25
24
  };
26
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
+ /* eslint-disable */
27
27
  const toolbox = __importStar(require("gluegun"));
28
28
  const load_manifest_1 = require("./util/load-manifest");
29
29
  // Spec version to 0.0.2 uses top level templates. graph-cli no longer supports
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- /* eslint-disable */
3
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
3
  if (k2 === undefined) k2 = k;
5
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -24,6 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
23
  return result;
25
24
  };
26
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
+ /* eslint-disable */
27
27
  const toolbox = __importStar(require("gluegun"));
28
28
  const load_manifest_1 = require("./util/load-manifest");
29
29
  // Spec version 0.0.4 uses feature management, but features are
@@ -29,7 +29,7 @@ const generatePlaceholderHandlers = ({ abi, events, contractName, }) => `
29
29
  entity.count = entity.count + BigInt.fromI32(1)
30
30
 
31
31
  // Entity fields can be set based on event parameters
32
- ${(0, mapping_1.generateEventFieldAssignments)(event).slice(0, 2).join('\n')}
32
+ ${(0, mapping_1.generateEventFieldAssignments)(event, contractName).slice(0, 2).join('\n')}
33
33
 
34
34
  // Entities can be written to the store with \`.save()\`
35
35
  entity.save()
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- /* eslint-disable */
3
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
3
  if (k2 === undefined) k2 = k;
5
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -69,7 +69,9 @@ dataSources:
69
69
  const hasEvents = this.protocol.hasEvents();
70
70
  const events = hasEvents ? (0, schema_1.abiEvents)(this.abi).toJS() : [];
71
71
  return prettier_1.default.format(hasEvents && this.indexEvents
72
- ? events.map((event) => (0, schema_1.generateEventType)(event, this.protocol.name)).join('\n\n')
72
+ ? events
73
+ .map((event) => (0, schema_1.generateEventType)(event, this.protocol.name, this.contractName))
74
+ .join('\n\n')
73
75
  : (0, schema_1.generateExampleEntityType)(this.protocol, events), {
74
76
  parser: 'graphql',
75
77
  });
@@ -25,15 +25,27 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.generateEventIndexingHandlers = exports.generateEventFieldAssignments = exports.generateFieldAssignments = exports.generateFieldAssignment = void 0;
27
27
  const util = __importStar(require("../codegen/util"));
28
- const generateFieldAssignment = (path) => `entity.${path.join('_')} = event.params.${path.join('.')}`;
28
+ const generateFieldAssignment = (key, value) => `entity.${key.join('_')} = event.params.${value.join('.')}`;
29
29
  exports.generateFieldAssignment = generateFieldAssignment;
30
30
  const generateFieldAssignments = ({ index, input }) => input.type === 'tuple'
31
31
  ? util
32
32
  .unrollTuple({ value: input, index, path: [input.name || `param${index}`] })
33
- .map(({ path }) => (0, exports.generateFieldAssignment)(path))
34
- : (0, exports.generateFieldAssignment)([input.name || `param${index}`]);
33
+ .map(({ path }) => (0, exports.generateFieldAssignment)(path, path))
34
+ : (0, exports.generateFieldAssignment)([(input.mappedName ?? input.name) || `param${index}`], [input.name || `param${index}`]);
35
35
  exports.generateFieldAssignments = generateFieldAssignments;
36
- const generateEventFieldAssignments = (event) => event.inputs.reduce((acc, input, index) => acc.concat((0, exports.generateFieldAssignments)({ input, index })), []);
36
+ const renameInput = (name, subgraphName) => {
37
+ const inputMap = {
38
+ id: `${subgraphName}_id`,
39
+ };
40
+ return inputMap[name] ?? name;
41
+ };
42
+ const generateEventFieldAssignments = (event, contractName) => event.inputs.reduce((acc, input, index) => {
43
+ const inputNamesBlacklist = ['id'];
44
+ if (inputNamesBlacklist.includes(input.name)) {
45
+ input.mappedName = renameInput(input.name, contractName ?? 'contract');
46
+ }
47
+ return acc.concat((0, exports.generateFieldAssignments)({ input, index }));
48
+ }, []);
37
49
  exports.generateEventFieldAssignments = generateEventFieldAssignments;
38
50
  const generateEventIndexingHandlers = (events, contractName) => `
39
51
  import { ${events.map(event => `${event._alias} as ${event._alias}Event`)}} from '../generated/${contractName}/${contractName}'
@@ -43,7 +55,7 @@ const generateEventIndexingHandlers = (events, contractName) => `
43
55
  .map(event => `
44
56
  export function handle${event._alias}(event: ${event._alias}Event): void {
45
57
  let entity = new ${event._alias}(event.transaction.hash.concatI32(event.logIndex.toI32()))
46
- ${(0, exports.generateEventFieldAssignments)(event).join('\n')}
58
+ ${(0, exports.generateEventFieldAssignments)(event, contractName).join('\n')}
47
59
 
48
60
  entity.blockNumber = event.block.number
49
61
  entity.blockTimestamp = event.block.timestamp
@@ -62,15 +62,29 @@ const generateEventFields = ({ index, input, protocolName, }) => input.type == '
62
62
  }),
63
63
  ];
64
64
  exports.generateEventFields = generateEventFields;
65
- const generateEventType = (event, protocolName) => `type ${event._alias} @entity(immutable: true) {
66
- id: Bytes!
67
- ${event.inputs
68
- .reduce((acc, input, index) => acc.concat((0, exports.generateEventFields)({ input, index, protocolName })), [])
69
- .join('\n')}
70
- blockNumber: BigInt!
71
- blockTimestamp: BigInt!
72
- transactionHash: Bytes!
73
- }`;
65
+ const renameInput = (name, subgraphName) => {
66
+ const inputMap = {
67
+ id: `${subgraphName}_id`,
68
+ };
69
+ return inputMap[name] ?? name;
70
+ };
71
+ const generateEventType = (event, protocolName, subgraphName) => {
72
+ const inputNamesBlacklist = ['id'];
73
+ return `type ${event._alias} @entity(immutable: true) {
74
+ id: Bytes!
75
+ ${event.inputs
76
+ .reduce((acc, input, index) => {
77
+ if (inputNamesBlacklist.includes(input.name)) {
78
+ input.name = renameInput(input.name, subgraphName ?? 'contract');
79
+ }
80
+ return acc.concat((0, exports.generateEventFields)({ input, index, protocolName }));
81
+ }, [])
82
+ .join('\n')}
83
+ blockNumber: BigInt!
84
+ blockTimestamp: BigInt!
85
+ transactionHash: Bytes!
86
+ }`;
87
+ };
74
88
  exports.generateEventType = generateEventType;
75
89
  const generateExampleEntityType = (protocol, events) => {
76
90
  if (protocol.hasABIs() && events.length > 0) {
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.45.0-alpha-20230330113700-1b45db7",
2
+ "version": "0.45.0-alpha-20230330173033-57c7de2",
3
3
  "commands": {
4
4
  "add": {
5
5
  "id": "add",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphprotocol/graph-cli",
3
- "version": "0.45.0-alpha-20230330113700-1b45db7",
3
+ "version": "0.45.0-alpha-20230330173033-57c7de2",
4
4
  "description": "CLI for building for and deploying to The Graph",
5
5
  "license": "(Apache-2.0 OR MIT)",
6
6
  "engines": {
@@ -23,7 +23,7 @@
23
23
  "assemblyscript": "0.19.23",
24
24
  "binary-install-raw": "0.0.13",
25
25
  "chalk": "3.0.0",
26
- "chokidar": "3.5.3",
26
+ "chokidar": "3.5.1",
27
27
  "debug": "4.3.1",
28
28
  "docker-compose": "0.23.4",
29
29
  "dockerode": "2.5.8",