@graphprotocol/graph-cli 0.37.3 → 0.37.4
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 +8 -0
- package/package.json +5 -1
- package/babel.config.js +0 -3
- package/jest.config.js +0 -175
- package/src/bin.ts +0 -6
- package/src/cli.ts +0 -30
- package/src/codegen/schema.test.ts +0 -460
- package/src/codegen/schema.ts +0 -299
- package/src/codegen/template.ts +0 -45
- package/src/codegen/types/conversions.ts +0 -358
- package/src/codegen/types/index.test.ts +0 -715
- package/src/codegen/types/index.ts +0 -111
- package/src/codegen/typescript.ts +0 -224
- package/src/codegen/util.test.ts +0 -112
- package/src/codegen/util.ts +0 -54
- package/src/command-helpers/abi.ts +0 -99
- package/src/command-helpers/auth.ts +0 -46
- package/src/command-helpers/compiler.ts +0 -60
- package/src/command-helpers/data-sources.ts +0 -36
- package/src/command-helpers/fs.ts +0 -5
- package/src/command-helpers/gluegun.ts +0 -52
- package/src/command-helpers/ipfs-http-client.d.ts +0 -1
- package/src/command-helpers/ipfs.ts +0 -3
- package/src/command-helpers/jsonrpc.ts +0 -22
- package/src/command-helpers/network.test.ts +0 -85
- package/src/command-helpers/network.ts +0 -133
- package/src/command-helpers/node.ts +0 -46
- package/src/command-helpers/scaffold.ts +0 -174
- package/src/command-helpers/spinner.ts +0 -60
- package/src/command-helpers/studio.test.ts +0 -84
- package/src/command-helpers/studio.ts +0 -25
- package/src/command-helpers/subgraph.ts +0 -21
- package/src/command-helpers/version.test.ts +0 -241
- package/src/command-helpers/version.ts +0 -53
- package/src/commands/add.ts +0 -220
- package/src/commands/auth.ts +0 -138
- package/src/commands/binary-install-raw.d.ts +0 -1
- package/src/commands/build.ts +0 -147
- package/src/commands/codegen.ts +0 -123
- package/src/commands/create.ts +0 -109
- package/src/commands/deploy.ts +0 -388
- package/src/commands/init.ts +0 -1060
- package/src/commands/local.ts +0 -539
- package/src/commands/remove.ts +0 -110
- package/src/commands/test.ts +0 -369
- package/src/compiler/asc.ts +0 -77
- package/src/compiler/index.ts +0 -677
- package/src/debug.ts +0 -15
- package/src/migrations/mapping_api_version_0_0_1.ts +0 -75
- package/src/migrations/mapping_api_version_0_0_2.ts +0 -75
- package/src/migrations/mapping_api_version_0_0_3.ts +0 -75
- package/src/migrations/mapping_api_version_0_0_4.ts +0 -77
- package/src/migrations/mapping_api_version_0_0_5.ts +0 -77
- package/src/migrations/spec_version_0_0_2.ts +0 -24
- package/src/migrations/spec_version_0_0_3.ts +0 -29
- package/src/migrations/util/load-manifest.ts +0 -10
- package/src/migrations/util/versions.ts +0 -27
- package/src/migrations.ts +0 -33
- package/src/protocols/arweave/manifest.graphql +0 -57
- package/src/protocols/arweave/scaffold/manifest.ts +0 -14
- package/src/protocols/arweave/scaffold/mapping.ts +0 -49
- package/src/protocols/arweave/subgraph.ts +0 -22
- package/src/protocols/contract.ts +0 -9
- package/src/protocols/cosmos/manifest.graphql +0 -76
- package/src/protocols/cosmos/scaffold/manifest.ts +0 -11
- package/src/protocols/cosmos/scaffold/mapping.ts +0 -35
- package/src/protocols/cosmos/subgraph.ts +0 -27
- package/src/protocols/ethereum/abi.ts +0 -153
- package/src/protocols/ethereum/codegen/abi.test.ts +0 -330
- package/src/protocols/ethereum/codegen/abi.ts +0 -719
- package/src/protocols/ethereum/codegen/template.ts +0 -41
- package/src/protocols/ethereum/contract.ts +0 -24
- package/src/protocols/ethereum/manifest.graphql +0 -94
- package/src/protocols/ethereum/scaffold/manifest.ts +0 -28
- package/src/protocols/ethereum/scaffold/mapping.ts +0 -76
- package/src/protocols/ethereum/subgraph.ts +0 -189
- package/src/protocols/ethereum/type-generator.ts +0 -191
- package/src/protocols/index.ts +0 -287
- package/src/protocols/ipfs/codegen/file_template.ts +0 -43
- package/src/protocols/near/contract.ts +0 -47
- package/src/protocols/near/manifest.graphql +0 -64
- package/src/protocols/near/scaffold/manifest.ts +0 -13
- package/src/protocols/near/scaffold/mapping.ts +0 -35
- package/src/protocols/near/subgraph.ts +0 -22
- package/src/protocols/subgraph.ts +0 -12
- package/src/protocols/substreams/manifest.graphql +0 -45
- package/src/protocols/substreams/scaffold/manifest.ts +0 -8
- package/src/protocols/substreams/subgraph.ts +0 -22
- package/src/scaffold/cosmos.test.ts +0 -83
- package/src/scaffold/ethereum.test.ts +0 -512
- package/src/scaffold/index.ts +0 -172
- package/src/scaffold/mapping.ts +0 -44
- package/src/scaffold/near.test.ts +0 -86
- package/src/scaffold/schema.ts +0 -89
- package/src/scaffold/tests.ts +0 -217
- package/src/schema.ts +0 -26
- package/src/subgraph.ts +0 -302
- package/src/type-generator.ts +0 -266
- package/src/validation/contract.ts +0 -51
- package/src/validation/index.ts +0 -5
- package/src/validation/manifest.ts +0 -360
- package/src/validation/schema.test.ts +0 -38
- package/src/validation/schema.ts +0 -957
- package/src/watcher.ts +0 -96
- package/tests/cli/globalSetup.ts +0 -8
- package/tests/cli/globalTeardown.ts +0 -8
- package/tests/cli/init/ethereum/abis/Marketplace.json +0 -408
- package/tests/cli/init/ethereum/abis/OverloadedElements.json +0 -91
- package/tests/cli/init/ethereum/abis/SoloMargin.json +0 -2729
- package/tests/cli/init/ethereum/from-contract-with-abi-and-structs.stderr +0 -14
- package/tests/cli/init/ethereum/from-contract-with-abi-and-structs.stdout +0 -12
- package/tests/cli/init/ethereum/from-contract-with-abi.stderr +0 -14
- package/tests/cli/init/ethereum/from-contract-with-abi.stdout +0 -12
- package/tests/cli/init/ethereum/from-contract-with-overloaded-elements.stderr +0 -14
- package/tests/cli/init/ethereum/from-contract-with-overloaded-elements.stdout +0 -12
- package/tests/cli/init/ethereum/from-contract.stderr +0 -16
- package/tests/cli/init/ethereum/from-contract.stdout +0 -12
- package/tests/cli/init/ethereum/from-example.stderr +0 -12
- package/tests/cli/init/ethereum/from-example.stdout +0 -12
- package/tests/cli/init/near/from-contract.stderr +0 -14
- package/tests/cli/init/near/from-contract.stdout +0 -12
- package/tests/cli/init.test.ts +0 -157
- package/tests/cli/spawn-command.d.ts +0 -7
- package/tests/cli/util.ts +0 -132
- package/tests/cli/validation/abi-not-found/Abi.json +0 -7
- package/tests/cli/validation/abi-not-found/mapping.ts +0 -0
- package/tests/cli/validation/abi-not-found/schema.graphql +0 -3
- package/tests/cli/validation/abi-not-found/subgraph.yaml +0 -42
- package/tests/cli/validation/abi-not-found copy.stderr +0 -13
- package/tests/cli/validation/big-decimal-is-valid/Abi.json +0 -7
- package/tests/cli/validation/big-decimal-is-valid/mapping.ts +0 -0
- package/tests/cli/validation/big-decimal-is-valid/schema.graphql +0 -4
- package/tests/cli/validation/big-decimal-is-valid/subgraph.yaml +0 -23
- package/tests/cli/validation/call-function-not-found/Abi.json +0 -57
- package/tests/cli/validation/call-function-not-found/mapping.ts +0 -0
- package/tests/cli/validation/call-function-not-found/schema.graphql +0 -3
- package/tests/cli/validation/call-function-not-found/subgraph.yaml +0 -22
- package/tests/cli/validation/call-function-not-found.stderr +0 -10
- package/tests/cli/validation/call-handler-with-tuple/Abi.json +0 -24
- package/tests/cli/validation/call-handler-with-tuple/generated/schema.ts +0 -44
- package/tests/cli/validation/call-handler-with-tuple/mapping.ts +0 -0
- package/tests/cli/validation/call-handler-with-tuple/schema.graphql +0 -3
- package/tests/cli/validation/call-handler-with-tuple/subgraph.yaml +0 -22
- package/tests/cli/validation/call-handler-with-tuple.stderr +0 -24
- package/tests/cli/validation/conflicting-network-names/Abi.json +0 -7
- package/tests/cli/validation/conflicting-network-names/mapping.ts +0 -0
- package/tests/cli/validation/conflicting-network-names/schema.graphql +0 -3
- package/tests/cli/validation/conflicting-network-names/subgraph.yaml +0 -41
- package/tests/cli/validation/conflicting-network-names.stderr +0 -10
- package/tests/cli/validation/conflicting-protocol-names/Abi.json +0 -7
- package/tests/cli/validation/conflicting-protocol-names/mapping.ts +0 -0
- package/tests/cli/validation/conflicting-protocol-names/schema.graphql +0 -3
- package/tests/cli/validation/conflicting-protocol-names/subgraph.yaml +0 -41
- package/tests/cli/validation/conflicting-protocol-names.stderr +0 -10
- package/tests/cli/validation/derived-from-target-type-missing/Abi.json +0 -6
- package/tests/cli/validation/derived-from-target-type-missing/mapping.ts +0 -0
- package/tests/cli/validation/derived-from-target-type-missing/schema.graphql +0 -4
- package/tests/cli/validation/derived-from-target-type-missing/subgraph.yaml +0 -22
- package/tests/cli/validation/derived-from-target-type-missing.stderr +0 -5
- package/tests/cli/validation/derived-from-with-interface/Gravity.json +0 -1
- package/tests/cli/validation/derived-from-with-interface/mapping.ts +0 -22
- package/tests/cli/validation/derived-from-with-interface/schema.graphql +0 -19
- package/tests/cli/validation/derived-from-with-interface/subgraph.yaml +0 -25
- package/tests/cli/validation/duplicate-data-source-name/Abi.json +0 -7
- package/tests/cli/validation/duplicate-data-source-name/mapping.ts +0 -0
- package/tests/cli/validation/duplicate-data-source-name/schema.graphql +0 -4
- package/tests/cli/validation/duplicate-data-source-name/subgraph.yaml +0 -40
- package/tests/cli/validation/duplicate-data-source-name.stderr +0 -5
- package/tests/cli/validation/duplicate-template-name/Abi.json +0 -7
- package/tests/cli/validation/duplicate-template-name/mapping.ts +0 -0
- package/tests/cli/validation/duplicate-template-name/schema.graphql +0 -4
- package/tests/cli/validation/duplicate-template-name/subgraph.yaml +0 -59
- package/tests/cli/validation/duplicate-template-name.stderr +0 -5
- package/tests/cli/validation/entity-field-args/Abi.json +0 -7
- package/tests/cli/validation/entity-field-args/mapping.ts +0 -0
- package/tests/cli/validation/entity-field-args/schema.graphql +0 -4
- package/tests/cli/validation/entity-field-args/subgraph.yaml +0 -22
- package/tests/cli/validation/entity-field-args.stderr +0 -5
- package/tests/cli/validation/ethereum-contract-without-handlers/Abi.json +0 -7
- package/tests/cli/validation/ethereum-contract-without-handlers/mapping.ts +0 -0
- package/tests/cli/validation/ethereum-contract-without-handlers/schema.graphql +0 -3
- package/tests/cli/validation/ethereum-contract-without-handlers/subgraph.yaml +0 -19
- package/tests/cli/validation/ethereum-contract-without-handlers.stderr +0 -6
- package/tests/cli/validation/event-not-found/Abi.json +0 -7
- package/tests/cli/validation/event-not-found/mapping.ts +0 -0
- package/tests/cli/validation/event-not-found/schema.graphql +0 -3
- package/tests/cli/validation/event-not-found/subgraph.yaml +0 -40
- package/tests/cli/validation/event-not-found.stderr +0 -12
- package/tests/cli/validation/example-values-found/Abi.json +0 -7
- package/tests/cli/validation/example-values-found/generated/ExampleSubgraph/ExampleContract.ts +0 -35
- package/tests/cli/validation/example-values-found/generated/schema.ts +0 -44
- package/tests/cli/validation/example-values-found/mapping.ts +0 -0
- package/tests/cli/validation/example-values-found/schema.graphql +0 -3
- package/tests/cli/validation/example-values-found/subgraph.yaml +0 -24
- package/tests/cli/validation/example-values-found.stderr +0 -34
- package/tests/cli/validation/invalid-abis/InvalidAbi.json +0 -1
- package/tests/cli/validation/invalid-abis/mapping.ts +0 -0
- package/tests/cli/validation/invalid-abis/schema.graphql +0 -3
- package/tests/cli/validation/invalid-abis/subgraph.yaml +0 -22
- package/tests/cli/validation/invalid-abis.stderr +0 -5
- package/tests/cli/validation/invalid-contract-addresses/Abi.json +0 -7
- package/tests/cli/validation/invalid-contract-addresses/mapping.ts +0 -0
- package/tests/cli/validation/invalid-contract-addresses/schema.graphql +0 -3
- package/tests/cli/validation/invalid-contract-addresses/subgraph.yaml +0 -58
- package/tests/cli/validation/invalid-contract-addresses.stderr +0 -14
- package/tests/cli/validation/invalid-data-source-template/mapping.ts +0 -0
- package/tests/cli/validation/invalid-data-source-template/schema.graphql +0 -3
- package/tests/cli/validation/invalid-data-source-template/subgraph.yaml +0 -32
- package/tests/cli/validation/invalid-data-source-template.stderr +0 -30
- package/tests/cli/validation/invalid-entity-field-types/Abi.json +0 -7
- package/tests/cli/validation/invalid-entity-field-types/mapping.ts +0 -0
- package/tests/cli/validation/invalid-entity-field-types/schema.graphql +0 -157
- package/tests/cli/validation/invalid-entity-field-types/subgraph.yaml +0 -22
- package/tests/cli/validation/invalid-entity-field-types.stderr +0 -148
- package/tests/cli/validation/invalid-fulltext-directive/Abi.json +0 -7
- package/tests/cli/validation/invalid-fulltext-directive/mapping.ts +0 -0
- package/tests/cli/validation/invalid-fulltext-directive/schema.graphql +0 -140
- package/tests/cli/validation/invalid-fulltext-directive/subgraph.yaml +0 -22
- package/tests/cli/validation/invalid-fulltext-directive.stderr +0 -32
- package/tests/cli/validation/invalid-graphql-schema/Abi.json +0 -7
- package/tests/cli/validation/invalid-graphql-schema/mapping.ts +0 -0
- package/tests/cli/validation/invalid-graphql-schema/schema.graphql +0 -8
- package/tests/cli/validation/invalid-graphql-schema/subgraph.yaml +0 -22
- package/tests/cli/validation/invalid-graphql-schema.stderr +0 -25
- package/tests/cli/validation/invalid-manifest/subgraph.yaml +0 -13
- package/tests/cli/validation/invalid-manifest-cannot-infer-protocol/subgraph.yaml +0 -12
- package/tests/cli/validation/invalid-manifest-cannot-infer-protocol.stderr +0 -5
- package/tests/cli/validation/invalid-manifest.stderr +0 -28
- package/tests/cli/validation/missing-entity-id/Abi.json +0 -7
- package/tests/cli/validation/missing-entity-id/mapping.ts +0 -0
- package/tests/cli/validation/missing-entity-id/schema.graphql +0 -3
- package/tests/cli/validation/missing-entity-id/subgraph.yaml +0 -22
- package/tests/cli/validation/missing-entity-id/types/ExampleSubgraph/ExampleContract.ts +0 -35
- package/tests/cli/validation/missing-entity-id/types/schema.ts +0 -27
- package/tests/cli/validation/missing-entity-id.stderr +0 -5
- package/tests/cli/validation/missing-or-invalid-derived-from-fields/Abi.json +0 -7
- package/tests/cli/validation/missing-or-invalid-derived-from-fields/mapping.ts +0 -0
- package/tests/cli/validation/missing-or-invalid-derived-from-fields/schema.graphql +0 -40
- package/tests/cli/validation/missing-or-invalid-derived-from-fields/subgraph.yaml +0 -22
- package/tests/cli/validation/missing-or-invalid-derived-from-fields.stderr +0 -10
- package/tests/cli/validation/missing-or-invalid-derived-from-fields.stdout +0 -0
- package/tests/cli/validation/near-is-valid/mapping.ts +0 -0
- package/tests/cli/validation/near-is-valid/schema.graphql +0 -8
- package/tests/cli/validation/near-is-valid/subgraph.yaml +0 -30
- package/tests/cli/validation/nested-template-nice-error/Abi.json +0 -7
- package/tests/cli/validation/nested-template-nice-error/mapping.ts +0 -0
- package/tests/cli/validation/nested-template-nice-error/schema.graphql +0 -3
- package/tests/cli/validation/nested-template-nice-error/subgraph.yaml +0 -35
- package/tests/cli/validation/nested-template-nice-error.stderr +0 -5
- package/tests/cli/validation/no-network-names/Abi.json +0 -7
- package/tests/cli/validation/no-network-names/mapping.ts +0 -0
- package/tests/cli/validation/no-network-names/schema.graphql +0 -3
- package/tests/cli/validation/no-network-names/subgraph.yaml +0 -40
- package/tests/cli/validation/no-network-names.stderr +0 -34
- package/tests/cli/validation/source-without-address-is-valid/Abi.json +0 -7
- package/tests/cli/validation/source-without-address-is-valid/generated/ExampleSubgraph/ExampleContract.ts +0 -35
- package/tests/cli/validation/source-without-address-is-valid/mapping.ts +0 -0
- package/tests/cli/validation/source-without-address-is-valid/schema.graphql +0 -3
- package/tests/cli/validation/source-without-address-is-valid/subgraph.yaml +0 -23
- package/tests/cli/validation/source-without-address-is-valid.stderr +0 -24
- package/tests/cli/validation/topic0-is-valid/Abi.json +0 -7
- package/tests/cli/validation/topic0-is-valid/mapping.ts +0 -0
- package/tests/cli/validation/topic0-is-valid/schema.graphql +0 -4
- package/tests/cli/validation/topic0-is-valid/subgraph.yaml +0 -24
- package/tests/cli/validation.test.ts +0 -226
- package/tsconfig.build.json +0 -4
- package/tsconfig.json +0 -19
package/src/commands/auth.ts
DELETED
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { GluegunToolbox } from 'gluegun';
|
|
3
|
-
import { saveDeployKey } from '../command-helpers/auth';
|
|
4
|
-
import { fixParameters } from '../command-helpers/gluegun';
|
|
5
|
-
import { chooseNodeUrl } from '../command-helpers/node';
|
|
6
|
-
|
|
7
|
-
const HELP = `
|
|
8
|
-
${chalk.bold('graph auth')} [options] ${chalk.bold('<node>')} ${chalk.bold('<deploy-key>')}
|
|
9
|
-
|
|
10
|
-
${chalk.dim('Options:')}
|
|
11
|
-
|
|
12
|
-
--product <subgraph-studio|hosted-service>
|
|
13
|
-
Selects the product for which to authenticate
|
|
14
|
-
--studio Shortcut for --product subgraph-studio
|
|
15
|
-
-h, --help Show usage information
|
|
16
|
-
`;
|
|
17
|
-
|
|
18
|
-
export interface AuthOptions {
|
|
19
|
-
product?: 'subgraph-studio' | 'hosted-service';
|
|
20
|
-
studio?: boolean;
|
|
21
|
-
help?: boolean;
|
|
22
|
-
// not a cli arg
|
|
23
|
-
node?: string;
|
|
24
|
-
deployKey?: string;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const processForm = async (
|
|
28
|
-
toolbox: GluegunToolbox,
|
|
29
|
-
{ product, studio, node, deployKey }: AuthOptions,
|
|
30
|
-
) => {
|
|
31
|
-
const questions = [
|
|
32
|
-
{
|
|
33
|
-
type: 'select',
|
|
34
|
-
name: 'product',
|
|
35
|
-
message: 'Product for which to initialize',
|
|
36
|
-
choices: ['subgraph-studio', 'hosted-service'],
|
|
37
|
-
skip:
|
|
38
|
-
product === 'subgraph-studio' ||
|
|
39
|
-
product === 'hosted-service' ||
|
|
40
|
-
studio !== undefined ||
|
|
41
|
-
node !== undefined,
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
type: 'password',
|
|
45
|
-
name: 'deployKey',
|
|
46
|
-
message: 'Deploy key',
|
|
47
|
-
skip: deployKey !== undefined,
|
|
48
|
-
},
|
|
49
|
-
];
|
|
50
|
-
|
|
51
|
-
try {
|
|
52
|
-
const answers = await toolbox.prompt.ask(questions);
|
|
53
|
-
return answers;
|
|
54
|
-
} catch (e) {
|
|
55
|
-
return undefined;
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
export default {
|
|
60
|
-
description: 'Sets the deploy key to use when deploying to a Graph node',
|
|
61
|
-
run: async (toolbox: GluegunToolbox) => {
|
|
62
|
-
// Obtain tools
|
|
63
|
-
const { print } = toolbox;
|
|
64
|
-
|
|
65
|
-
// Read CLI parameters
|
|
66
|
-
const { product, studio, h, help } = toolbox.parameters.options;
|
|
67
|
-
|
|
68
|
-
// Show help text if requested
|
|
69
|
-
if (help || h) {
|
|
70
|
-
print.info(HELP);
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
let firstParam: string, secondParam: string;
|
|
75
|
-
try {
|
|
76
|
-
[firstParam, secondParam] = fixParameters(toolbox.parameters, {
|
|
77
|
-
h,
|
|
78
|
-
help,
|
|
79
|
-
studio,
|
|
80
|
-
});
|
|
81
|
-
} catch (e) {
|
|
82
|
-
print.error(e.message);
|
|
83
|
-
process.exitCode = 1;
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// if user specifies --product or --studio then deployKey is the first parameter
|
|
88
|
-
let node: string | undefined;
|
|
89
|
-
let deployKey;
|
|
90
|
-
if (product || studio) {
|
|
91
|
-
({ node } = chooseNodeUrl({ product, studio, node }));
|
|
92
|
-
deployKey = firstParam;
|
|
93
|
-
} else {
|
|
94
|
-
node = firstParam;
|
|
95
|
-
deployKey = secondParam;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
if (!node || !deployKey) {
|
|
99
|
-
const inputs = await processForm(toolbox, {
|
|
100
|
-
product,
|
|
101
|
-
studio,
|
|
102
|
-
node,
|
|
103
|
-
deployKey,
|
|
104
|
-
});
|
|
105
|
-
if (inputs === undefined) {
|
|
106
|
-
process.exit(1);
|
|
107
|
-
}
|
|
108
|
-
if (!node) {
|
|
109
|
-
({ node } = chooseNodeUrl({
|
|
110
|
-
product: inputs.product,
|
|
111
|
-
studio,
|
|
112
|
-
node,
|
|
113
|
-
}));
|
|
114
|
-
}
|
|
115
|
-
deployKey ||= inputs.deployKey;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
if (!deployKey) {
|
|
119
|
-
print.error(`No deploy key provided`);
|
|
120
|
-
print.info(HELP);
|
|
121
|
-
process.exitCode = 1;
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
if (deployKey.length > 200) {
|
|
125
|
-
print.error(`Deploy key must not exceed 200 characters`);
|
|
126
|
-
process.exitCode = 1;
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
try {
|
|
131
|
-
await saveDeployKey(node!, deployKey);
|
|
132
|
-
print.success(`Deploy key set for ${node}`);
|
|
133
|
-
} catch (e) {
|
|
134
|
-
print.error(e);
|
|
135
|
-
process.exitCode = 1;
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
declare module 'binary-install-raw';
|
package/src/commands/build.ts
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { GluegunToolbox } from 'gluegun';
|
|
3
|
-
import { createCompiler } from '../command-helpers/compiler';
|
|
4
|
-
import * as DataSourcesExtractor from '../command-helpers/data-sources';
|
|
5
|
-
import { fixParameters } from '../command-helpers/gluegun';
|
|
6
|
-
import { updateSubgraphNetwork } from '../command-helpers/network';
|
|
7
|
-
import debug from '../debug';
|
|
8
|
-
import Protocol from '../protocols';
|
|
9
|
-
|
|
10
|
-
const buildDebug = debug('graph-cli:build');
|
|
11
|
-
|
|
12
|
-
const HELP = `
|
|
13
|
-
${chalk.bold('graph build')} [options] ${chalk.bold('[<subgraph-manifest>]')}
|
|
14
|
-
|
|
15
|
-
Options:
|
|
16
|
-
|
|
17
|
-
-h, --help Show usage information
|
|
18
|
-
-i, --ipfs <node> Upload build results to an IPFS node
|
|
19
|
-
-o, --output-dir <path> Output directory for build results (default: build/)
|
|
20
|
-
-t, --output-format <format> Output format for mappings (wasm, wast) (default: wasm)
|
|
21
|
-
--skip-migrations Skip subgraph migrations (default: false)
|
|
22
|
-
-w, --watch Regenerate types when subgraph files change (default: false)
|
|
23
|
-
--network <name> Network configuration to use from the networks config file
|
|
24
|
-
--network-file <path> Networks config file path (default: "./networks.json")
|
|
25
|
-
`;
|
|
26
|
-
|
|
27
|
-
export interface BuildOptions {
|
|
28
|
-
help?: boolean;
|
|
29
|
-
ipfs?: string;
|
|
30
|
-
outputDir?: string;
|
|
31
|
-
outputFormat?: string;
|
|
32
|
-
skipMigrations?: boolean;
|
|
33
|
-
watch?: boolean;
|
|
34
|
-
network?: string;
|
|
35
|
-
networkFile?: string;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export default {
|
|
39
|
-
description: 'Builds a subgraph and (optionally) uploads it to IPFS',
|
|
40
|
-
run: async (toolbox: GluegunToolbox) => {
|
|
41
|
-
// Obtain tools
|
|
42
|
-
const { filesystem, print } = toolbox;
|
|
43
|
-
|
|
44
|
-
// Parse CLI parameters
|
|
45
|
-
let {
|
|
46
|
-
i,
|
|
47
|
-
h,
|
|
48
|
-
help,
|
|
49
|
-
ipfs,
|
|
50
|
-
o,
|
|
51
|
-
outputDir,
|
|
52
|
-
outputFormat,
|
|
53
|
-
skipMigrations,
|
|
54
|
-
t,
|
|
55
|
-
w,
|
|
56
|
-
watch,
|
|
57
|
-
network,
|
|
58
|
-
networkFile,
|
|
59
|
-
} = toolbox.parameters.options;
|
|
60
|
-
|
|
61
|
-
// Support both short and long option variants
|
|
62
|
-
help ||= h;
|
|
63
|
-
ipfs ||= i;
|
|
64
|
-
outputDir ||= o;
|
|
65
|
-
outputFormat ||= t;
|
|
66
|
-
watch ||= w;
|
|
67
|
-
|
|
68
|
-
let manifest;
|
|
69
|
-
try {
|
|
70
|
-
[manifest] = fixParameters(toolbox.parameters, {
|
|
71
|
-
h,
|
|
72
|
-
help,
|
|
73
|
-
w,
|
|
74
|
-
watch,
|
|
75
|
-
});
|
|
76
|
-
} catch (e) {
|
|
77
|
-
print.error(e.message);
|
|
78
|
-
process.exitCode = 1;
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// Fall back to default values for options / parameters
|
|
83
|
-
outputFormat = outputFormat && ['wasm', 'wast'].includes(outputFormat) ? outputFormat : 'wasm';
|
|
84
|
-
outputDir = outputDir && outputDir !== '' ? outputDir : filesystem.path('build');
|
|
85
|
-
manifest =
|
|
86
|
-
manifest !== undefined && manifest !== '' ? manifest : filesystem.resolve('subgraph.yaml');
|
|
87
|
-
networkFile =
|
|
88
|
-
networkFile !== undefined && networkFile !== ''
|
|
89
|
-
? networkFile
|
|
90
|
-
: filesystem.resolve('networks.json');
|
|
91
|
-
|
|
92
|
-
// Show help text if requested
|
|
93
|
-
if (help) {
|
|
94
|
-
print.info(HELP);
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
let protocol;
|
|
99
|
-
try {
|
|
100
|
-
const dataSourcesAndTemplates = await DataSourcesExtractor.fromFilePath(manifest);
|
|
101
|
-
|
|
102
|
-
protocol = Protocol.fromDataSources(dataSourcesAndTemplates);
|
|
103
|
-
} catch (e) {
|
|
104
|
-
print.error(e.message);
|
|
105
|
-
process.exitCode = 1;
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
buildDebug('Detected protocol "%s" (%o)', protocol.name, protocol);
|
|
110
|
-
|
|
111
|
-
if (network && filesystem.exists(networkFile) !== 'file') {
|
|
112
|
-
print.error(`Network file '${networkFile}' does not exists or is not a file!`);
|
|
113
|
-
process.exitCode = 1;
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
if (network) {
|
|
118
|
-
const identifierName = protocol.getContract()!.identifierName();
|
|
119
|
-
await updateSubgraphNetwork(toolbox, manifest, network, networkFile, identifierName);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
const compiler = createCompiler(manifest, {
|
|
123
|
-
ipfs,
|
|
124
|
-
outputDir,
|
|
125
|
-
outputFormat,
|
|
126
|
-
skipMigrations,
|
|
127
|
-
protocol,
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
// Exit with an error code if the compiler couldn't be created
|
|
131
|
-
if (!compiler) {
|
|
132
|
-
process.exitCode = 1;
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
// Watch subgraph files for changes or additions, trigger
|
|
137
|
-
// compile (if watch argument specified)
|
|
138
|
-
if (watch) {
|
|
139
|
-
await compiler.watchAndCompile();
|
|
140
|
-
} else {
|
|
141
|
-
const result = await compiler.compile();
|
|
142
|
-
if (result === false) {
|
|
143
|
-
process.exitCode = 1;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
},
|
|
147
|
-
};
|
package/src/commands/codegen.ts
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import { GluegunToolbox } from 'gluegun';
|
|
4
|
-
import * as DataSourcesExtractor from '../command-helpers/data-sources';
|
|
5
|
-
import { fixParameters } from '../command-helpers/gluegun';
|
|
6
|
-
import { assertGraphTsVersion, assertManifestApiVersion } from '../command-helpers/version';
|
|
7
|
-
import debug from '../debug';
|
|
8
|
-
import Protocol from '../protocols';
|
|
9
|
-
import TypeGenerator from '../type-generator';
|
|
10
|
-
|
|
11
|
-
const HELP = `
|
|
12
|
-
${chalk.bold('graph codegen')} [options] ${chalk.bold('[<subgraph-manifest>]')}
|
|
13
|
-
Options:
|
|
14
|
-
-h, --help Show usage information
|
|
15
|
-
-o, --output-dir <path> Output directory for generated types (default: generated/)
|
|
16
|
-
--skip-migrations Skip subgraph migrations (default: false)
|
|
17
|
-
-w, --watch Regenerate types when subgraph files change (default: false)
|
|
18
|
-
-u, --uncrashable Generate Float Subgraph Uncrashable helper file
|
|
19
|
-
-uc, --uncrashable-config <path> Directory for uncrashable config (default: ./uncrashable-config.yaml)
|
|
20
|
-
`;
|
|
21
|
-
|
|
22
|
-
export interface CodeGenOptions {
|
|
23
|
-
help?: boolean;
|
|
24
|
-
outputDir?: string;
|
|
25
|
-
skipMigrations?: boolean;
|
|
26
|
-
watch?: boolean;
|
|
27
|
-
uncrashable?: boolean;
|
|
28
|
-
uncrashableConfig?: string;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const codegenDebug = debug('graph-cli:codegen');
|
|
32
|
-
|
|
33
|
-
export default {
|
|
34
|
-
description: 'Generates AssemblyScript types for a subgraph',
|
|
35
|
-
run: async (toolbox: GluegunToolbox) => {
|
|
36
|
-
// Obtain tools
|
|
37
|
-
const { filesystem, print } = toolbox;
|
|
38
|
-
|
|
39
|
-
// Read CLI parameters
|
|
40
|
-
let { h, help, o, outputDir, skipMigrations, w, watch, u, uncrashable, uc, uncrashableConfig } =
|
|
41
|
-
toolbox.parameters.options;
|
|
42
|
-
|
|
43
|
-
// Support both long and short option variants
|
|
44
|
-
help ||= h;
|
|
45
|
-
outputDir ||= o;
|
|
46
|
-
watch ||= w;
|
|
47
|
-
uncrashable ||= u;
|
|
48
|
-
let uncrashable_config = uncrashableConfig || uc;
|
|
49
|
-
|
|
50
|
-
let manifest;
|
|
51
|
-
try {
|
|
52
|
-
[manifest] = fixParameters(toolbox.parameters, {
|
|
53
|
-
h,
|
|
54
|
-
help,
|
|
55
|
-
skipMigrations,
|
|
56
|
-
w,
|
|
57
|
-
watch,
|
|
58
|
-
u,
|
|
59
|
-
uncrashable,
|
|
60
|
-
});
|
|
61
|
-
} catch (e) {
|
|
62
|
-
print.error(e.message);
|
|
63
|
-
process.exitCode = 1;
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
codegenDebug('Initialized codegen manifest: %o', manifest);
|
|
68
|
-
|
|
69
|
-
// Fall back to default values for options / parameters
|
|
70
|
-
outputDir =
|
|
71
|
-
outputDir !== undefined && outputDir !== '' ? outputDir : filesystem.path('generated');
|
|
72
|
-
manifest =
|
|
73
|
-
manifest !== undefined && manifest !== '' ? manifest : filesystem.resolve('subgraph.yaml');
|
|
74
|
-
|
|
75
|
-
uncrashable_config =
|
|
76
|
-
uncrashable_config !== undefined && uncrashable_config !== ''
|
|
77
|
-
? uncrashable_config
|
|
78
|
-
: filesystem.resolve('uncrashable-config.yaml');
|
|
79
|
-
|
|
80
|
-
// Show help text if requested
|
|
81
|
-
if (help) {
|
|
82
|
-
print.info(HELP);
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
let protocol;
|
|
87
|
-
try {
|
|
88
|
-
// Checks to make sure codegen doesn't run against
|
|
89
|
-
// older subgraphs (both apiVersion and graph-ts version).
|
|
90
|
-
//
|
|
91
|
-
// We don't want codegen to run without these conditions
|
|
92
|
-
// because that would mean the CLI would generate code to
|
|
93
|
-
// the wrong AssemblyScript version.
|
|
94
|
-
await assertManifestApiVersion(manifest, '0.0.5');
|
|
95
|
-
await assertGraphTsVersion(path.dirname(manifest), '0.25.0');
|
|
96
|
-
|
|
97
|
-
const dataSourcesAndTemplates = await DataSourcesExtractor.fromFilePath(manifest);
|
|
98
|
-
|
|
99
|
-
protocol = Protocol.fromDataSources(dataSourcesAndTemplates);
|
|
100
|
-
} catch (e) {
|
|
101
|
-
print.error(e.message);
|
|
102
|
-
process.exitCode = 1;
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
const generator = new TypeGenerator({
|
|
107
|
-
subgraphManifest: manifest,
|
|
108
|
-
outputDir,
|
|
109
|
-
skipMigrations,
|
|
110
|
-
protocol,
|
|
111
|
-
uncrashable,
|
|
112
|
-
uncrashableConfig: uncrashable_config,
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
// Watch working directory for file updates or additions, trigger
|
|
116
|
-
// type generation (if watch argument specified)
|
|
117
|
-
if (watch) {
|
|
118
|
-
await generator.watchAndGenerateTypes();
|
|
119
|
-
} else if (!(await generator.generateTypes())) {
|
|
120
|
-
process.exitCode = 1;
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
};
|
package/src/commands/create.ts
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { URL } from 'url';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import { GluegunToolbox } from 'gluegun';
|
|
4
|
-
import { identifyDeployKey as identifyAccessToken } from '../command-helpers/auth';
|
|
5
|
-
import { createJsonRpcClient } from '../command-helpers/jsonrpc';
|
|
6
|
-
import { validateNodeUrl } from '../command-helpers/node';
|
|
7
|
-
|
|
8
|
-
const HELP = `
|
|
9
|
-
${chalk.bold('graph create')} ${chalk.dim('[options]')} ${chalk.bold('<subgraph-name>')}
|
|
10
|
-
|
|
11
|
-
${chalk.dim('Options:')}
|
|
12
|
-
|
|
13
|
-
--access-token <token> Graph access token
|
|
14
|
-
-h, --help Show usage information
|
|
15
|
-
-g, --node <url> Graph node to create the subgraph in
|
|
16
|
-
`;
|
|
17
|
-
|
|
18
|
-
export interface CreateOptions {
|
|
19
|
-
accessToken?: string;
|
|
20
|
-
help?: boolean;
|
|
21
|
-
node?: string;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export default {
|
|
25
|
-
description: 'Registers a subgraph name',
|
|
26
|
-
run: async (toolbox: GluegunToolbox) => {
|
|
27
|
-
// Obtain tools
|
|
28
|
-
const { print } = toolbox;
|
|
29
|
-
|
|
30
|
-
// Read CLI parameters
|
|
31
|
-
let { accessToken, g, h, help, node } = toolbox.parameters.options;
|
|
32
|
-
const subgraphName = toolbox.parameters.first;
|
|
33
|
-
|
|
34
|
-
// Support both long and short option variants
|
|
35
|
-
node ||= g;
|
|
36
|
-
help ||= h;
|
|
37
|
-
|
|
38
|
-
// Show help text if requested
|
|
39
|
-
if (help) {
|
|
40
|
-
print.info(HELP);
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// Validate the subgraph name
|
|
45
|
-
if (!subgraphName) {
|
|
46
|
-
print.error('No subgraph name provided');
|
|
47
|
-
print.info(HELP);
|
|
48
|
-
process.exitCode = 1;
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// Validate node
|
|
53
|
-
if (!node) {
|
|
54
|
-
print.error(`No Graph node provided`);
|
|
55
|
-
print.info(HELP);
|
|
56
|
-
process.exitCode = 1;
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
try {
|
|
60
|
-
validateNodeUrl(node);
|
|
61
|
-
} catch (e) {
|
|
62
|
-
print.error(`Graph node "${node}" is invalid: ${e.message}`);
|
|
63
|
-
process.exitCode = 1;
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const requestUrl = new URL(node);
|
|
68
|
-
const client = createJsonRpcClient(requestUrl);
|
|
69
|
-
|
|
70
|
-
// Exit with an error code if the client couldn't be created
|
|
71
|
-
if (!client) {
|
|
72
|
-
process.exitCode = 1;
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// Use the access token, if one is set
|
|
77
|
-
accessToken = await identifyAccessToken(node, accessToken);
|
|
78
|
-
if (accessToken !== undefined && accessToken !== null) {
|
|
79
|
-
// @ts-expect-error options property seems to exist
|
|
80
|
-
client.options.headers = { Authorization: `Bearer ${accessToken}` };
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
const spinner = print.spin(`Creating subgraph in Graph node: ${requestUrl}`);
|
|
84
|
-
client.request(
|
|
85
|
-
'subgraph_create',
|
|
86
|
-
{ name: subgraphName },
|
|
87
|
-
(
|
|
88
|
-
// @ts-expect-error TODO: why are the arguments not typed?
|
|
89
|
-
requestError,
|
|
90
|
-
// @ts-expect-error TODO: why are the arguments not typed?
|
|
91
|
-
jsonRpcError,
|
|
92
|
-
// TODO: this argument is unused, but removing it fails the basic-event-handlers tests
|
|
93
|
-
// @ts-expect-error TODO: why are the arguments not typed?
|
|
94
|
-
_res,
|
|
95
|
-
) => {
|
|
96
|
-
if (jsonRpcError) {
|
|
97
|
-
spinner.fail(`Error creating the subgraph: ${jsonRpcError.message}`);
|
|
98
|
-
process.exitCode = 1;
|
|
99
|
-
} else if (requestError) {
|
|
100
|
-
spinner.fail(`HTTP error creating the subgraph: ${requestError.code}`);
|
|
101
|
-
process.exitCode = 1;
|
|
102
|
-
} else {
|
|
103
|
-
spinner.stop();
|
|
104
|
-
print.success(`Created subgraph: ${subgraphName}`);
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
);
|
|
108
|
-
},
|
|
109
|
-
};
|