Conversation
|
All contributors have signed the CLA ✍️ ✅ |
aff7b2c to
dad9d3d
Compare
|
This pull request has been marked as stale because it has been inactive a while. Please update this pull request or it will be automatically closed. |
crates/e2e/src/setup/colocation.rs
Outdated
| [pod] | ||
| endpoint = {:?} | ||
| auction-contract-address = {:?} |
There was a problem hiding this comment.
This should be moved to the start_driver_with_config_override callsite where you setup your e2e
|
This pull request has been marked as stale because it has been inactive a while. Please update this pull request or it will be automatically closed. |
99c8b62 to
78a3e71
Compare
| [[package]] | ||
| name = "jsonwebtoken" | ||
| version = "9.3.1" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" | ||
| dependencies = [ | ||
| "base64 0.22.1", | ||
| "js-sys", | ||
| "pem", | ||
| "ring", | ||
| "serde", | ||
| "serde_json", | ||
| "simple_asn1", | ||
| ] |
Check warning
Code scanning / Trivy
jsonwebtoken: jsonwebtoken has Type Confusion that leads to potential authorization bypass Medium
e32884c to
7f0f75c
Compare
Pod Integration: Design Decisions (more context apart from PR description)Shadow Mode ArchitecturePod integration runs in shadow mode, so bid submission failures are logged as warnings but never block the protocol flow. Haircut-Based Score Differentiation (fo rthe e2e Tests)Since i'm using 2 instances of baseline solvers to simulate competition for the e2e tests; they produce the same flowTwo solvers competing for the same order find identical routes → identical scores. SolutionUse
This reliably produces different scores for testing pod winner selection without complex liquidity setup. Nonce/Pending TX HandlingCurrent IssuePod network rejects new TXs when previous ones from same sender are pending: Approach
Deterministic Test AddressesE2E tests use deterministic addresses derived from Anvil's default mnemonic. Pre-funding these on pod network:
Both funded with ~10 ETH on pod network. Config Structure[pod]
endpoint = "http://cow.pod.network:8545"
auction-contract = "0xeDD0670497E00ded712a398563Ea938A29dD28c7"Wallet uses existing |
- Remove spurious pub mod bad_tokens (competition/mod.rs), pub mod fee (e2e setup/mod.rs), and participation_guard re-export (autopilot) - Replace derivative crate with manual Debug impl for Solver - Remove unused primitive-types dependency - Delete HANDOFF_PROMPT.md and PLAYGROUND_DEEP_DIVE.md (not part of pod feature)
…twork testing - Add autopilot.toml with driver configurations (required by new --config CLI arg) - Fix driver2.toml: add missing tx-gas-limit, correct solver name/endpoint to baseline2 - Fix NATIVE_PRICE_ESTIMATORS format in compose files (add Driver| prefix for baseline2) - Mount autopilot.toml in docker-compose.non-interactive.yml The autopilot binary now requires a --config TOML file specifying drivers and fee policies, replacing the previous DRIVERS environment variable approach.
…ebase to latest main branch, get test and services compiling again
…rbosity - Add test-pod-verbose justfile target for detailed test output - Replace [pod] log prefixes with structured tracing spans (pod_flow, pod_submit_bid, pod_fetch_bids, pod_local_arbitration) - Move auction_id and solver context to span fields instead of repeating in each log - Reduce log noise: change balance fetch failure from error to warn, make signer type selection debug-level - Add debug-level payload hex logging,
eec3eab to
62e7fc4
Compare
|
I have read the CLA Document and I hereby sign the CLA |
New Crates & Modules
winner-selection: Deterministic solution hashing and combinatorial auction arbitration logicDriver Pod Flow
Configuration
[pod]TOML section:endpoint,auction_contract, wallet configE2E Tests
pod_test_basic: Single solver bid submission + winner verificationpod_test_multi_order: Multiple orders in single auctionpod_test_multi_solver: Competing solvers with haircut-based score differentiationBug Fixes
NonescoresHow to Test
Local Services
1. Start anvil in fork mode for mainnet.
1a. state override to bypass solver whitelisting requirement
❯ cast rpc -r http://127.0.0.1:8545 anvil_setCode \ 0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE \ 0x600160005260206000F32. Start services DB and perform migrations (if not running)
3. Start services (update configs with actual working values for DB URL, etc. for your local machine; you don't have to make any changes to existing configs to support the pod-network addition
cargo run -p driver -- --config configs/local/driver.toml
cargo run -p autopilot -- --config configs/local/autopilot.toml
cargo run -p orderbook -- --config configs/local/orderbook.toml
5. Submit order via API and check logs for:
E2E Tests
# Run all pod tests cargo nextest run -p e2e pod_test --run-ignored ignored-only --test-threads 1Known Issues (waiting on response)
Pending TX on Pod Network
Bid submission fails with:
Details:
http://cow.pod.network:85450xeDD0670497E00ded712a398563Ea938A29dD28c70xf985d2cf3f3c5cfc798d8e9e4ebdd6777653c3cbForwarded to pod team - tests will fail until resolved. Shadow mode ensures main flow continues.
Related