2025-04-08 15:42:45 +00:00
|
|
|
{
|
2025-04-14 19:22:43 +00:00
|
|
|
"compilerOptions": {
|
|
|
|
|
// Enable latest features
|
2025-05-27 16:14:15 +00:00
|
|
|
"lib": [
|
|
|
|
|
"ESNext"
|
|
|
|
|
],
|
2025-04-14 19:22:43 +00:00
|
|
|
"target": "ESNext",
|
2025-05-27 16:14:15 +00:00
|
|
|
"module": "Preserve",
|
2025-04-14 19:22:43 +00:00
|
|
|
"moduleDetection": "force",
|
|
|
|
|
"jsx": "react-jsx",
|
|
|
|
|
"allowJs": false,
|
|
|
|
|
"importHelpers": true,
|
|
|
|
|
"incremental": true,
|
|
|
|
|
// Bundler mode
|
|
|
|
|
"moduleResolution": "bundler",
|
|
|
|
|
"allowImportingTsExtensions": true,
|
|
|
|
|
"verbatimModuleSyntax": true,
|
|
|
|
|
"noEmit": true,
|
|
|
|
|
// Best practices
|
|
|
|
|
"strict": true,
|
|
|
|
|
"skipLibCheck": true,
|
|
|
|
|
"noFallthroughCasesInSwitch": true,
|
|
|
|
|
// Some stricter flags (disabled by default)
|
|
|
|
|
"noUnusedLocals": false,
|
|
|
|
|
"noUnusedParameters": false,
|
2025-05-27 16:14:15 +00:00
|
|
|
"noImplicitOverride": true,
|
2025-04-14 19:22:43 +00:00
|
|
|
"noPropertyAccessFromIndexSignature": false,
|
|
|
|
|
"baseUrl": "./",
|
|
|
|
|
"preserveConstEnums": true,
|
|
|
|
|
"esModuleInterop": true,
|
test: 🐳 Add docker support for datahaven nodes (#71)
> [!NOTE]
> This is `Part 3` of the ongoing _Docker Series._
## New Additions:
- Launching Datahaven network will spin up containers, as opposed to
native binaries
- `stop:docker` script to kill all dh containers
- `e2e` test suite for datahaven solochain network
- Contains reference test file that uses papi for storage queries,
submitting exts, runtime calls (good job on that facu and tobi)
- Added new utils:
- `waitForLog()` to wait for log lines in docker container logs
- `createPapiConnectors()` helper for test cases to build and connect to
dh network
- `getPapiSigner()` helper to return a papi compatible signer using our
prefunded accounts (alith by default)
- `sendTxn()` helper to submit txn and wait for block inclusion, instead
of finalization, which std library provides
## Changes:
> [!CAUTION]
> Launching native binaries for datahaven no longer supported.
- Datahaven binary location cli option changed to `-i,
--datahaven-image-tag`
- To locally run this you'll need a datahaven docker image handy, you'll
need to either:
- Point to remote dockerhub e.g. `moonsonglabs/datahaven:main` (must be
logged in and have permission)
- Build this locally with `bun build:docker:operator`
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Added end-to-end tests for the Datahaven solochain, including runtime
API queries, storage lookups, extrinsic submissions, and event
listening.
- Introduced CLI option to specify the Datahaven Docker image tag, with
a default value.
- Added CLI option to disable the Relayer.
- Provided new scripts to stop Docker containers associated with
Datahaven.
- Added utility functions for Docker log monitoring and container
startup checks.
- Introduced utilities for interacting with the Datahaven Polkadot API.
- **Improvements**
- Switched Datahaven network launch from local binaries to Docker
containers.
- Enhanced cache accuracy in build workflows by including Rust source
files in cache keys.
- Improved build performance with TypeScript incremental build options.
- Increased timeout for end-to-end tests for better reliability.
- Updated CLI version to 0.2.0.
- Modified Dockerfile build to enable the `fast-runtime` feature.
- Extended network launch summary to include relayer and container
details.
- **Bug Fixes**
- Fixed cleanup logic by tracking and preparing for forced removal of
Docker containers after tests.
- **Chores**
- Updated workflow steps for Docker image handling and network checks.
- Adjusted scripts and workflow logic for improved Docker and test
management.
- Removed top-level disk usage summaries from cleanup workflow for
streamlined reporting.
- Enhanced shell command utility to support asynchronous wait during
execution.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Facundo Farall <37149322+ffarall@users.noreply.github.com>
2025-05-16 14:17:05 +00:00
|
|
|
"resolveJsonModule": true,
|
|
|
|
|
// Speed
|
|
|
|
|
"tsBuildInfoFile": "tmp/tsconfig.tsbuildinfo",
|
2025-05-27 16:14:15 +00:00
|
|
|
"assumeChangesOnlyAffectDirectDependencies": true,
|
|
|
|
|
"paths": {
|
|
|
|
|
"utils": [
|
|
|
|
|
"./utils/index.ts"
|
|
|
|
|
],
|
|
|
|
|
"utils/types": [
|
|
|
|
|
"./utils/types.ts"
|
|
|
|
|
]
|
|
|
|
|
}
|
2025-04-14 19:22:43 +00:00
|
|
|
},
|
fix: 🩹 update to allow BEEFY relayer to run correctly (#67)
This PR:
- Adds a check to make sure the BEEFY RPC endpoint is ready before
spinning up the BEEFY relayer, otherwise it would just fail and crash.
- Adds the `--enable-offchain-indexing=true` flag to the Datahaven nodes
run when starting up the E2E infra. This is needed because otherwise
nodes can't be queried by the relayer to generate the required proofs
since they would not store the MMR leafs/nodes/root, so the relayer
would just crash.
- Updates the way we were generating the merkle root of the validator
set.
- The BEEFY pallet (and as such, the relayer) generate the validator set
merkle tree by getting the validator list and treating it as an already
ordered set of merkle leafs, hashing each pair in succession without
caring what each leaf value is.
- Meanwhile, the OpenZeppelin crypto library (and as such, the
EigenLayer contracts) also gets the merkle leafs list but hashes each
pair of leafs in value order.
- This means that, for example, if the list of leafs is: ["0x124",
"0x123"]
- BEEFY would do `hash("0x124123")` to get the value of the parent node.
- OZ and EigenLayer would do `hash("0x123124")` to get the value of the
parent node.
- This created a mismatch between what the BEEFY relayer was expecting
and what was actually calculated in our script. A way to obtain a merkle
tree using the BEEFY way was added to solve this.
- Updates the authority set to not be a hardcoded array of keys, now the
BEEFY keys are obtained by directly querying the runtime before
deploying the BEEFY contracts.
- Renames a few files from `flamingo` to `datahaven`.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Added support for calculating and generating Merkle roots and proofs
without sorting, enabling new use cases for validator set management.
- Introduced dynamic fetching and configuration of Datahaven validator
authorities during network launch.
- Added readiness check for the BEEFY protocol before relayer startup,
improving reliability of relayer operations.
- **Bug Fixes**
- Fixed indentation issues in configuration files for improved
readability and consistency.
- **Chores**
- Updated validator lists and addresses in configuration files.
- Enhanced e2e test scripts and added new commands for relayer and
minimal test scenarios.
- Added new dependency to test package.
- Updated version strings in package metadata.
- **Refactor**
- Improved logging and configuration handling during network and relayer
launches.
- Simplified import statements and removed unused code.
- **Style**
- Reformatted configuration and TypeScript files for better readability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Tim B <79199034+timbrinded@users.noreply.github.com>
Co-authored-by: Facundo Farall <37149322+ffarall@users.noreply.github.com>
2025-05-16 01:56:19 +00:00
|
|
|
"include": [
|
|
|
|
|
"utils/*.ts",
|
|
|
|
|
"scripts/*.ts",
|
|
|
|
|
"suites/**/*.ts",
|
|
|
|
|
"cli/**/*.ts",
|
|
|
|
|
"wagmi.config.ts",
|
2025-07-16 16:51:07 +00:00
|
|
|
"contract-bindings/*.ts",
|
|
|
|
|
"launcher/**/*.ts",
|
|
|
|
|
"framework/**/*.ts"
|
2025-05-27 16:14:15 +00:00
|
|
|
]
|
|
|
|
|
}
|