Skip to content
5 changes: 5 additions & 0 deletions .changeset/heavy-socks-cross.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@graphprotocol/graph-cli': patch
---

Fix `graph add` flag parameters parsing
22 changes: 10 additions & 12 deletions packages/cli/src/commands/add.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,18 +79,9 @@ export default class AddCommand extends Command {
const registry = await loadRegistry();
const contractService = new ContractService(registry);

let startBlock = startBlockFlag;
let startBlock = startBlockFlag ? parseInt(startBlockFlag).toString() : startBlockFlag;
let contractName = contractNameFlag;

const entities = getEntities(manifest);
const contractNames = getContractNames(manifest);
if (contractNames.includes(contractName)) {
this.error(
`Datasource or template with name ${contractName} already exists, please choose a different name.`,
{ exit: 1 },
);
}

let ethabi = null;
if (abi) {
ethabi = EthereumABI.load(contractName, abi);
Expand Down Expand Up @@ -139,7 +130,6 @@ export default class AddCommand extends Command {

try {
if (isLocalHost) throw Error; // Triggers user prompting without waiting for Etherscan lookup to fail

startBlock ||= Number(await contractService?.getStartBlock(network, address)).toString();
} catch (error) {
// we cannot ask user to do prompt in test environment
Expand All @@ -163,7 +153,6 @@ export default class AddCommand extends Command {

try {
if (isLocalHost) throw Error; // Triggers user prompting without waiting for Etherscan lookup to fail

contractName = (await contractService?.getContractName(network, address)) ?? '';
} catch (error) {
// not asking user to do prompt in test environment
Expand All @@ -184,6 +173,15 @@ export default class AddCommand extends Command {
}
}

const entities = getEntities(manifest);
const contractNames = getContractNames(manifest);
if (contractNames.includes(contractName)) {
this.error(
`Datasource or template with name ${contractName} already exists, please choose a different name.`,
{ exit: 1 },
);
}

await writeABI(ethabi, contractName);

const { collisionEntities, onlyCollisions, abiData } = updateEventNamesOnCollision(
Expand Down
2 changes: 2 additions & 0 deletions packages/cli/tests/cli/add.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ describe('Add command', () => {
'0x2E645469f354BB4F5c8a05B3b30A929361cf77eC',
'--contract-name',
'Gravatar',
'--start-block',
'6175244',
'--abi',
`${EXAMPLE_SUBGRAPH_PATH}/abis/Gravity.json`,
],
Expand Down
1 change: 1 addition & 0 deletions packages/cli/tests/cli/add/expected/subgraph.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ dataSources:
source:
address: "0x2E645469f354BB4F5c8a05B3b30A929361cf77eC"
abi: Gravatar
startBlock: 6175244
mapping:
kind: ethereum/events
apiVersion: 0.0.7
Expand Down
6 changes: 1 addition & 5 deletions renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,7 @@
"rebaseWhen": "conflicted",
"packageRules": [
{
"excludePackagePatterns": [
"typescript",
"typedoc*",
"^@theguild/"
],
"excludePackagePatterns": ["typescript", "typedoc*", "^@theguild/"],
"matchPackagePatterns": ["*"],
"matchUpdateTypes": ["minor", "patch"],
"groupName": "all non-major dependencies",
Expand Down
Loading