mirror of
https://github.com/datahaven-xyz/datahaven
synced 2026-05-24 09:50:01 +00:00
An EVM compatible Substrate chain, powered by StorageHub and secured by EigenLayer
In this PR: 1. Add [Polkadot API](https://papi.how/) support to `test/` directory (i.e. the e2e CLI and testing framework) to be able to interact with the Substrate chain. 1. This allows typed interactions with transactions, constants, storage, runtime APIs, and non-typed interaction with RPC methods. 2. Types are autogenerated when running `bun i`, from the `datahaven.scale` file that is part of this repo's version control. 2. Add new utilities file to `papi` related functionalities. For the time being, generating a new signer from a private key. 3. ~Add a new step to the CLI that sends a transaction to the DataHaven network. _*THIS SHOULD BE REMOVED SOON, IT'S JUST FOR TESTING PURPOSES*_~ 1. Both steps that send test transactions have been removed from the CLI, for convenience and being error prone. Their scripts remain usable for testing purposes if needed. 4. Removes the `apis.rs` files from the runtime definitions. Having them in a separate file meant that the runtime was not including the Runtime APIs in the metadata blob, preventing `papi` from creating types from it. This change can be reapplied after upgrading to `polkadot-sdk` `stable-2503`. More info [here](https://github.com/paritytech/polkadot-sdk/issues/6659). 5. Add script to re-generate types, and corresponding docs. 6. Makes logger synchronous to avoid prints happening before logs. |
||
|---|---|---|
| .github/workflows | ||
| contracts | ||
| operator | ||
| resources | ||
| test | ||
| .gitignore | ||
| .gitmodules | ||
| biome.json | ||
| README.md | ||
| taplo.toml | ||
DataHaven 🫎
An EVM compatible Substrate chain, powered by StorageHub and secured by EigenLayer.
Repo Structure
datahaven/
├── .github/ # GitHub Actions workflows.
├── contracts/ # Implementation of the DataHaven AVS (Autonomous Verifiable Service) smart contracts to interact with EigenLayer.
├── docker/ # Docker build files.
├── operator/ # DataHaven node based on Substrate. The "Operator" in EigenLayer terms.
├── test/ # Integration tests for the AVS and Operator.
├── resources/ # Miscellaneous resources for the DataHaven project.
└── README.md
CI
Using the act binary, you can run GitHub Actions locally.
For example, to run the entire e2e workflow:
act -W .github/workflows/e2e.yml -s GITHUB_TOKEN="$(gh auth token)"
Which results in:
INFO[0000] Using docker host 'unix:///var/run/docker.sock', and daemon socket 'unix:///var/run/docker.sock'
INFO[0000] Start server on http://192.168.1.97:34567
[E2E - Kurtosis Deploy and Verify/kurtosis] ⭐ Run Set up job
[E2E - Kurtosis Deploy and Verify/kurtosis] 🚀 Start image=catthehacker/ubuntu:rust-24.04
[E2E - Kurtosis Deploy and Verify/kurtosis] 🐳 docker pull image=catthehacker/ubuntu:rust-24.04 platform= username= forcePull=true
[E2E - Kurtosis Deploy and Verify/kurtosis] using DockerAuthConfig authentication for docker pull
[E2E - Kurtosis Deploy and Verify/kurtosis] 🐳 docker create image=catthehacker/ubuntu:rust-24.04 platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[E2E - Kurtosis Deploy and Verify/kurtosis] 🐳 docker run image=catthehacker/ubuntu:rust-24.04 platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[E2E - Kurtosis Deploy and Verify/kurtosis] 🐳 docker exec cmd=[node --no-warnings -e console.log(process.execPath)] user= workdir=
[E2E - Kurtosis Deploy and Verify/kurtosis] ✅ Success - Set up job
[E2E - Kurtosis Deploy and Verify/kurtosis] ☁ git clone 'https://github.com/oven-sh/setup-bun' # ref=v2
...
[E2E - Kurtosis Deploy and Verify/kurtosis] ✅ Success - Post Install Foundry [212.864597ms]
[E2E - Kurtosis Deploy and Verify/kurtosis] ⭐ Run Complete job
[E2E - Kurtosis Deploy and Verify/kurtosis] Cleaning up container for job kurtosis
[E2E - Kurtosis Deploy and Verify/kurtosis] ✅ Success - Complete job
[E2E - Kurtosis Deploy and Verify/kurtosis] 🏁 Job succeeded