watcher-ts/packages/test
Nabarun Gogoi cd29b47ecc
Implement peer package to send messages between peers (#279)
* Initial implementation of class and discoving other peers

* Implement peer connection and sending messages between peers

* Add react app and use peer package for broadcasting

* Maintain stream for each remote peer

* Refactor code in peer package

* Add serve package for react-app

* Add readme for running react app

* Add peer package readme

* Add logs for events with details

* Add a chat CLI using peer package (#280)

* Add a flag to instantiate Peer for nodejs

* Add a basic chat CLI using peer

* Add a signal server arg to chat CLI

* Add instructions for chat CLI

* Fix typescript and ESM issues after adding peer package (#282)

* Fix build issues in util package

* Update eslint TS plugins

* Scope react app package name

* Convert cli package back to CJS and dynamically import ESM

* Upgrade ts-node version

* Fix tests

* Setup a relay node and pubsub based discovery (#284)

* Add a script to setup a relay node

* Use pubsub based peer discovery

* Add peer multiaddr to connection log

* Catch relay node dial errors

* Increase discovery interval and dial all mutiaddr

* Add UI to display self peer ID and multiaddrs

* Add UI for displaying live remote connections

* Send js objects in peer broadcast messages

* Add react-peer package for using peer in react app

* Reduce disconnect frequency between peers (#287)

* Restrict number of max concurrent dials per peer

* Increase hop relay timeout to 1 day

* Self review changes

* Review changes

* Increase pubsub discovery interval and add steps to create a peer id  (#290)

* Increase pubsub discovery interval

* Disable autodial to avoid peer dials without protocol on a reconnect

* Add steps to create a peer id and use for relay node

* Add back dependency to run signalling server

* Avoid bootstrapping and dial to relay node directly

Co-authored-by: prathamesh0 <42446521+prathamesh0@users.noreply.github.com>
Co-authored-by: prathamesh0 <prathamesh.musale0@gmail.com>
2023-01-10 20:10:27 +05:30
..
abis Add test package (#164) 2022-08-19 11:06:11 +05:30
environments Add test package (#164) 2022-08-19 11:06:11 +05:30
src Add a CLI in eden-watcher to fill state for a given range (#176) 2022-09-09 16:23:41 +05:30
.eslintignore Add test package (#164) 2022-08-19 11:06:11 +05:30
.eslintrc.json Add test package (#164) 2022-08-19 11:06:11 +05:30
.mocharc.yml Add test package (#164) 2022-08-19 11:06:11 +05:30
package.json Implement peer package to send messages between peers (#279) 2023-01-10 20:10:27 +05:30
README.md Add test package (#164) 2022-08-19 11:06:11 +05:30
tsconfig.json Add test package (#164) 2022-08-19 11:06:11 +05:30

test

Setup

  • Run the following command to install required packages:

    yarn
    

Test Snapshot

  • The snapshot test suite compares results for eth-calls and getStorageAt calls to the provided endpoints.

  • Contracts considered:

    • UniswapV2 Factory
    • UniswapV2 Pair
    • USDC
    • Compound
    • Dai / Maker
  • Edit the config file:

    Eg:

    blockTag = "0xB5FFFF" # block tag to perform eth-call and getStorageAt call with (eg. block number in hex)
    
    [endpoints]
      endpoint1 = "http://127.0.0.1:8545" # endpoint1 URL
      endpoint2 = "http://127.0.0.1:8082" # endpoint2 URL
    
  • Run the following command to run the snapshot test suite:

    yarn test:snapshot
    

Individual Calls

  • Run the following to make an eth-call:

    yarn eth-call -e <endpoint> -c <contract> -a <abi> -m <method-name> --method-args [method-args] -b [block-tag]
    
    • endpoint (e): Endpoint to perform eth-call against

    • contract (c): Contract address

    • abi (a): Contract ABI path

    • method-name (m): Contract method to call

    • method-args: Contract method arguments

    • block-tag (b): Block tag to make eth-call with (block number (hex) / block hash)

      Eg.

      yarn eth-call -e http://127.0.0.1:8545 -c 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f -a abis/UniswapV2Factory.json -m allPairs --method-args 100 -b 0xB5FFFF
      
  • Run the following to make a getStorageAt call:

    yarn get-storage-at -e <endpoint> -c <contract> -s <slot> -b [block-tag]
    
    • endpoint (e): Endpoint to perform getStorageAt call against

    • contract (c): Contract address

    • slot (s): Storge slot

    • block-tag (b): Block tag to make getStorageAt call with (block number (hex) / block hash)

      Eg.

      yarn get-storage-at -e http://127.0.0.1:8545 -c 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f -s 0x1 -b 0xB5FFFF