mirror of
https://github.com/cerc-io/watcher-ts
synced 2025-01-07 20:08:06 +00:00
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> |
||
---|---|---|
.. | ||
src | ||
test | ||
.env.example | ||
.eslintignore | ||
.eslintrc.json | ||
.gitignore | ||
.npmignore | ||
hardhat.config.ts | ||
package.json | ||
README.md | ||
tsconfig.json |
solidity-mapper
Get value of state variable from storage for a solidity contract.
Pre-requisites
-
NodeJS and NPM
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
- Arrays
Observations
-
The storage layouts are formed according to the rules in https://docs.soliditylang.org/en/latest/internals/layout_in_storage.html#layout-of-state-variables-in-storage
-
Structs can occupy multiple slots depending on the size required by its members.
-
Fixed arrays can occupy multiple slots according to the size of the array and the type of array.