Repository navigation
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: Blockchains/uniswap-python
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: bc8fdf4
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: uniswap-python/uniswap-python
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 75efb7d
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 17 commits
- 54 files changed
- 4 contributors
Commits on Oct 12, 2026
-
feat(metrics): adoption baseline snapshot script + daily workflow (UF…
… grant D3/D4) (uniswap-python#480) * feat(metrics): adoption baseline snapshot script and daily workflow Adds scripts/adoption_snapshot.py (stdlib-only) that captures: - GitHub stars, forks, watchers, open issues - GitHub Traffic: clones/views (14-day window; requires push-access token — the bundled GH Actions workflow captures this automatically) - PyPI downloads last day/week/month (pypistats.org) - Recent release versions and dates Modes: Snapshot (default): emits metrics/adoption-YYYY-MM-DD.{json,md} Report (--report BASELINE.json): prints deltas vs baseline for D4 Also adds .github/workflows/adoption-snapshot.yml (daily at 06:00 UTC) that runs with the repo's GITHUB_TOKEN so traffic data accumulates before the 14-day window rolls off. Initial bootstrap snapshot included (2026-09-02): 1011 stars, 375 forks, 1044 PyPI downloads/month. Per-version download splits require BigQuery (documented in script TODO). Co-authored-by: Erik Bjäreholt <[email protected]> Git-Session-Id: 3b38 * fix(metrics): fail closed on traffic auth and collector errors The default Actions GITHUB_TOKEN cannot read /traffic/* (always 403). The workflow now prefers ADOPTION_GITHUB_TOKEN (PAT), runs --strict so failed/skipped collectors do not commit N/A snapshots, retries 429s, and includes traffic deltas in --report. Push path rebases on conflict. * test: xfail v1 UNI-exchange price-output cases (no liquidity) Same fix as uniswap-python#479 — the v1 UNI exchange has no remaining liquidity so get_price_output raises EVM error InvalidJump on mainnet fork. Git-Session-Id: 8f77 * fix(metrics): reconstruct traffic period totals from daily series GitHub Traffic is a rolling 14-day window, not a cumulative counter. Subtracting two windows produced misleading D4 deltas. Store the daily breakdown (per=day) and union it across snapshots for period clone/view counts. Unique visitors stay point-in-time — they are not additive. * fix(metrics): exclude partial current UTC day from period totals Report mode included today's still-accumulating GitHub Traffic row in D4 period totals, understating clones/views on every 06:00 UTC run. Drop that day from the reconstructed range and label it excluded. * fix(metrics): pin collection clock so midnight cannot include a partial day complete_period_end() re-read datetime.now() after collect_metrics() had already stamped snapshot_at. A report that started before UTC midnight and finished after kept the earlier snapshot day, skipped exclusion, and published that day's still-accumulating Traffic row as a complete total. Use one collected_at for snapshot_at, the filename, and period-end exclusion. When now is omitted, key off the snapshot day rather than a fresh clock. --------- Co-authored-by: Erik Bjäreholt <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 43420bc - Browse repository at this point
Copy the full SHA 43420bcView commit details -
Configuration menu - View commit details
-
Copy full SHA for de4e08d - Browse repository at this point
Copy the full SHA de4e08dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2ac1b83 - Browse repository at this point
Copy the full SHA 2ac1b83View commit details
Commits on Oct 13, 2026
-
Configuration menu - View commit details
-
Copy full SHA for c96d1b0 - Browse repository at this point
Copy the full SHA c96d1b0View commit details -
test(v4): poll Anvil startup instead of a fixed sleep (uniswap-python…
…#486) * test(v4): poll Anvil startup instead of a fixed sleep Both v4 test modules started anvil and then slept 3 seconds before connecting. On a slow fork that is not enough and the matrix fails with ConnectionRefusedError; on a fast machine it wastes time; and when anvil dies at genesis the fixture still waits out the sleep and then fails on the connection instead of the real cause. Poll the RPC port for up to 60s, fail immediately with the exit code if the process exits first, and kill it on timeout. Git-Session-Id: 9d44438c-8705-491c-9930-947968df9a94 * fix(tests): reap timed-out Anvil and use monotonic deadlines Git-Session-Id: 0fead8e2-e37e-58e4-b158-56598d831c9d
Configuration menu - View commit details
-
Copy full SHA for aa2c09a - Browse repository at this point
Copy the full SHA aa2c09aView commit details
Commits on Oct 14, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 2e5aee3 - Browse repository at this point
Copy the full SHA 2e5aee3View commit details -
feat(v4): UF grant work — async clients, ReservesLens, CI/test fixes …
…(clean branch) (uniswap-python#491) * feat(v4): UF grant work — async clients, ReservesLens, CI/test fixes Clean branch off master containing liquid-8's changes from dev/v4-fin: - Async Uniswap v2/v3/v4 clients (asyncuniswap.py, asyncuniswap4.py) - ReservesLens support and getPoolTVLBatch improvements - Universal Router and single/multi-hop swap fixes - Test suite fixes (RPC switch, Anvil startup, fixture fixes) - Adoption metrics snapshot script + daily workflow (UF grant D3/D4) - README updates Clean squash of dev/v4-fin changes reapplied on top of current master, resolving the 244-commit ancestry confusion from the original v4-fin squash merge (4c42f1f). Also fixes duplicate Generator import in tests/test_uniswap.py (ruff F811). Git-Session-Id: 15b18137-18fa-53a4-92e2-759ce27705c7 * fix: address Greptile P1/P2 findings from review - Restore @check_approval on make_trade/make_trade_output/add_liquidity/ remove_liquidity (P1: first token trades fail without router allowance) - Remove path overwrite after cost calculation in V2 exact-output branch (P1: custom route was silently replaced with default WETH route) - Raise ValueError when V3 route is given without fees in get_price and make_trade (P1: incomplete routes silently fell back to single-pool quote) - Fix async client init to derive provider URL from supplied AsyncWeb3 so PROVIDER env var is not required when web3 is given (P1) - Add asyncio.Lock (_nonce_lock) in AsyncUniswap4 and reserve nonce inside the lock before yielding to prevent concurrent trades sharing a nonce (P1) - Remove incorrect await on bytes32 _name.decode()/_symbol.decode() in AsyncUniswap4.get_token — decode() returns str, not awaitable (P2) - Restore Anvil startup readiness poll in test_uniswap4.py fixture, replacing sleep(3) that was reverted from uniswap-python#486 (P2) - Cache get_weth_address result per client instance to avoid repeated RPC calls on every quote/swap path (P2) Co-Authored-By: Bob <[email protected]> Git-Session-Id: d44b7f42-192e-588b-98db-435d6ad11d1c * fix(typecheck): remove unused type: ignore[return-value] on get_weth_address _weth_address_cache is typed as ChecksumAddress (same as return type), so the ignore comment is now redundant and mypy correctly flags it. Git-Session-Id: c95ac4a4-64bd-42b3-9f79-c55ca4dfb9cf
Configuration menu - View commit details
-
Copy full SHA for 02c0368 - Browse repository at this point
Copy the full SHA 02c0368View commit details
Commits on Oct 15, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 346767c - Browse repository at this point
Copy the full SHA 346767cView commit details
Commits on Oct 16, 2026
-
Configuration menu - View commit details
-
Copy full SHA for d0a100e - Browse repository at this point
Copy the full SHA d0a100eView commit details
Commits on Oct 17, 2026
-
Configuration menu - View commit details
-
Copy full SHA for a3ca335 - Browse repository at this point
Copy the full SHA a3ca335View commit details
Commits on Oct 18, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 9d81d95 - Browse repository at this point
Copy the full SHA 9d81d95View commit details
Commits on Oct 19, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 0ab3059 - Browse repository at this point
Copy the full SHA 0ab3059View commit details
Commits on Oct 20, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 58c0bf2 - Browse repository at this point
Copy the full SHA 58c0bf2View commit details
Commits on Oct 21, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 51286c4 - Browse repository at this point
Copy the full SHA 51286c4View commit details
Commits on Oct 22, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 47d6922 - Browse repository at this point
Copy the full SHA 47d6922View commit details
Commits on Oct 23, 2026
-
Configuration menu - View commit details
-
Copy full SHA for dcd37c0 - Browse repository at this point
Copy the full SHA dcd37c0View commit details
Commits on Oct 24, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 75efb7d - Browse repository at this point
Copy the full SHA 75efb7dView commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff bc8fdf4...75efb7d