Skip to content

The Graph data source runtime for mappings written in WASM

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

hiddentao/graph-cli

 
 

Repository files navigation

The Graph CLI (graph-cli)

Build Status

The Graph command line interface.

As of today, the command line interface consists of two commands:

  • graph codegen — generates TypeScript code for smart contract ABIs used in subgraphs.
  • graph build — compiles subgraphs to WebAssembly and deploys them to IPFS.

How It Works

graph takes a subgraph.yaml subgraph manifest with

  • references to a GraphQL schema,
  • smart contract ABIs, and
  • mappings written in TypeScript/AssemblyScript,

compiles the mappings to WebAssembly and deploys a ready-to-use version of the subgraph to IPFS or a local directory for debugging.

Usage

Subgraphs for The Graph are set up just like any regular TypeScript project. It is recommended to install graph-cli as a local dependency via package.json and use npm scripts for code generation and building.

An example of this can be found in the Decentraland repository.

  1. Create a project for the subgraph with a package.json etc.
  2. Add a subgraph.yaml subgraph manifest with a GraphQL schema etc.
  3. Add @graphprotocol/graph-cli as a local dependency with one of
    npm install --save-dev @graphprotocol/graph-cli # NPM
    yarn add --dev @graphprotocol/graph-cli         # Yarn
  4. Add the following tsconfig.json:
    {
      "extends": "./node_modules/graph-cli/tsconfig.json",
      "files": ["mapping.ts"]
    }
    Note: Replace "mapping.ts" with your own mapping fil(e)s.
  5. Add the following to package.json:
    {
      "scripts": {
        "codegen": "graph generate-types subgraph.yaml",
        "build": "graph build subgraph.yaml",
        "build-ipfs": "graph build --ipfs /ip4/127.0.0.1/tcp/5001 subgraph.yaml"
      }
    }
    Note: Replace the IPFS address with any IPFS node you want to deploy the subgraph to.
  6. Generate type definitions for contract ABIs used in the subgraph with:
    yarn codegen
  7. Develop your mapping.ts against these generated types.
  8. Build the subgraph with one of
    yarn build      # Will drop the results in dist/
    yarn build-ipfs # Will also deploy to IPFS and output an IPFS hash

License

Copyright © 2018 Graph Protocol, Inc. and contributors.

The Graph CLI is dual-licensed under the MIT license and the Apache License, Version 2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

The Graph data source runtime for mappings written in WASM

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 72.3%
  • TypeScript 27.7%