Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/rare-falcons-cry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@graphprotocol/graph-cli': minor
---

Network validation for subgraph contract addresses
26 changes: 26 additions & 0 deletions packages/cli/src/commands/deploy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,32 @@ export default class DeployCommand extends Command {
const dataSourcesAndTemplates = await DataSourcesExtractor.fromFilePath(manifest);

protocol = Protocol.fromDataSources(dataSourcesAndTemplates);
for (const ds of dataSourcesAndTemplates.dataSources) {
const address = ds.source.address;
if (!address) continue;

try {
await client.request(
'eth_getTransactionCount',
[address, 'latest'],
(requestError, jsonRpcError, res) => {
if (jsonRpcError) {
const message = jsonRpcError?.message;
deployDebugger('message: %O', message);
} else if (requestError) {
deployDebugger('HTTP requestError: %O', requestError);
} else if (res === '0x0') {
print.warning(
`Warning: Contract ${address} does not appear to exist on network ${ds.network}. ` +
`Subgraph may index no events.`,
);
}
},
);
} catch (e) {
print.warning(`Could not check contract ${address}: ${e}`);
}
}
} catch (e) {
this.error(e, { exit: 1 });
}
Expand Down