gitextract_oas6zffh/ ├── .github/ │ ├── CODEOWNERS │ ├── workflow-templates/ │ │ ├── build-prod-binary/ │ │ │ └── action.yml │ │ └── publish-docker/ │ │ └── action.yml │ └── workflows/ │ ├── CI.yml │ ├── actions/ │ │ ├── cleanup-runner/ │ │ │ └── action.yml │ │ └── setup-env/ │ │ └── action.yml │ ├── enforce-pr-labels.yml │ ├── release.yml │ ├── task-build-operator.yml │ ├── task-build-static-operator.yaml │ ├── task-check-licenses.yml │ ├── task-check-metadata.yml │ ├── task-docker-ci.yml │ ├── task-docker-release-validator-set-submitter.yml │ ├── task-docker-release.yml │ ├── task-e2e.yml │ ├── task-foundry-tests.yml │ ├── task-moonwall-tests.yml │ ├── task-publish-binary.yml │ ├── task-publish-runtime.yml │ ├── task-rust-lint.yml │ ├── task-rust-tests.yml │ ├── task-storage-layout.yml │ ├── task-ts-build.yml │ ├── task-ts-lint.yml │ ├── task-warm-sccache.yml │ └── weekly-audit.yml ├── .gitignore ├── .gitmodules ├── CLAUDE.md ├── LICENSE ├── README.md ├── biome.json ├── contracts/ │ ├── .gitignore │ ├── README.md │ ├── VERSION │ ├── config/ │ │ ├── anvil.json │ │ ├── example.jsonc │ │ ├── mainnet-ethereum.json │ │ ├── stagenet-hoodi.json │ │ └── testnet-hoodi.json │ ├── deployments/ │ │ ├── anvil-agent-info.json │ │ ├── anvil-rewards-info.json │ │ ├── anvil.json │ │ ├── hoodi.json │ │ ├── metadata.json │ │ ├── stagenet-hoodi-rewards-info.json │ │ ├── stagenet-hoodi.json │ │ ├── state-diff.checksum │ │ └── state-diff.json │ ├── foundry.toml │ ├── script/ │ │ ├── deploy/ │ │ │ ├── Config.sol │ │ │ ├── DeployBase.s.sol │ │ │ ├── DeployImplementation.s.sol │ │ │ ├── DeployLive.s.sol │ │ │ ├── DeployLocal.s.sol │ │ │ └── DeployParams.s.sol │ │ ├── fixtures/ │ │ │ └── DataHavenServiceManagerBadLayout.sol │ │ ├── transact/ │ │ │ ├── AllocateOperatorStake.s.sol │ │ │ ├── SignUpOperatorBase.s.sol │ │ │ └── SignUpValidator.s.sol │ │ └── utils/ │ │ ├── Accounts.sol │ │ ├── DHScriptStorage.s.sol │ │ ├── ELScriptStorage.s.sol │ │ ├── Logging.sol │ │ ├── SnowbridgeScriptStorage.s.sol │ │ └── ValidatorsUtils.sol │ ├── scripts/ │ │ ├── check-storage-layout-negative.sh │ │ └── check-storage-layout.sh │ ├── src/ │ │ ├── DataHavenServiceManager.sol │ │ ├── interfaces/ │ │ │ └── IDataHavenServiceManager.sol │ │ └── libraries/ │ │ ├── DataHavenSnowbridgeMessages.sol │ │ └── MerkleUtils.sol │ ├── storage-snapshots/ │ │ ├── DataHavenServiceManager.storage.json │ │ └── README.md │ └── test/ │ ├── MessageEncoding.t.sol │ ├── OperatorAddressMappings.t.sol │ ├── RewardsSubmitter.t.sol │ ├── Slashing.t.sol │ ├── SnowbridgeIntegration.t.sol │ ├── ValidatorSetSelection.t.sol │ ├── ValidatorSetSubmitter.t.sol │ ├── mocks/ │ │ ├── PermissionControllerMock.sol │ │ ├── RewardsCoordinatorMock.sol │ │ └── SnowbridgeGatewayMock.sol │ ├── storage/ │ │ └── StorageLayout.t.sol │ └── utils/ │ ├── AVSDeployer.sol │ ├── ERC20FixedSupply.sol │ ├── SnowbridgeAndAVSDeployer.sol │ └── TestUtils.sol ├── deploy/ │ ├── README.md │ ├── chainspecs/ │ │ ├── dh-testnet-spec-base.json │ │ └── dh-testnet-spec-raw.json │ ├── charts/ │ │ ├── backend/ │ │ │ ├── Chart.yaml │ │ │ ├── README.md │ │ │ ├── storagehub/ │ │ │ │ └── sh-mspbackend.yaml │ │ │ ├── templates/ │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── configmap.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── secret.yaml │ │ │ │ ├── service.yaml │ │ │ │ └── serviceaccount.yaml │ │ │ └── values.yaml │ │ ├── node/ │ │ │ ├── .gitignore │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── README.md │ │ │ ├── datahaven/ │ │ │ │ ├── dh-bootnode.yaml │ │ │ │ └── dh-validator.yaml │ │ │ ├── storagehub/ │ │ │ │ ├── sh-bspnode.yaml │ │ │ │ ├── sh-fisherman.yaml │ │ │ │ ├── sh-idxnode.yaml │ │ │ │ └── sh-mspnode.yaml │ │ │ ├── templates/ │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── customChainspecConfigmap.yaml │ │ │ │ ├── customNodeKeySecret.yaml │ │ │ │ ├── hpa.yaml │ │ │ │ ├── ingress-per-replica.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── keys.yaml │ │ │ │ ├── podDisruptionBudget.yaml │ │ │ │ ├── service.yaml │ │ │ │ ├── serviceAccount.yaml │ │ │ │ ├── serviceMonitor.yaml │ │ │ │ └── statefulset.yaml │ │ │ └── values.yaml │ │ └── relay/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── README.md │ │ ├── configs/ │ │ │ ├── beacon-relay.json │ │ │ ├── beefy-relay.json │ │ │ ├── execution-relay.json │ │ │ └── solochain-relay.json │ │ ├── snowbridge/ │ │ │ ├── dh-beacon-relay.yaml │ │ │ ├── dh-beefy-relay.yaml │ │ │ ├── dh-execution-relay.yaml │ │ │ └── dh-solochain-relay.yaml │ │ ├── templates/ │ │ │ ├── _helpers.tpl │ │ │ ├── configmap.yaml │ │ │ ├── cronjob.yml │ │ │ ├── deployment.yaml │ │ │ ├── pvc.yaml │ │ │ ├── secret.yaml │ │ │ ├── service.yaml │ │ │ ├── serviceaccount.yaml │ │ │ └── servicemonitor.yaml │ │ └── values.yaml │ └── environments/ │ ├── local/ │ │ ├── dh-beacon-relay.yaml │ │ ├── dh-beefy-relay.yaml │ │ ├── dh-bootnode.yaml │ │ ├── dh-execution-relay.yaml │ │ ├── dh-solochain-relay.yaml │ │ ├── dh-validator.yaml │ │ ├── sh-bspnode.yaml │ │ ├── sh-fisherman.yaml │ │ ├── sh-idxnode-db.yaml │ │ ├── sh-idxnode.yaml │ │ ├── sh-mspbackend.yaml │ │ ├── sh-mspnode.yaml │ │ └── traefik.yaml │ ├── stagenet/ │ │ ├── dh-beacon-relay.yaml │ │ ├── dh-beefy-relay.yaml │ │ ├── dh-bootnode.yaml │ │ ├── dh-execution-relay.yaml │ │ ├── dh-solochain-relay.yaml │ │ ├── dh-validator.yaml │ │ ├── sh-bspnode.yaml │ │ ├── sh-fisherman.yaml │ │ ├── sh-idxnode-db.yaml │ │ ├── sh-idxnode.yaml │ │ ├── sh-mspbackend.yaml │ │ └── sh-mspnode.yaml │ └── testnet/ │ ├── dh-bootnode.yaml │ └── dh-validator.yaml ├── docker/ │ ├── datahaven-build.Dockerfile │ ├── datahaven-dev.Dockerfile │ └── datahaven-production.Dockerfile ├── file_header.txt ├── operator/ │ ├── .dockerignore │ ├── .gitignore │ ├── Cargo.toml │ ├── DOCKER-COMPOSE.md │ ├── Dockerfile │ ├── README.md │ ├── benchmarking/ │ │ └── frame-weight-template.hbs │ ├── docker-compose.yml │ ├── node/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── build.rs │ │ └── src/ │ │ ├── benchmarking.rs │ │ ├── chain_spec/ │ │ │ ├── mainnet.rs │ │ │ ├── mod.rs │ │ │ ├── stagenet.rs │ │ │ └── testnet.rs │ │ ├── cli.rs │ │ ├── client.rs │ │ ├── command.rs │ │ ├── config.rs │ │ ├── consensus.rs │ │ ├── eth.rs │ │ ├── main.rs │ │ ├── rpc.rs │ │ └── service.rs │ ├── pallets/ │ │ ├── datahaven-native-transfer/ │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ └── src/ │ │ │ ├── benchmarking.rs │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ ├── tests.rs │ │ │ └── weights.rs │ │ ├── ethereum-client/ │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── benchmark.md │ │ │ ├── fixtures/ │ │ │ │ ├── Cargo.toml │ │ │ │ └── src/ │ │ │ │ └── lib.rs │ │ │ ├── src/ │ │ │ │ ├── benchmarking/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── util.rs │ │ │ │ ├── config/ │ │ │ │ │ ├── altair.rs │ │ │ │ │ ├── electra.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── debug_merkle.rs │ │ │ │ ├── functions.rs │ │ │ │ ├── impls.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── mock.rs │ │ │ │ ├── mock_electra.rs │ │ │ │ ├── tests.rs │ │ │ │ ├── tests_electra.rs │ │ │ │ ├── types.rs │ │ │ │ └── weights.rs │ │ │ └── tests/ │ │ │ ├── electra/ │ │ │ │ ├── execution-proof.json │ │ │ │ ├── finalized-header-update.json │ │ │ │ ├── inbound-message.json │ │ │ │ ├── initial-checkpoint.json │ │ │ │ ├── next-finalized-header-update.json │ │ │ │ ├── next-sync-committee-update.json │ │ │ │ └── sync-committee-update.json │ │ │ └── fixtures/ │ │ │ ├── execution-proof.json │ │ │ ├── finalized-header-update.json │ │ │ ├── inbound-message.json │ │ │ ├── initial-checkpoint.json │ │ │ ├── next-finalized-header-update.json │ │ │ ├── next-sync-committee-update.json │ │ │ ├── sync-committee-update-period-0-newer.json │ │ │ ├── sync-committee-update-period-0-older.json │ │ │ ├── sync-committee-update-period-0.json │ │ │ └── sync-committee-update.json │ │ ├── external-validator-slashes/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── benchmarking.rs │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ ├── tests.rs │ │ │ └── weights.rs │ │ ├── external-validators/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── benchmarking.rs │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ ├── tests.rs │ │ │ ├── traits.rs │ │ │ └── weights.rs │ │ ├── external-validators-rewards/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── benchmarking.rs │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ ├── tests.rs │ │ │ ├── types.rs │ │ │ └── weights.rs │ │ ├── grandpa-benchmarking/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── benchmarking.rs │ │ │ └── lib.rs │ │ ├── inbound-queue-v2/ │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── fixtures/ │ │ │ │ ├── Cargo.toml │ │ │ │ └── src/ │ │ │ │ ├── lib.rs │ │ │ │ └── register_token.rs │ │ │ └── src/ │ │ │ ├── benchmarking.rs │ │ │ ├── lib.rs │ │ │ ├── message_processors.rs │ │ │ ├── mock.rs │ │ │ ├── test.rs │ │ │ └── weights.rs │ │ ├── outbound-commitment-store/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ └── lib.rs │ │ ├── outbound-queue-v2/ │ │ │ ├── Cargo.toml │ │ │ ├── runtime-api/ │ │ │ │ ├── Cargo.toml │ │ │ │ └── src/ │ │ │ │ └── lib.rs │ │ │ └── src/ │ │ │ ├── api.rs │ │ │ ├── benchmarking.rs │ │ │ ├── fixture.rs │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ ├── process_message_impl.rs │ │ │ ├── send_message_impl.rs │ │ │ ├── test.rs │ │ │ ├── types.rs │ │ │ └── weights.rs │ │ ├── proxy-genesis-companion/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ └── tests.rs │ │ ├── session-benchmarking/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── benchmarking.rs │ │ │ └── lib.rs │ │ ├── system/ │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── runtime-api/ │ │ │ │ ├── Cargo.toml │ │ │ │ ├── README.md │ │ │ │ └── src/ │ │ │ │ └── lib.rs │ │ │ └── src/ │ │ │ ├── api.rs │ │ │ ├── benchmarking.rs │ │ │ ├── lib.rs │ │ │ ├── migration.rs │ │ │ ├── mock.rs │ │ │ ├── tests.rs │ │ │ └── weights.rs │ │ └── system-v2/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── runtime-api/ │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ └── src/ │ │ │ └── lib.rs │ │ └── src/ │ │ ├── api.rs │ │ ├── benchmarking.rs │ │ ├── lib.rs │ │ ├── mock.rs │ │ ├── tests.rs │ │ └── weights.rs │ ├── precompiles/ │ │ ├── batch/ │ │ │ ├── Batch.sol │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ └── tests.rs │ │ ├── call-permit/ │ │ │ ├── CallPermit.sol │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ └── tests.rs │ │ ├── collective/ │ │ │ ├── Cargo.toml │ │ │ ├── Collective.sol │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ └── tests.rs │ │ ├── conviction-voting/ │ │ │ ├── Cargo.toml │ │ │ ├── ConvictionVoting.sol │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ └── tests.rs │ │ ├── datahaven-native-transfer/ │ │ │ ├── Cargo.toml │ │ │ ├── DataHavenNativeTransfer.sol │ │ │ ├── README.md │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ └── tests.rs │ │ ├── erc20-balances/ │ │ │ ├── Cargo.toml │ │ │ ├── ERC20.sol │ │ │ ├── Permit.sol │ │ │ └── src/ │ │ │ ├── eip2612.rs │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ └── tests.rs │ │ ├── identity/ │ │ │ ├── Cargo.toml │ │ │ ├── Identity.sol │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ └── tests.rs │ │ ├── precompile-registry/ │ │ │ ├── Cargo.toml │ │ │ ├── PrecompileRegistry.sol │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ └── tests.rs │ │ ├── preimage/ │ │ │ ├── Cargo.toml │ │ │ ├── Preimage.sol │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ └── tests.rs │ │ ├── proxy/ │ │ │ ├── Cargo.toml │ │ │ ├── Proxy.sol │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ └── tests.rs │ │ └── referenda/ │ │ ├── Cargo.toml │ │ ├── Referenda.sol │ │ └── src/ │ │ ├── lib.rs │ │ ├── mock.rs │ │ └── tests.rs │ ├── primitives/ │ │ ├── bridge/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ └── lib.rs │ │ └── snowbridge/ │ │ ├── beacon/ │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ └── src/ │ │ │ ├── bits.rs │ │ │ ├── bls.rs │ │ │ ├── config.rs │ │ │ ├── lib.rs │ │ │ ├── merkle_proof.rs │ │ │ ├── receipt.rs │ │ │ ├── serde_utils.rs │ │ │ ├── ssz.rs │ │ │ ├── types.rs │ │ │ └── updates.rs │ │ ├── bridge-hub-common/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── digest_item.rs │ │ │ ├── lib.rs │ │ │ ├── message_queue.rs │ │ │ └── xcm_version.rs │ │ ├── core/ │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── src/ │ │ │ │ ├── lib.rs │ │ │ │ ├── location.rs │ │ │ │ ├── operating_mode.rs │ │ │ │ ├── pricing.rs │ │ │ │ ├── reward.rs │ │ │ │ ├── ringbuffer.rs │ │ │ │ ├── sparse_bitmap.rs │ │ │ │ └── tests.rs │ │ │ └── tests/ │ │ │ ├── fixtures/ │ │ │ │ └── packet.scale │ │ │ └── mod.rs │ │ ├── ethereum/ │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ └── src/ │ │ │ ├── header.rs │ │ │ ├── lib.rs │ │ │ ├── log.rs │ │ │ ├── mpt.rs │ │ │ └── receipt.rs │ │ ├── inbound-queue/ │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ ├── mock.rs │ │ │ ├── tests.rs │ │ │ ├── v1.rs │ │ │ └── v2/ │ │ │ ├── converter.rs │ │ │ ├── message.rs │ │ │ ├── mod.rs │ │ │ └── traits.rs │ │ ├── merkle-tree/ │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ └── src/ │ │ │ └── lib.rs │ │ ├── outbound-queue/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ ├── v1/ │ │ │ │ ├── message.rs │ │ │ │ └── mod.rs │ │ │ └── v2/ │ │ │ ├── converter/ │ │ │ │ ├── convert.rs │ │ │ │ ├── mod.rs │ │ │ │ └── tests.rs │ │ │ ├── delivery_receipt.rs │ │ │ ├── exporter.rs │ │ │ ├── message.rs │ │ │ └── mod.rs │ │ ├── test-utils/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ ├── mock_origin.rs │ │ │ ├── mock_outbound_queue.rs │ │ │ └── mock_xcm.rs │ │ └── verification/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src/ │ │ └── lib.rs │ ├── runtime/ │ │ ├── README.md │ │ ├── common/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── benchmarking.rs │ │ │ ├── constants.rs │ │ │ ├── deal_with_fees.rs │ │ │ ├── impl_on_charge_evm_transaction.rs │ │ │ ├── inflation.rs │ │ │ ├── lib.rs │ │ │ ├── migrations.rs │ │ │ ├── rewards_adapter.rs │ │ │ ├── safe_mode.rs │ │ │ └── slashes_adapter.rs │ │ ├── mainnet/ │ │ │ ├── Cargo.toml │ │ │ ├── build.rs │ │ │ ├── src/ │ │ │ │ ├── benchmarks.rs │ │ │ │ ├── configs/ │ │ │ │ │ ├── governance/ │ │ │ │ │ │ ├── councils.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── origins.rs │ │ │ │ │ │ ├── referenda.rs │ │ │ │ │ │ └── tracks.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── runtime_params.rs │ │ │ │ │ └── storagehub/ │ │ │ │ │ ├── client.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── genesis_config_presets.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── precompiles.rs │ │ │ │ └── weights/ │ │ │ │ ├── frame_system.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── pallet_babe.rs │ │ │ │ ├── pallet_balances.rs │ │ │ │ ├── pallet_beefy_mmr.rs │ │ │ │ ├── pallet_collective_technical_committee.rs │ │ │ │ ├── pallet_collective_treasury_council.rs │ │ │ │ ├── pallet_conviction_voting.rs │ │ │ │ ├── pallet_datahaven_native_transfer.rs │ │ │ │ ├── pallet_evm.rs │ │ │ │ ├── pallet_external_validator_slashes.rs │ │ │ │ ├── pallet_external_validators.rs │ │ │ │ ├── pallet_external_validators_rewards.rs │ │ │ │ ├── pallet_file_system.rs │ │ │ │ ├── pallet_grandpa.rs │ │ │ │ ├── pallet_im_online.rs │ │ │ │ ├── pallet_message_queue.rs │ │ │ │ ├── pallet_migrations.rs │ │ │ │ ├── pallet_mmr.rs │ │ │ │ ├── pallet_multisig.rs │ │ │ │ ├── pallet_nfts.rs │ │ │ │ ├── pallet_parameters.rs │ │ │ │ ├── pallet_payment_streams.rs │ │ │ │ ├── pallet_preimage.rs │ │ │ │ ├── pallet_proofs_dealer.rs │ │ │ │ ├── pallet_proxy.rs │ │ │ │ ├── pallet_randomness.rs │ │ │ │ ├── pallet_referenda.rs │ │ │ │ ├── pallet_safe_mode.rs │ │ │ │ ├── pallet_scheduler.rs │ │ │ │ ├── pallet_session.rs │ │ │ │ ├── pallet_storage_providers.rs │ │ │ │ ├── pallet_sudo.rs │ │ │ │ ├── pallet_timestamp.rs │ │ │ │ ├── pallet_transaction_payment.rs │ │ │ │ ├── pallet_treasury.rs │ │ │ │ ├── pallet_tx_pause.rs │ │ │ │ ├── pallet_utility.rs │ │ │ │ ├── pallet_whitelist.rs │ │ │ │ ├── snowbridge_pallet_ethereum_client.rs │ │ │ │ ├── snowbridge_pallet_inbound_queue_v2.rs │ │ │ │ ├── snowbridge_pallet_outbound_queue_v2.rs │ │ │ │ ├── snowbridge_pallet_system.rs │ │ │ │ └── snowbridge_pallet_system_v2.rs │ │ │ └── tests/ │ │ │ ├── common.rs │ │ │ ├── fee_adjustment.rs │ │ │ ├── governance/ │ │ │ │ ├── benchmarks.rs │ │ │ │ ├── councils.rs │ │ │ │ ├── integration.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── origins.rs │ │ │ │ ├── proxy.rs │ │ │ │ └── referenda.rs │ │ │ ├── lib.rs │ │ │ ├── migrations.rs │ │ │ ├── native_token_transfer.rs │ │ │ ├── proxy.rs │ │ │ ├── safe_mode_tx_pause.rs │ │ │ └── treasury.rs │ │ ├── stagenet/ │ │ │ ├── Cargo.toml │ │ │ ├── build.rs │ │ │ ├── src/ │ │ │ │ ├── benchmarks.rs │ │ │ │ ├── configs/ │ │ │ │ │ ├── governance/ │ │ │ │ │ │ ├── councils.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── origins.rs │ │ │ │ │ │ ├── referenda.rs │ │ │ │ │ │ └── tracks.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── runtime_params.rs │ │ │ │ │ └── storagehub/ │ │ │ │ │ ├── client.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── genesis_config_presets.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── precompiles.rs │ │ │ │ └── weights/ │ │ │ │ ├── frame_system.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── pallet_babe.rs │ │ │ │ ├── pallet_balances.rs │ │ │ │ ├── pallet_beefy_mmr.rs │ │ │ │ ├── pallet_collective_technical_committee.rs │ │ │ │ ├── pallet_collective_treasury_council.rs │ │ │ │ ├── pallet_conviction_voting.rs │ │ │ │ ├── pallet_datahaven_native_transfer.rs │ │ │ │ ├── pallet_evm.rs │ │ │ │ ├── pallet_external_validator_slashes.rs │ │ │ │ ├── pallet_external_validators.rs │ │ │ │ ├── pallet_external_validators_rewards.rs │ │ │ │ ├── pallet_file_system.rs │ │ │ │ ├── pallet_grandpa.rs │ │ │ │ ├── pallet_im_online.rs │ │ │ │ ├── pallet_message_queue.rs │ │ │ │ ├── pallet_migrations.rs │ │ │ │ ├── pallet_mmr.rs │ │ │ │ ├── pallet_multisig.rs │ │ │ │ ├── pallet_nfts.rs │ │ │ │ ├── pallet_parameters.rs │ │ │ │ ├── pallet_payment_streams.rs │ │ │ │ ├── pallet_preimage.rs │ │ │ │ ├── pallet_proofs_dealer.rs │ │ │ │ ├── pallet_proxy.rs │ │ │ │ ├── pallet_randomness.rs │ │ │ │ ├── pallet_referenda.rs │ │ │ │ ├── pallet_safe_mode.rs │ │ │ │ ├── pallet_scheduler.rs │ │ │ │ ├── pallet_session.rs │ │ │ │ ├── pallet_storage_providers.rs │ │ │ │ ├── pallet_sudo.rs │ │ │ │ ├── pallet_timestamp.rs │ │ │ │ ├── pallet_transaction_payment.rs │ │ │ │ ├── pallet_treasury.rs │ │ │ │ ├── pallet_tx_pause.rs │ │ │ │ ├── pallet_utility.rs │ │ │ │ ├── pallet_whitelist.rs │ │ │ │ ├── snowbridge_pallet_ethereum_client.rs │ │ │ │ ├── snowbridge_pallet_inbound_queue_v2.rs │ │ │ │ ├── snowbridge_pallet_outbound_queue_v2.rs │ │ │ │ ├── snowbridge_pallet_system.rs │ │ │ │ └── snowbridge_pallet_system_v2.rs │ │ │ └── tests/ │ │ │ ├── common.rs │ │ │ ├── fee_adjustment.rs │ │ │ ├── governance/ │ │ │ │ ├── benchmarks.rs │ │ │ │ ├── councils.rs │ │ │ │ ├── integration.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── origins.rs │ │ │ │ ├── proxy.rs │ │ │ │ └── referenda.rs │ │ │ ├── lib.rs │ │ │ ├── migrations.rs │ │ │ ├── native_token_transfer.rs │ │ │ ├── proxy.rs │ │ │ ├── safe_mode_tx_pause.rs │ │ │ ├── snowbridge_message_processor.rs │ │ │ └── treasury.rs │ │ └── testnet/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── src/ │ │ │ ├── benchmarks.rs │ │ │ ├── configs/ │ │ │ │ ├── governance/ │ │ │ │ │ ├── councils.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── origins.rs │ │ │ │ │ ├── referenda.rs │ │ │ │ │ └── tracks.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── runtime_params.rs │ │ │ │ └── storagehub/ │ │ │ │ ├── client.rs │ │ │ │ └── mod.rs │ │ │ ├── genesis_config_presets.rs │ │ │ ├── lib.rs │ │ │ ├── precompiles.rs │ │ │ └── weights/ │ │ │ ├── frame_system.rs │ │ │ ├── mod.rs │ │ │ ├── pallet_babe.rs │ │ │ ├── pallet_balances.rs │ │ │ ├── pallet_beefy_mmr.rs │ │ │ ├── pallet_collective_technical_committee.rs │ │ │ ├── pallet_collective_treasury_council.rs │ │ │ ├── pallet_conviction_voting.rs │ │ │ ├── pallet_datahaven_native_transfer.rs │ │ │ ├── pallet_evm.rs │ │ │ ├── pallet_external_validator_slashes.rs │ │ │ ├── pallet_external_validators.rs │ │ │ ├── pallet_external_validators_rewards.rs │ │ │ ├── pallet_file_system.rs │ │ │ ├── pallet_grandpa.rs │ │ │ ├── pallet_identity.rs │ │ │ ├── pallet_im_online.rs │ │ │ ├── pallet_message_queue.rs │ │ │ ├── pallet_migrations.rs │ │ │ ├── pallet_mmr.rs │ │ │ ├── pallet_multisig.rs │ │ │ ├── pallet_nfts.rs │ │ │ ├── pallet_parameters.rs │ │ │ ├── pallet_payment_streams.rs │ │ │ ├── pallet_preimage.rs │ │ │ ├── pallet_proofs_dealer.rs │ │ │ ├── pallet_proxy.rs │ │ │ ├── pallet_randomness.rs │ │ │ ├── pallet_referenda.rs │ │ │ ├── pallet_safe_mode.rs │ │ │ ├── pallet_scheduler.rs │ │ │ ├── pallet_session.rs │ │ │ ├── pallet_storage_providers.rs │ │ │ ├── pallet_sudo.rs │ │ │ ├── pallet_timestamp.rs │ │ │ ├── pallet_transaction_payment.rs │ │ │ ├── pallet_treasury.rs │ │ │ ├── pallet_tx_pause.rs │ │ │ ├── pallet_utility.rs │ │ │ ├── pallet_whitelist.rs │ │ │ ├── snowbridge_pallet_ethereum_client.rs │ │ │ ├── snowbridge_pallet_inbound_queue_v2.rs │ │ │ ├── snowbridge_pallet_outbound_queue_v2.rs │ │ │ ├── snowbridge_pallet_system.rs │ │ │ └── snowbridge_pallet_system_v2.rs │ │ └── tests/ │ │ ├── common.rs │ │ ├── fee_adjustment.rs │ │ ├── governance/ │ │ │ ├── benchmarks.rs │ │ │ ├── councils.rs │ │ │ ├── integration.rs │ │ │ ├── mod.rs │ │ │ ├── origins.rs │ │ │ ├── proxy.rs │ │ │ └── referenda.rs │ │ ├── lib.rs │ │ ├── migrations.rs │ │ ├── native_token_transfer.rs │ │ ├── proxy.rs │ │ ├── safe_mode_tx_pause.rs │ │ └── treasury.rs │ ├── rust-toolchain.toml │ └── scripts/ │ ├── build-runtime-srtool.sh │ ├── docker-entrypoint.sh │ ├── docker-healthcheck.sh │ ├── docker-prepare.sh │ ├── run-benchmarks.sh │ ├── sort-cargo-deps.sh │ ├── test_message_encoding.sh │ └── verify-licenses.sh ├── specs/ │ ├── validator-set-selection/ │ │ └── validator-set-selection.md │ └── validator-set-submission/ │ └── validator-set-submission.md ├── taplo.toml ├── test/ │ ├── .bun-version │ ├── .dockerignore │ ├── .gitignore │ ├── .nvmrc │ ├── .papi/ │ │ ├── descriptors/ │ │ │ ├── .gitignore │ │ │ └── package.json │ │ ├── metadata/ │ │ │ └── datahaven.scale │ │ └── polkadot-api.json │ ├── README.md │ ├── biome.json │ ├── bunfig.toml │ ├── cli/ │ │ ├── handlers/ │ │ │ ├── common/ │ │ │ │ ├── checks.ts │ │ │ │ ├── index.ts │ │ │ │ └── kubernetes.ts │ │ │ ├── contracts/ │ │ │ │ ├── README.md │ │ │ │ ├── beefy-checkpoint.ts │ │ │ │ ├── checks.ts │ │ │ │ ├── deploy.ts │ │ │ │ ├── index.ts │ │ │ │ ├── rewards-origin.ts │ │ │ │ ├── status.ts │ │ │ │ ├── update-metadata.ts │ │ │ │ ├── upgrade.ts │ │ │ │ └── verify.ts │ │ │ ├── deploy/ │ │ │ │ ├── cleanup.ts │ │ │ │ ├── contracts.ts │ │ │ │ ├── datahaven.ts │ │ │ │ ├── index.ts │ │ │ │ ├── kurtosis.ts │ │ │ │ ├── parameters.ts │ │ │ │ ├── relayer.ts │ │ │ │ ├── storagehub.ts │ │ │ │ └── validator.ts │ │ │ ├── exec/ │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── launch/ │ │ │ │ ├── contracts.ts │ │ │ │ ├── datahaven.ts │ │ │ │ ├── index.ts │ │ │ │ ├── kurtosis.ts │ │ │ │ ├── parameters.ts │ │ │ │ ├── relayer.ts │ │ │ │ ├── storagehub.ts │ │ │ │ ├── summary.ts │ │ │ │ └── validator.ts │ │ │ └── stop/ │ │ │ └── index.ts │ │ └── index.ts │ ├── configs/ │ │ ├── contracts/ │ │ │ └── config.ts │ │ ├── kurtosis/ │ │ │ └── minimal.yaml │ │ ├── parameters/ │ │ │ └── datahaven-parameters.json │ │ ├── snowbridge/ │ │ │ ├── genesis.json │ │ │ ├── local/ │ │ │ │ ├── beacon-relay.json │ │ │ │ ├── beefy-relay.json │ │ │ │ ├── execution-relay.json │ │ │ │ └── solochain-relay.json │ │ │ ├── stagenet/ │ │ │ │ ├── beacon-relay.json │ │ │ │ ├── beefy-relay.json │ │ │ │ ├── execution-relay.json │ │ │ │ └── solochain-relay.json │ │ │ └── tanssi-examples/ │ │ │ ├── beacon-relay.json │ │ │ ├── beefy-relay.json │ │ │ ├── dump-initial-checkpoint.json │ │ │ ├── execution-relay-asset-hub.json │ │ │ ├── execution-relay.json │ │ │ ├── genesis.json │ │ │ ├── snowbridge_contracts.json │ │ │ ├── substrate-relay-asset-hub.json │ │ │ ├── substrate-relay-primary.json │ │ │ ├── substrate-relay-secondary.json │ │ │ └── symbiotic_contracts.json │ │ └── validator-set.json │ ├── contract-bindings/ │ │ ├── generated.ts │ │ └── index.ts │ ├── docker/ │ │ └── crossbuild-mac-libpq.dockerfile │ ├── docs/ │ │ ├── E2E_FRAMEWORK_OVERVIEW.md │ │ └── deployment.md │ ├── e2e/ │ │ ├── framework/ │ │ │ ├── connectors.ts │ │ │ ├── index.ts │ │ │ ├── manager.ts │ │ │ ├── submitter.ts │ │ │ ├── suite.ts │ │ │ └── validators.ts │ │ └── suites/ │ │ ├── native-token-transfer.test.ts │ │ ├── rewards-message.test.ts │ │ ├── slash.test.ts │ │ ├── storagehub.test.ts │ │ └── validator-set-update.test.ts │ ├── launcher/ │ │ ├── contracts.ts │ │ ├── datahaven.ts │ │ ├── index.ts │ │ ├── kurtosis.ts │ │ ├── network/ │ │ │ └── index.ts │ │ ├── parameters.ts │ │ ├── relayers.ts │ │ ├── storagehub-docker.ts │ │ ├── types/ │ │ │ ├── index.ts │ │ │ └── launchedNetwork.ts │ │ ├── utils/ │ │ │ ├── checks.ts │ │ │ ├── constants.ts │ │ │ └── index.ts │ │ └── validators.ts │ ├── moonwall/ │ │ ├── contracts/ │ │ │ └── src/ │ │ │ ├── AccessListHelper.sol │ │ │ ├── BloatedContract.sol │ │ │ ├── BlockVariables.sol │ │ │ ├── CallBatchFromConstructor.sol │ │ │ ├── CallForwarder.sol │ │ │ ├── ECContracts.sol │ │ │ ├── EventEmitter.sol │ │ │ ├── FailingConstructor.sol │ │ │ ├── Fibonacci.sol │ │ │ ├── HasherChecker.sol │ │ │ ├── Incrementor.sol │ │ │ ├── Looper.sol │ │ │ ├── MultiplyBy7.sol │ │ │ ├── SelfDestruct.sol │ │ │ ├── SimpleContractFactory.sol │ │ │ ├── StateOverrideTest.sol │ │ │ ├── StorageLoop.sol │ │ │ ├── SubCallOOG.sol │ │ │ └── dancun/ │ │ │ ├── ProxySuicide.sol │ │ │ └── TransientStorage.sol │ │ ├── helpers/ │ │ │ ├── block.ts │ │ │ ├── constants.ts │ │ │ ├── contracts.ts │ │ │ ├── eth-transactions.ts │ │ │ ├── evm.ts │ │ │ ├── expect.ts │ │ │ ├── fees.ts │ │ │ ├── index.ts │ │ │ ├── modexp.ts │ │ │ ├── parameters.ts │ │ │ ├── precompile-addresses.ts │ │ │ ├── precompile-contract-calls.ts │ │ │ └── transactions.ts │ │ └── suites/ │ │ └── dev/ │ │ ├── common/ │ │ │ ├── test-block/ │ │ │ │ ├── test-block-1.ts │ │ │ │ ├── test-block-2.ts │ │ │ │ ├── test-block-gas.ts │ │ │ │ ├── test-block-genesis.ts │ │ │ │ └── test-block-safe-mode.ts │ │ │ ├── test-contract/ │ │ │ │ └── test-contract-creation.ts │ │ │ ├── test-precompile/ │ │ │ │ └── test-precompile-batch.ts │ │ │ └── test-proxy/ │ │ │ └── test-proxy-balance.ts │ │ └── stagenet/ │ │ ├── balance/ │ │ │ ├── test-balance-existential.ts │ │ │ ├── test-balance-extrinsics.ts │ │ │ ├── test-balance-genesis.ts │ │ │ └── test-balance-transfer.ts │ │ ├── contract/ │ │ │ ├── test-contract-delegate-call.ts │ │ │ ├── test-contract-error.ts │ │ │ ├── test-contract-event.ts │ │ │ ├── test-contract-evm-limits.ts │ │ │ ├── test-contract-fibonacci.ts │ │ │ ├── test-contract-incr-loop.ts │ │ │ ├── test-contract-loop-cost.ts │ │ │ ├── test-contract-methods.ts │ │ │ ├── test-contract-variables.ts │ │ │ ├── test-eip-6780.ts │ │ │ └── test-eip1153.ts │ │ ├── eth-call/ │ │ │ └── test-eth-call-state-override.ts │ │ ├── eth-fee/ │ │ │ ├── test-eth-fee-history.ts │ │ │ ├── test-eth-paysFee.ts │ │ │ └── test-eth-txn-weights.ts │ │ ├── eth-pool/ │ │ │ ├── test-eth-pool-discard.ts │ │ │ ├── test-eth-pool-error.ts │ │ │ ├── test-eth-pool-multiple.ts │ │ │ ├── test-eth-pool-nonce-future.ts │ │ │ └── test-eth-pool-resubmit-txn.ts │ │ ├── eth-rpc/ │ │ │ ├── test-eth-rpc-constants.ts │ │ │ ├── test-eth-rpc-deprecated.ts │ │ │ ├── test-eth-rpc-log-filtering.ts │ │ │ ├── test-eth-rpc-transaction-receipt.ts │ │ │ ├── test-eth-rpc-tx-index.ts │ │ │ └── test-eth-rpc-version.ts │ │ ├── eth-tx/ │ │ │ ├── test-eth-tx-access-list.ts │ │ │ ├── test-eth-tx-native-transfer.ts │ │ │ ├── test-eth-tx-size.ts │ │ │ ├── test-eth-tx-types.ts │ │ │ └── test-test-tx-nonce.ts │ │ ├── ethers/ │ │ │ └── test-ethers.ts │ │ ├── evm/ │ │ │ ├── test-pallet-evm-overflow.ts │ │ │ └── test-pallet-evm-transfer.ts │ │ ├── filter/ │ │ │ ├── test-filter-api-creation.ts │ │ │ ├── test-filter-api-pending.ts │ │ │ └── test-filter-api-polling.ts │ │ ├── gas/ │ │ │ ├── test-gas-contract-creation.ts │ │ │ ├── test-gas-estimation-allcontracts.ts │ │ │ ├── test-gas-estimation-contracts.ts │ │ │ ├── test-gas-estimation-multiply.ts │ │ │ └── test-gas-estimation-subcall-oog.ts │ │ ├── multisig/ │ │ │ └── test-multisigs.ts │ │ ├── node-rpc/ │ │ │ └── test-node-rpc-peer.ts │ │ ├── polkadot-js/ │ │ │ ├── test-polkadot-api.ts │ │ │ └── test-polkadot-chain-info.ts │ │ ├── precompile/ │ │ │ ├── test-precompile-blake2.ts │ │ │ ├── test-precompile-bn128-bounds.ts │ │ │ ├── test-precompile-bn128add.ts │ │ │ ├── test-precompile-bn128mul.ts │ │ │ ├── test-precompile-bn128pairing.ts │ │ │ ├── test-precompile-ecrecover.ts │ │ │ ├── test-precompile-erc20-overflow.ts │ │ │ ├── test-precompile-erc20.ts │ │ │ ├── test-precompile-identity.ts │ │ │ ├── test-precompile-identity10.ts │ │ │ ├── test-precompile-identity11.ts │ │ │ ├── test-precompile-identity12.ts │ │ │ ├── test-precompile-identity13.ts │ │ │ ├── test-precompile-identity14.ts │ │ │ ├── test-precompile-identity2.ts │ │ │ ├── test-precompile-identity3.ts │ │ │ ├── test-precompile-identity4.ts │ │ │ ├── test-precompile-identity5.ts │ │ │ ├── test-precompile-identity6.ts │ │ │ ├── test-precompile-identity7.ts │ │ │ ├── test-precompile-identity8.ts │ │ │ ├── test-precompile-identity9.ts │ │ │ ├── test-precompile-modexp.ts │ │ │ ├── test-precompile-preimage.ts │ │ │ ├── test-precompile-proxy.ts │ │ │ ├── test-precompile-ripemd160.ts │ │ │ └── test-precompile-sha3fips.ts │ │ ├── proxy/ │ │ │ └── test-proxy.ts │ │ ├── receipt/ │ │ │ ├── test-receipt-revert.ts │ │ │ └── test-receipt.ts │ │ ├── storage-growth/ │ │ │ └── test-evm-store-storage-growth.ts │ │ ├── subscription/ │ │ │ ├── test-subscription-logs.ts │ │ │ ├── test-subscription-logs2.ts │ │ │ ├── test-subscription-pending.ts │ │ │ └── test-subscription.ts │ │ ├── sudo/ │ │ │ └── test-sudo.ts │ │ └── txpool/ │ │ ├── test-txpool-future.ts │ │ └── test-txpool-pending.ts │ ├── moonwall.config.json │ ├── package.json │ ├── resources/ │ │ └── datahaven-integration-test-flow.md │ ├── scripts/ │ │ ├── cargo-crossbuild.ts │ │ ├── check-generated-state.ts │ │ ├── compile-contracts.sh │ │ ├── compile-contracts.ts │ │ ├── contracts-checksum.ts │ │ ├── deploy-contracts.ts │ │ ├── fund-providers.ts │ │ ├── fund-validators.ts │ │ ├── generate-contracts.ts │ │ ├── register-providers.ts │ │ ├── send-txn.ts │ │ ├── set-datahaven-parameters.ts │ │ ├── setup-validators.ts │ │ ├── test-parallel.ts │ │ └── update-validator-set.ts │ ├── tools/ │ │ └── validator-set-submitter/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── chain.ts │ │ ├── config.ts │ │ ├── config.yml │ │ ├── main.ts │ │ ├── metrics.ts │ │ └── submitter.ts │ ├── tsconfig.json │ ├── utils/ │ │ ├── anvil.ts │ │ ├── blockscout.ts │ │ ├── constants.ts │ │ ├── contracts/ │ │ │ └── versioning.ts │ │ ├── contracts.ts │ │ ├── docker.ts │ │ ├── events.ts │ │ ├── index.ts │ │ ├── input.ts │ │ ├── kurtosis.ts │ │ ├── logger.ts │ │ ├── papi.ts │ │ ├── parameters.ts │ │ ├── parser.ts │ │ ├── rpc.ts │ │ ├── service-mappings.ts │ │ ├── shell.ts │ │ ├── types.ts │ │ ├── validators.ts │ │ ├── viem.ts │ │ └── waits.ts │ └── wagmi.config.ts └── tools/ ├── .nvmrc ├── README.md ├── github/ │ ├── generate-release-body.ts │ ├── generate-runtimes-body.ts │ └── github-utils.ts ├── package.json └── tsconfig.json