Skip to content

Commit

Permalink
doc: Update READMEs (#478)
Browse files Browse the repository at this point in the history
  • Loading branch information
alainncls authored Dec 18, 2023
1 parent f4e9c81 commit 760ff23
Show file tree
Hide file tree
Showing 8 changed files with 262 additions and 332 deletions.
78 changes: 57 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,45 +13,74 @@ the network.</h4>

<p align="center">
<a href="#links">Links</a> •
<a href="#repository-organisation">Repository Organisation</a> •
<a href="#repository-organisation">Repo Organisation</a> •
<a href="#getting-started">Getting Started</a> •
<a href="#contributing">Contributing</a> •
<a href="#contracts-addresses">Contracts Addresses</a> •
<a href="#subgraphs-addresses">Subgraphs Addresses</a> •
<a href="#linking-attestations">Linking Attestations</a> •
<a href="#off-chain-attestations">Off-chain Attestations</a> •
<a href="#license">License</a>
</p>

## Links

📚 [Official documentation](https://docs.ver.ax/)

<details>
<summary>🔍 GraphQL APIs</summary>

- [Linea Testnet](https://graph-query.goerli.linea.build/subgraphs/name/Consensys/linea-attestation-registry/graphql)
- [Linea Mainnet](https://graph-query.linea.build/subgraphs/name/Consensys/linea-attestation-registry/graphql)
- [Arbitrum Goerli](https://api.thegraph.com/subgraphs/name/cliqueofficial/verax-arbitrum-goerli)
- [Arbitrum Mainnet](https://api.thegraph.com/subgraphs/name/cliqueofficial/verax-arbitrum)

</details>

🧱 [Verax SDK](https://www.npmjs.com/package/@verax-attestation-registry/verax-sdk) - **WIP**

🌍 Verax Explorer - _Coming soon_
📚 [Documentation](https://docs.ver.ax/)
🔍 [Subgraphs](#subgraphs-addresses)
🧱 [Verax SDK](https://www.npmjs.com/package/@verax-attestation-registry/verax-sdk)
🌍 Verax Explorer (_Coming soon_)

## Repository Organisation

```
.
├── contracts # All smart contracts needed to run Verax
├── explorer # Explorer frontend to discover the main objects
├── sdk # The Verax SDK to easily interact with the contracts and the subgraph
├── subgraph # The subgraph indexing Verax data
├── website # Verax website
├── sdk # An SDK to easily interact with the contracts and the subgraphs
├── snap # A MetaMask Snap to leverage the attestions in transactions
├── subgraph # The subgraph indexing all the data generated by the contracts
├── website # Verax landing page and
```

## Getting Started

### Prerequisites

- [Node.js](https://nodejs.org/en/) (>= 18)

### Global installation

```bash
pnpm i
```

### Contracts

Check the dedicated [README](./contracts/README.md) for more details.

### Explorer

Check the dedicated [README](./explorer/README.md) for more details.

### SDK

Check the dedicated [README](./sdk/README.md) for more details.

### Snap

Check the dedicated [README](./snap/README.md) for more details.

### Subgraph

Check the dedicated [README](./subgraph/README.md) for more details.

### Website

Check the dedicated [README](./website/README.md) for more details.

## Contributing

Verax Attestation Registry is a community-led initiative, with developers from various companies and different
Verax Attestation Registry is a community-lead initiative, with developers from various companies and different
backgrounds. While we are more than happy to get help from multiple sources, we need to rely on strong Ways of Working.

Don't hesitate to check our [Contribution Guide](./CONTRIBUTING.md) before pushing your first code to the repo!
Expand Down Expand Up @@ -139,6 +168,13 @@ Here are the addresses on those networks:

</details>

## Subgraphs Addresses

- [Linea Testnet](https://graph-query.goerli.linea.build/subgraphs/name/Consensys/linea-attestation-registry/graphql)
- [Linea Mainnet](https://graph-query.linea.build/subgraphs/name/Consensys/linea-attestation-registry/graphql)
- [Arbitrum Goerli](https://api.thegraph.com/subgraphs/name/cliqueofficial/verax-arbitrum-goerli)
- [Arbitrum Mainnet](https://api.thegraph.com/subgraphs/name/cliqueofficial/verax-arbitrum)

## Linking Attestations

Verax Attestation Registry allows creating links ("relationships") between attestations.
Expand All @@ -150,7 +186,7 @@ Verax offers 2 Schemas to cover most use cases:
- The **Relationship** Schema, with ID `0x41b8c81288eebbf173b2f54b9fb2f1d37f2caca51ef39e8f99299b53c2599a3a`
- The **Named Graph Relationship** Schema with ID `0x8f83a0ef7871f63455a506f6bca0db98a88721764ae6dbde2afddd8e12e442b8`

## Managing Off-chain Attestations
## Off-chain Attestations

To handle large payloads to attest and avoid increasing the gas cost for the attestation process, it is possible to host
the attested payload off-chain. In this case, the on-chain attestation will only contain a link to the attested payload,
Expand Down
131 changes: 7 additions & 124 deletions contracts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,137 +29,20 @@ If you're experiencing any issues while installing, check out the [FAQ](https://

We can build the project with forge build:

```
$ forge build
[⠊] Compiling...
[⠘] Compiling 22 files with 0.8.20
[⠒] Solc 0.8.20 finished in 2.97s
Compiler run successful!
```bash
forge build
```

And run the tests with forge test:

```bash
forge test
```
$ forge test
No files changed, compilation skipped
Running 2 tests for test/Counter.t.sol:CounterTest
[PASS] testIncrement() (gas: 28334)
[PASS] testSetNumber(uint256) (runs: 256, μ: 27398, ~: 28409)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 10.42ms
Ran 1 test suites: 2 tests passed, 0 failed, 0 skipped (2 total tests)
```

## Deployment - using Anvil

Anvil is a local testnet node shipped with Foundry. You can use it for testing your contracts from frontends or for
interacting over RPC. Anvil is part of the Foundry suite and is installed alongside forge, cast and chisel.

**Step 1 : Run a local node using Anvil**

To run a local node, simply type anvil. You should see a list of accounts and private keys available for use, as well as
the address and port the node is listening on.

```
$ anvil
_ _
(_) | |
__ _ _ __ __ __ _ | |
/ _` | | '_ \ \ \ / / | | | |
| (_| | | | | | \ V / | | | |
\__,_| |_| |_| \_/ |_| |_|
0.1.0 (02e430c 2023-07-21T00:20:33.193960100Z)
https://github.com/foundry-rs/foundry
Available Accounts
==================
(0) "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" (10000.000000000000000000 ETH)
(1) "0x70997970C51812dc3A010C7d01b50e0d17dc79C8" (10000.000000000000000000 ETH)
(2) "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC" (10000.000000000000000000 ETH)
(3) "0x90F79bf6EB2c4f870365E785982E1f101E93b906" (10000.000000000000000000 ETH)
(4) "0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65" (10000.000000000000000000 ETH)
(5) "0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc" (10000.000000000000000000 ETH)
(6) "0x976EA74026E726554dB657fA54763abd0C3a0aa9" (10000.000000000000000000 ETH)
(7) "0x14dC79964da2C08b23698B3D3cc7Ca32193d9955" (10000.000000000000000000 ETH)
(8) "0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f" (10000.000000000000000000 ETH)
(9) "0xa0Ee7A142d267C1f36714E4a8F75612F20a79720" (10000.000000000000000000 ETH)
Private Keys
==================
(0) 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
(1) 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d
(2) 0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a
(3) 0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6
(4) 0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a
(5) 0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba
(6) 0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e
(7) 0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356
(8) 0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97
(9) 0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6
Wallet
==================
Mnemonic: test test test test test test test test test test test junk
Derivation path: m/44'/60'/0'/0/
Chain ID
==================
31337
1000000000

Gas Limit
==================
And get the coverage with fotge coverage:

30000000
Genesis Timestamp
==================
1689949885
Listening on 127.0.0.1:8545
```

Anvil is highly configurable. You can run anvil -h to see all the configuration options.

Some basic options are:

```
# Number of dev accounts to generate and configure. [default: 10]
anvil -a, --accounts <ACCOUNTS>
# The EVM hardfork to use. [default: latest]
anvil --hardfork <HARDFORK>
# Port number to listen on. [default: 8545]
anvil -p, --port <PORT>
```

**Step 2 : Deployment**

Forge can deploy smart contracts to a given network with the forge create command.

Forge can deploy only one contract at a time.

To deploy on Anvil local node use `forge create` command with RPC url and any private key provided by anvil local node
mentioned above.

e.g.

```
forge create --rpc-url http://127.0.0.1:8545 --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 src/Counter.sol:Counter
[⠆] Compiling...
No files changed, compilation skipped
Deployer: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
Deployed to: 0x5FbDB2315678afecb367f032d93F642f64180aa3
Transaction hash: 0x15b25752da1dfd458b92069248825ce959f5be104f974d62b4ae95050710325d
```bash
forge coverage
```

## Verax contracts deployment
Expand Down
10 changes: 10 additions & 0 deletions explorer/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,11 @@
# Verax Attestation Registry - Explorer

This package manages the explorer of Verax Attestation Registry, soon to be released.

## Getting Started

### Launch in development mode

```bash
pnpm run dev
```
Loading

0 comments on commit 760ff23

Please sign in to comment.