watcher-ts/packages/solidity-mapper
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
..
src Clear cache of latest entities on event processing error (#201) 2022-10-19 14:26:10 +05:30
test Parse batched transactions for mobymask-watcher events (#141) 2022-07-11 11:29:33 +05:30
.env.example Test decoder using hardhat RPC, geth-statediff RPC and ipld-eth-server GQL endpoints for fetching storage slots (#77) 2021-06-18 18:09:50 +05:30
.eslintignore Get slot for ERC20 variable from storage layout (#13) 2021-05-31 14:50:05 +05:30
.eslintrc.json Get slot for ERC20 variable from storage layout (#13) 2021-05-31 14:50:05 +05:30
.gitignore Test decoder using hardhat RPC, geth-statediff RPC and ipld-eth-server GQL endpoints for fetching storage slots (#77) 2021-06-18 18:09:50 +05:30
.npmignore Changes to use packages in uniswap-watcher (#196) 2022-10-11 13:41:26 +05:30
hardhat.config.ts Test decoder using hardhat RPC, geth-statediff RPC and ipld-eth-server GQL endpoints for fetching storage slots (#77) 2021-06-18 18:09:50 +05:30
package.json Implement peer package to send messages between peers (#279) 2023-01-10 20:10:27 +05:30
README.md Test decoder using hardhat RPC, geth-statediff RPC and ipld-eth-server GQL endpoints for fetching storage slots (#77) 2021-06-18 18:09:50 +05:30
tsconfig.json Enable source maps for transpiled files (#242) 2021-09-07 16:01:15 +05:30

solidity-mapper

Get value of state variable from storage for a solidity contract.

Pre-requisites

Instructions

  • Create environment variable file

    $ cp .env.example .env
    
  • Run the tests using the following command

    $ yarn test
    
    # For testing on private network using RPC getStorageAt.
    # Set ETH_RPC_URL in .env
    $ yarn test:geth-rpc
    
    # For testing on private network using ipld-eth-client getStorageAt.
    # Set GQL_ENDPOINT in .env
    $ yarn test:ipld-gql
    

Different Types

  • Value Types
    • Booleans
    • Integers
    • Fixed Point Numbers
    • Address
    • Contract Types
    • Fixed-size byte arrays
    • Enums
    • Function Types
  • Reference Types
    • Arrays
      • Get all elements in array
      • Get element in array by index
      • Fixed size arrays
        • Integer Type
        • Boolean Type
        • Address Type
        • Fixed-size byte arrays
        • Enum type
        • Dynamically-sized byte array
        • Struct Type
        • Mapping Type
      • Dynamically-sized arrays
        • Integer Type
        • Boolean Type
        • Address Type
        • Fixed-size byte arrays
        • Enum Type
        • Dynamically-sized byte array
        • Struct Type
        • Mapping Type
      • Nested Arrays
        • Fixed size arrays
        • Dynamically-sized arrays
    • Dynamically-sized byte array
      • Bytes
      • String
    • Structs
      • Get struct value with all members
      • Value Types
      • Get value of a single member in struct
      • Reference Types
        • Struct type members (nested)
        • Fixed size Array members
        • Dynamically sized Array members
        • Bytes and string type members
        • Mapping type members
    • Mapping Types
      • Value Type keys
      • Fixed-size byte array keys
      • Dynamically-sized byte array keys
      • Reference Type Mapping values
        • Struct type values
        • Array type values
        • Dynamically sized Bytes and string type values
      • Nested Mapping

Observations