watcher-ts/packages/cli
Nabarun Gogoi 8d052add2d
Log GQL requests in watcher (#517)
* Update config for server GQL

* Add winston logger for GQL requests

* Fix codegen templates for resolver and package

* Update package versions

---------

Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-06-06 16:54:49 +05:30
..
graphql Add CLI tool to compare watcher GQL responses (#494) 2023-11-28 09:51:26 +05:30
src Log GQL requests in watcher (#517) 2024-06-06 16:54:49 +05:30
.eslintignore Refactor watch-contract CLI to cli package (#245) 2022-11-21 11:47:23 +04:00
.eslintrc.json Upgrade dependency versions to remove vulnerabilities from dependabot (#343) 2023-03-28 13:17:53 +05:30
.npmignore Refactor watch-contract CLI to cli package (#245) 2022-11-21 11:47:23 +04:00
config.yaml Add CLI tool to compare watcher GQL responses (#494) 2023-11-28 09:51:26 +05:30
package.json Log GQL requests in watcher (#517) 2024-06-06 16:54:49 +05:30
README.md Add a CLI for running a proxy server (#495) 2023-12-05 18:17:27 +05:30
tsconfig.json Implement peer package to send messages between peers (#279) 2023-01-10 20:10:27 +05:30

cli

chat

A basic CLI to pass messages between peers using stdin/stdout

  • Install dependencies:

    yarn install
    
  • Build the peer package:

    cd packages/peer
    yarn build
    
  • (Optional) Create and export a peer id for the relay node:

    # In packages/peer
    yarn create-peer --file [PEER_ID_FILE_PATH]
    
    • file (f): file path to export the peer id to (json) (default: logs to console)
  • (Optional) Run a local relay node:

    # In packages/peer
    yarn relay-node --host [LISTEN_HOST] --port [LISTEN_PORT] --announce [ANNOUNCE_DOMAIN] --peer-id-file [PEER_ID_FILE_PATH] --relay-peers [RELAY_PEERS_FILE_PATH]
    
    • host (h): host to bind to (default: 127.0.0.1)
    • port (p): port to start listening on (default: 9090)
    • announce (a): domain name to be used in the announce address
    • peer-id-file (f): file path for peer id to be used (json)
    • relay-peers (r): file path for relay peer multiaddr(s) to dial on startup (json)
  • Start the node:

    # In packages/cli
    yarn chat --relay-multiaddr <RELAY_MULTIADDR> --max-connections [MAX_CONNECTIONS] --dial-timeout [DIAL_TIMEOUT] --max-relay-connections [MAX_RELAY_CONNECTIONS] --peer-id-file [PEER_ID_FILE_PATH] --enable-debug-info [ENABLE_DEBUG_INFO]
    
    • relay-multiaddr (r): multiaddr of a primary hop enabled relay node
    • max-connections: max number of connections for this peer
    • dial-timeout: timeout for dial to peers (ms)
    • max-relay-connections: max number of relay node connections for this peer
    • peer-id-file (f): file path for peer id to be used (json)
    • enable-debug-info: Whether to broadcast node's info over pubsub on request
  • The process starts reading from stdin and outputs messages from others peers over the /chat/1.0.0 protocol to stdout.

compare-gql

A basic CLI to to fetch and compare watcher GQL response.

  • Create a config.yaml file in the following format in packages/cli:

    # Watcher URL
    url: ""
    
    # Boolean to specify if it is a subgraph watcher
    isSubgraph: false
    
    # File path for saving GQL result
    gqlResultFilepath: "./result.json"
    
    # Optional parameter to override default GQL query
    graphqlQuery: ""
    
  • Run the following command to fetch and save first GQL response:

    yarn compare-gql --config config.yaml
    
    • On running CLI for the first time

        vulcanize:compare-gql Fetching response for the first time, re run CLI to compare with latest GQL response
      
  • Re run CLI after some time (average time taken for new block in Ethereum: ~12 seconds)

    yarn compare-gql --config config.yaml
    
  • The diff for latest and previous GQL responses is shown

proxy

Runs a proxy server pointed to the given upstream endpoint

  • Install dependencies and build:

    # In repo root
    yarn
    
    # In packages/cli
    yarn build
    
  • Run the proxy server:

    yarn proxy --upstream <UPSTREAM_ENDPOINT> --origin-header [ORIGN_HEADER] --port [PROXY_SERVER_PORT]
    
    # For details, run: yarn proxy --help