Nabarun Gogoi
cd29b47ecc
* 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> |
||
---|---|---|
.. | ||
abis | ||
environments | ||
src | ||
.eslintignore | ||
.eslintrc.json | ||
.mocharc.yml | ||
package.json | ||
README.md | ||
tsconfig.json |
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
-