Tags: tempoxyz/tempo
Tags
refactor(txpool): move ensure_intrinsic_gas_tempo_tx below trait impl (… …#2775) Move `ensure_intrinsic_gas_tempo_tx` free function below the `TransactionValidator` trait implementation block and above `mod tests`, where it logically belongs. No functional changes. Prompted by: mattsse Co-authored-by: Amp <amp@ampcode.com> Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
fix(bench): share tx_id counter across batches to prevent duplicate t… …x hashes (#2793) ## Summary When generating transactions in batches with expiring nonces, the `tx_id` counter was reset to 0 for each batch. This caused transactions across batches to receive identical fee bumps, producing duplicate transaction hashes that replay protection correctly rejects. ## Changes Move `tx_id` into `GenerateTransactionsInput` and share it via `Arc<AtomicUsize>` across all batches, ensuring the counter monotonically increases globally and producing unique tx hashes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Alexey Shekhirin <shekhirin@shekhirin-tempo.tail388b2e.ts.net> Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Enable PR release workflow signing checks Amp-Thread-ID: https://ampcode.com/threads/T-019c48f6-d483-7679-bbf0-4db1fa19db77 Co-authored-by: Amp <amp@ampcode.com>
fix(stablecoin_dex): cap amount_out_tick to prevent rounding underflo… …w in quote_exact_out bid path (#2214) Closes ZELLIC-27 Prevents spurious reverts caused by rounding mismatch in quote_exact_out bid branch. In the bid path of `quote_exact_out`, `base_needed` is calculated with `quote_to_base(..., RoundingDirection::Up)`, then `amount_out_tick` is computed with `base_to_quote(..., RoundingDirection::Down)`. When `tick > 0` (price > PRICE_SCALE) and `fill_amount == base_needed`, the round-trip can yield `amount_out_tick = remaining_out + 1`, causing `checked_sub` to underflow and revert. - Cap `amount_out_tick` at `remaining_out` using `.min(remaining_out)` - Changed `checked_sub` to `saturating_sub` as defense in depth
PreviousNext