What's Changed
- chore: rename bench.nu to tempo.nu by @shekhirin in #1698
- feat(docs): add validator guide by @Zygimantass in #1559
- chore(llm): add amp tools for tempo.nu by @Zygimantass in #1704
- feat(docs): allegro moderato by @jenpaff in #1653
- Fix the Artemis Tempo link by @akegaviar in #1584
- feat: implement PostHog custom event tracking for docs by @juandolealt in #1687
- chore(deps): run cargo shear by @DaniPopes in #1691
- feat(xtask): move generate-signing-key to consensus subcmd by @Zygimantass in #1551
- Add
stableDocker tag for tag-triggered builds by @Zygimantass in #1737 - fix: propagate features correctly by @klkvr in #1731
- fix: clean-up 2d nonce pool tracker by @klkvr in #1738
- chore: add RUSTSEC-2025-0137 to deny.toml by @0xKitsune in #1745
- feat!(consensus): remove all pre-allegretto logic by @SuperFluffy in #1671
- Partition
cargo hack checkinto 2 CI matrix jobs by @Zygimantass in #1748 - docs: add dRPC in Developer tools by @joshitzko in #1747
- docs: add theta and path USD to fee token guide by @struong in #1754
- docs: Tempo Transaction guide in nav by @struong in #1756
- chore: bump commonware to 4a5fca0 by @SuperFluffy in #1678
- fix(stablecoin-exchange): use centralized price conversion functions by @fgimenez in #1763
- faucet fix by @malleshpai in #1771
- fix(docs): correct safe deployer repo by @Zygimantass in #1728
- fix: catch slot collisions when using
base_slotattrib by @0xrusowsky in #1777 - fix: support UP/UV validation sigs to always accept UV=1 by @0xrusowsky in #1652
- refactor!(consensus): standardize dkg with upstream commonware by @SuperFluffy in #1759
- chore!: bump commonware to v0.0.64 by @SuperFluffy in #1778
- feat!: remove hardfork logic by @0xrusowsky in #1707
- feat(tip20): add getPendingRewards view function to query claimable rewards without state change by @fgimenez in #1632
- fix(precompiles): reject zero public key in ValidatorConfig to prevent non-existent validators by @fgimenez in #1630
- feat(consensus): backfill missing execution layer blocks by @SuperFluffy in #1781
- perf(orderbook): optimize tick bitmap traversal using word-level bit manipulation by @fgimenez in #1622
- perf: remove redundant balance read in transfer by @legion2002 in #1793
- fix(stablecoin-exchange): use consistent rounding for bid order cancel refunds by @fgimenez in #1795
- fix(specs): update reference implementation of stablecoin DEX by @danrobinson in #1796
- fix(rpc): mitigate subblock tx DoS via early validator filtering and increased channel capacity by @fgimenez in #1628
- fix: add pause check to transfer_fee_pre_tx by @legion2002 in #1799
- fix: validator fee tracking by token by @legion2002 in #1798
- fix: update auth checks when claiming rewards by @0xKitsune in #1800
- Bump commonware to d16c7481c72cf6f19b77e1435f1e5dd8e32a1aac by @kamsz in #1804
- feat: increase min order amount for stable dex orders by @0xKitsune in #1802
- fix: add revert if policy doesn't exist by @legion2002 in #1801
- docs: remove outdated pending swaps claim from burn function by @yongkangc in #1810
- feat: add new MintWithValidatorToken event with field by @howydev in #1466
- fix(dex): have flip orders only draw from internal balances by @danrobinson in #1806
- fix(specs): function to cancel stale order by @danrobinson in #1794
- fix(executor): propagate fork choice update errors by @fgimenez in #1774
- docs(specs): change DEX pair storage layout to be order-sensitive by @danrobinson in #1791
- fix(specs): check 403 policy on both tokens in stablecoin DEX by @danrobinson in #1805
- chore: remove compact hack for mainnet by @legion2002 in #1814
- fix: std
get_validator_tokento return the default token when unset by @0xrusowsky in #1651 - fix: intrinsic gas checks in validator by @legion2002 in #1666
- fix: incorrect permit2 bytecode by @howydev in #1789
- chore(audit): misc comments from auditors by @0xrusowsky in #1662
- Add info on supported platforms by @jenpaff in #1837
- fix(dex): upcast to U256 before mulDiv in base_to_quote and quote_to_base by @fgimenez in #1835
- fix: prevent index overflow in
VecHandlerby @0xrusowsky in #1631 - fix: ensure mutable TIP20Token calls point to initialized addresses by @0xrusowsky in #1790
- docs(alloy): add tip20 example in crate docs by @onbjerg in #1830
- fix: monitor pool creation by listening events + use token WL by @fgimenez in #1820
- fix(dex): round up baseNeeded in exactOut for bids by @danrobinson in #1823
- use a larger runner for docs generation by @brendanjryan in #1840
- feat: add re-dkg trigger methods to validator precompile by @joshieDo in #1680
- feat!(consensus): fast sync by @SuperFluffy in #1822
- feat(consensus): start at the latest finalized height, not at genesis by @SuperFluffy in #1838
- fix: create address calculations + restrictions by @legion2002 in #1792
- chore: remove TODOs, FIXMEs by @SuperFluffy in #1843
- feat: add full dkg mechanism by @joshieDo in #1821
- add missing article to tempo txn docs by @brendanjryan in #1850
- fix(docs): bump viem to 2.43.5 by @struong in #1849
- feat(xtask): add genesis customization options by @Zygimantass in #1836
- fix: validate calls inside handler by @legion2002 in #1845
- fix(revm): don't re-bump nonce on CREATE revert with 2D nonces by @legion2002 in #1851
- fix(precompiles-macros): account for last field
SLOTSby @0xrusowsky in #1847 - feat!: change tip20 deployment scheme by @howydev in #1819
- fix: properly check if an account is cold when loading its info by @0xrusowsky in #1855
- feat(precompiles): impl
IndexandIndexMuttraits by @0xrusowsky in #1488 - perf(precompiles)!: use efficient packing strategy by @0xrusowsky in #1848
- fix: review fixes by @howydev in #1859
- chore(docs): add AGENTS.md by @struong in #1852
- feat(xtask): add get-dkg-outcome command by @kuyziss in #1858
- refactor(consensus): surface the executor actor by @SuperFluffy in #1861
- docs: remove deadlink from nav by @malleshpai in #1863
- fix: update
swap_exact_amount_outto use saturating sub by @0xKitsune in #1867 - fix: remove unnecessary checks on
TIPFeeManager.burn()by @0xKitsune in #1871 - fix: update min/max price in spec by @0xKitsune in #1869
- chore: bump msrv to 1.91 by @SuperFluffy in #1877
- docs: tempo.ts/wagmi -> wagmi/tempo by @tmm in #1873
- feat(specs): remove
FeeSwapevent to align with precompile impl by @0xKitsune in #1880 - chore(test): add
validator_can_fast_sync_after_full_dkgtest by @joshieDo in #1883 - ci: use Rust 1.91 in Docker by @shekhirin in #1885
- docs: restore guide template by @struong in #1887
- fix: emit event for tip20 default admin role initialization by @howydev in #1870
- fix!(precompiles): fix capitalization for pathusd name by @danrobinson in #1893
- fix(dex): fix stablecoin DEX to round up without adding 1, and revert compensatory fixes by @danrobinson in #1895
- fix(specs): update
isTIP20()inTempoUtilsto matchis_tip20in precompiles by @0xKitsune in #1881 - fix(precompiles): remove usd check to align precompile with spec by @0xKitsune in #1872
- docs(precompiles): remove stale comment in
set_validator_tokenby @0xKitsune in #1875 - chore!(consensus): reindex p2p channels by @SuperFluffy in #1902
- chore(consensus): use recommended p2p defaults by @SuperFluffy in #1901
- feat!(precompiles): remove
TIPFeeManager.get_fee_token_balance()by @0xKitsune in #1874 - fix(subblock): [build] drop txs above gas budget to prevent DOS by @0xrusowsky in #1888
- feat(alloy): add runnable examples by @onbjerg in #1832
- Add Moderato testnet support by @kamsz in #1876
- feat!(precompiles): add public getters to
ValidatorConfigprecompile to match spec impl by @0xKitsune in #1878 - chore(feeAMM): align spec with rust implementation, remove unused custom errors by @zerosnacks in #1904
- chore(precompiles): remove
sqrtfromFeeAMM.solspec, makesqrtprivate test helper, remove unusedSQRT_SCALEconstant by @zerosnacks in #1879 - chore(consensus): remove unused
--consensus.delete-sigining-shareby @SuperFluffy in #1905 - fix(subblock): [validation] drop txs above gas budget by @0xrusowsky in #1899
- chore: bump alloy-chains with tempo moderato by @mattsse in #1906
- feat: add
consensus_namespace to RPC by @joshieDo in #1868 - test(e2e): reactivate ignored subblocks test by @SuperFluffy in #1862
- chore(precompiles): match against
SolCallenum by @0xrusowsky in #1890 - fix(consensus/p2p): enable private ip connections by @Zygimantass in #1911
- test(specs): always check event emission order regardless of isTempo by @onbjerg in #1908
- feat: Add info note on fee atomicity by @gorried in #1897
- chore!(consensus): bump commonware to latest main by @SuperFluffy in #1882
- feat(consensus/p2p): allow switching to local defaults by @Zygimantass in #1915
- chore: ignore
lruandbincodeby @0xrusowsky in #1916 - feat!: consolidtate
OrderPlaced,FlipOrderPlacedevents by @0xKitsune in #1910 - chore!: rename stablecoin exchange to stablecoin dex by @0xKitsune in #1913
- chore(docs): bump vocs to 1.4.1 by @snario in #1921
- warns ci on unformatted docs by @brendanjryan in #1922
- fix(spec): update dex reference implementation with escrow rounding up by @danrobinson in #1903
- feat: add fuzz tests for fee amm + fee manager by @howydev in #1552
- test(consensus): update
consensustest coverage by @0xKitsune in #1894 - test(evm): expand test coverage for
evmcrate by @0xKitsune in #1892 - chore: fix genesis generation in Justfile and tempo.nu by @shekhirin in #1931
- fix(feeAMM): handle zero amounts gracefully by @zerosnacks in #1936
- chore: bump commonware to latest main by @SuperFluffy in #1928
- chore: version to v1.0.0-rc.1 by @Zygimantass in #1939
- fix: initialize allocator by @shekhirin in #1932
- feat(builder): add RLP block size metrics by @shekhirin in #1866
- fix(revm)!: multicall gas calc by @0xrusowsky in #1941
- chore(precompiles): add
FixedBytesstorage test by @zerosnacks in #1943 - fix(specs): update bestBidTick/bestAskTick when cancelling last order at best tick by @onbjerg in #1934
- moderato docs by @jenpaff in #1929
- feat(docs): add node versions by @Zygimantass in #1944
- chore: add
--max-concurrent-requestsflag totempo.nu benchby @shekhirin in #1942 - fix(docs): use tempoModerato instead of tempoTestnet by @struong in #1949
- docs: stablecoin dex refs by @jxom in #1945
- docs: cleaner testnet network upgrade info by @snario in #1946
- chore(test): Testing coverage for revm handler by @rakita in #1889
- test(precompiles): increase coverage for TIP20Factory by @0xrusowsky in #1952
- fix(tip20): prevent cycles in quote token updates for
pathUSDby @0xrusowsky in #1950 - test(primitives + payload): increase unit test coverage by @0xrusowsky in #1920
- fix(txpool): respect size limit in get_pooled_transaction_elements for AA2dPool by @mattsse in #1954
- chore: add fuzz tests & solidity impl for AccountKeychain precompile by @legion2002 in #1307
- docs: update foundry docs by @grandizzy in #1955
- feat(chainspec/node): add follow defaults based on chainspec by @Zygimantass in #1958
- Fix node guide links by @snario in #1886
- test(precompiles): add coverage for fee AMM and account keychain by @0xKitsune in #1947
- fix(genesis): make the validator address logic simpler by @Zygimantass in #1857
- chore(precompiles): add
fn is_initializedtoStorageContractby @0xrusowsky in #1957 - docs: links to moderato in readme by @snario in #1963
- chore(docs): bump viem to 2.44.0 by @struong in #1951
- fix(consensus): exit epochs after DKGs are concluded by @SuperFluffy in #1960
- fix(consensus): prune state segments only after reading them first by @SuperFluffy in #1966
- chore: bump rc to 3 by @Zygimantass in #1968
- test(transaction-pool): improve test quality and coverage by @fgimenez in #1930
- feat(snapshot): use moderato as default download url by @Zygimantass in #1969
- fix(docs): bump viem, wagmi to fix sponsored transaction guide by @struong in #1972
- fix: revert 1950, re-enable snapshot execution tests by @0xKitsune in #1978
- fix(specs): cache order values before calling
_clearTickBitby @onbjerg in #1933 - fix(precompiles): array packing never spans slot boundary by @0xrusowsky in #1964
- fix(tip20): require root tokens quote token to be
address(0)by @0xKitsune in #1980 - feat(rpc): remove dex_, policy_ and amm_ RPC namespaces by @Zygimantass in #1991
- fix(rpc): disable local pending block by @mattsse in #1982
- fix(precompiles):
FromWordimpl forFixedBytesby @0xrusowsky in #1967 - Move and update spec template from outdated docs repo by @dankrad in #1912
- fix(revm): ensure that adjusted gas isn't above the gas limit before by @0xrusowsky in #1987
- feat(genesis): add mainnet gas token support by @Zygimantass in #1988
- fix! : access keys from 7702 delegating accounts by @legion2002 in #1990
- Revert "fix(revm): ensure that adjusted gas isn't above the gas limit before" by @0xKitsune in #2001
- feat(chainspec): add T0 hardfork with security fixes by @legion2002 in #2002
- fix! : apply 1987 fixes with T0 hardfork gating by @legion2002 in #2008
- chore: 1.0.0-rc.4 by @Zygimantass in #1998
- fix(tempo.nu): ulimit unlimited is a bash-ism by @DaniPopes in #2016
- chore(e2e): config to timeout and pass restart-after-snapshot test by @SuperFluffy in #2013
- chore: simplify size functions by @DaniPopes in #1965
- feat(ci): separate test building and running by @SuperFluffy in #2015
- test: stablecoin DEX invariant tests by @grandizzy in #1924
- fix(payload-builder): align timestamp validation with handler by @0xrusowsky in #2017
- feat:
robots.txt+ gsc by @o-az in #1919 - chore(primitives): cleanup by @0xrusowsky in #2036
- test(primitives): ensure webauthn injection is not possible by @0xrusowsky in #2038
- feat: FeeAMM & FeeManager invariant testing by @zerosnacks in #2025
- refactor(revm): replace AccessKeyAuthorizationFailed with concrete error types by @rakita in #2040
- feat(tips): TIP-1000: State Creation Cost Increase by @dankrad in #2034
- feat(tempo-bench): use Secp256k1Signer for better signing performance by @mattsse in #2052
- feat(tips): TIP-1003: client order IDs by @danrobinson in #2023
- feat(tips): TIP-1002: prevent crossed orders by @danrobinson in #2022
- docs: add TIP-1004 for permit() on TIP-20 by @danrobinson in #2024
- docs: tweaks by @tmm in #2019
- feat(tips): TIP-1005: fix ask swap rounding loss by @danrobinson in #2029
- feat(tips): TIP-1001: place-only mode for next quote token by @danrobinson in #2021
- docs: add dynamic SEO metadata to all pages by @juandolealt in #2018
- refactor(executor): remove fill_holes backfill logic by @joshieDo in #2056
- chore: rc6 by @Zygimantass in #2059
- chore: pin GitHub Actions to full-length commit SHAs by @Zygimantass in #2050
- chore(consensus): bump spammy log to trace by @Zygimantass in #2060
- fix(specs): remove incorrect TEMPO-AMM30 validator reserve assertion by @grandizzy in #2061
- fix(docs): use checksummed address for Account Keychain precompile by @gakonst in #2062
- fix(docs): use absolute URLs for og:image by @gakonst in #2058
- chore: add unit tests for 2 edge cases by @howydev in #1994
- fix(precompiles): remove outdated order processing comment by @danrobinson in #2020
- test(transaction-pool): add unit tests for access key validation by @fgimenez in #2028
- chore: bump reth to v1.10.0 by @mattsse in #2051
- refactor(transaction-pool): consolidate tests and remove low-value test coverage by @fgimenez in #1971
- chore: update gitignore by @0xrusowsky in #2078
- chore: bump commonware to v0.0.65 by @SuperFluffy in #2080
- docs: add TIPs overview page by @snario in #2070
- feat(txpool): add configurable limit for AA authorization list size by @mattsse in #2009
- feat(tips): TIP-1006: burnAt for TIP-20 tokens by @danrobinson in #2033
- feat: encode full finalization/notarization in consensus namespace by @gakonst in #2079
- ci: move flaky test into separate step by @SuperFluffy in #2082
- chore: bump commonware to f966223 by @SuperFluffy in #2081
- chore(deny): ignore RUSTSEC-2026-0003 cmov timing advisory (ARM32 not targeted) by @fgimenez in #2091
- refactor(revm): move 2D nonce gas calculation to intrinsic gas by @rakita in #2053
- fix(revm): validate TIP20 token before balance lookup to prevent panic by @gakonst in #2069
- txpool: reduce LAST_SEEN_TOKENS_WINDOW from 100 to 10 by @gakonst in #2095
- chore: optimize allocation in get_pooled_transaction_elements by pre‑allocating capacity by @0xKarl98 in #1766
- docs: add TIP-1007 specification for fee token introspection by @gakonst in #2092
- docs: rename sub-blocks to subblocks by @danrobinson in #2101
- chore: rc7 by @Zygimantass in #2099
- feat(tempo-bench): add --faucet-url option to max_tps command by @Zygimantass in #2104
- feat(cli): implement consensus subcommand as ExtSubCmd by @Zygimantass in #1839
- docs: add transfer memos guide by @juandolealt in #1884
- chore(test): Test initial gas for simple tx and batch calls by @rakita in #1992
- fix!: validate expiry is in the future when authorizing access keys by @legion2002 in #1956
- fix(consensus): deduplicate metrics by attaching the epoch by @SuperFluffy in #2093
- fix(ci): fix re-execute flaky snapshot download by @kuyziss in #2084
- docs: add legacy Andantino explorer link to network upgrades page by @gakonst in #2122
- feat: v1 by @Zygimantass in #2125
New Contributors
- @akegaviar made their first contribution in #1584
- @juandolealt made their first contribution in #1687
- @kamsz made their first contribution in #1804
- @brendanjryan made their first contribution in #1840
- @0xKarl98 made their first contribution in #1766
Full Changelog: v0.8.1...v1.0.0