datahaven/contracts
Ahmad Kaouk 5db1f4ee74
refactor: cleanup obsolete test folder (#166)
### Summary
Removes the obsolete `operator/test` folder that was no longer being
used and contained outdated test scripts.

### Changes
-  Deleted `operator/test/` directory and all contents
-  Moved `test_message_encoding.sh` script to `operator/scripts/` for
proper organization
-  Updated comment reference in `contracts/test/MessageEncoding.t.sol`
to point to new script location

### Impact
- **No breaking changes** - All legitimate test files remain properly
organized within their respective pallets
- **Cleaner codebase** - Removes unused/obsolete code
2025-09-17 14:21:55 +02:00
..
config feat: Datahaven contracts deployment on public testnet (#123) 2025-08-21 10:02:31 +00:00
deployments feat: support updating the AVS dashboard metadata (#136) 2025-09-02 15:54:47 +02:00
lib chore: update snowbridge submodule (#109) 2025-07-01 13:52:17 +00:00
resources docs: 📝 Update contracts diagram (#45) 2025-04-17 12:26:25 -03:00
script feat: Datahaven contracts deployment on public testnet (#123) 2025-08-21 10:02:31 +00:00
src test: Rewards distribution end to end Tests (#132) 2025-09-17 09:10:54 +00:00
test refactor: cleanup obsolete test folder (#166) 2025-09-17 14:21:55 +02:00
.gitignore test: Native token transfer e2e tests (#120) 2025-08-22 18:27:14 +02:00
foundry.toml feat: Datahaven contracts deployment on public testnet (#123) 2025-08-21 10:02:31 +00:00
README.md feat: Add script to sign up operator to AVS (#37) 2025-04-11 20:54:20 -03:00

DataHaven AVS Smart Contracts 📜

This directory contains the smart contracts for the DataHaven Actively Validated Service (AVS) built on EigenLayer.

Overview

DataHaven is an AVS that provides secure and decentralised data storage services. The contracts in this repository implement the Service Manager, middleware, and associated utilities required for the DataHaven protocol.

Project Structure

  • src/: Smart contract source code
    • DataHavenServiceManager.sol: Main service manager contract
    • interfaces/: Contract interfaces
    • libraries/: Utility libraries
    • middleware/: Middleware contracts (similar to EigenLayer's middleware contracts)
  • script/: Deployment scripts
  • test/: Test cases
  • foundry.toml: Foundry configuration

Prerequisites

Build

To build the contracts:

cd contracts
forge build

This will compile all contracts and generate artifacts in the out directory.

Test

Run the test suite with:

forge test

For more verbose output including logs:

forge test -vv

For maximum verbosity including stack traces:

forge test -vvvv

Run specific test suites:

forge test --match-contract RewardsRegistry --no-match-contract SnowbridgeIntegration

Run specific tests:

forge test --match-test test_getRewardstest_newRewardsMessage --no-match-test test_newRewardsMessage_OnlyRewardsAgent

Deployment

Local Deployment

  1. In a separate terminal, start a local Anvil instance:
anvil
  1. Deploy to local Anvil:
forge script script/deploy/DeployLocal.s.sol --rpc-url anvil --broadcast

Network Deployment

To deploy to a network configured in foundry.toml:

forge script script/deploy/DeployLocal.s.sol --rpc-url $NETWORK_RPC_URL --private-key $PRIVATE_KEY --broadcast

Replace $NETWORK_RPC_URL with the RPC endpoint and $PRIVATE_KEY with your deployer's private key.

Or using a network from foundry.toml:

forge script script/deploy/DeployLocal.s.sol --rpc-url mainnet --private-key $PRIVATE_KEY --broadcast

Configuration

The deployment configuration can be modified in:

  • script/deploy/Config.sol: Environment-specific configuration
  • script/deploy/DeployParams.s.sol: Deployment parameters