- test(e2e): e2e tests (#489)
- fix(tempo): activate feature in binary (#487)
- fix(revm): webauthn gas calculation (#486)
- fix(e2e): comment out nondeterminism check (#485)
- feat: Account Abstraction Tx Type (#414)
- chore(security): pin deps in build workflow (#479)
- fix: don't fail for non-node commands (#484)
What's Changed
- feat: update dependencies by @fgimenez in #1
- ci: Add build job by @exdx in #2
- feat: Add integration skeleton by @exdx in #3
- feat: launch node from Cli::run by @fgimenez in #4
- Merge cli changes by @exdx in #5
- fix: Fill out State by @exdx in #7
- node: Implement context by @exdx in #9
- Use patched libp2p with hickory-resolver 2.5.2 by @romac in #10
- Run consensus by @exdx in #11
- reorg by @fgimenez in #13
- chore: more reorg crates by @fgimenez in #14
- feat: BlockHash as Value by @fgimenez in #15
- feat(ci): add autobuilds by @Zygimantass in #16
- chore: restructure into workspace by @0xKitsune in #23
- chore: move
crescendototempo-benchby @0xKitsune in #24 - feat: add ansible and terraform for autodeploys by @Zygimantass in #22
- fix(ci): only deploy on changes in main by @Zygimantass in #27
- feat: support custom genesis files in chainspec by @Zygimantass in #29
- feat(tempo-bench): multiple node targets by @transmissions11 in #39
- feat: precompiled tokens by @transmissions11 in #26
- feat: TIP4217 currency registry by @transmissions11 in #45
- fix(precompiles): real sig check in permit, imports and other nits by @transmissions11 in #46
- chore: update malachite to v0.5.0 by @Zygimantass in #42
- fix: emit errors with source chains by @SuperFluffy in #47
- feat: modify reth settings and add easier methods for setting up devnet by @Zygimantass in #55
- ci: use depot runners instead of gha runners by @Zygimantass in #54
- feat(tempo-bench): Expand
tempo-benchbenchmarking suite by @0xKitsune in #40 - bench(precompile): Add benchmarks for TIP403 precompile by @0xKitsune in #53
- bench(precompile): Add benchmarks for TIP20 precompile by @0xKitsune in #51
- chore(deps): Pin malachite to
0c5a67fby @0xKitsune in #50 - fix: timeout proposals that take too long by @SuperFluffy in #58
- feat:
TempoNodeby @0xKitsune in #49 - fix: enable hardforks by @0xKitsune in #63
- feat: implement
TempoEvmby @0xKitsune in #67 - fix(tempo-bench): lower default generated genesis gas limit by @Zygimantass in #64
- chore(deps): bump reth to
e1236c0by @0xKitsune in #68 - feat: skip malachite if config is not specified by @Zygimantass in #62
- feat: update ansible infra to support devmode by @Zygimantass in #73
- feat: Implement
TIPFeeManagerwithinTempoEvm, enable paying in stables by @0xKitsune in #70 - feat: create tempo-sidecar for following dev mode consensus by @Zygimantass in #65
- chore: use uint! for consts by @mattsse in #80
- fix: use
div_ceilto calculate adjusted gas fee by @0xKitsune in #83 - fix(evm): Update
transact_rawto check gas fee viatx.max_balance_spending()by @0xKitsune in #84 - feat:
TempoTransactionValidatorscaffolding by @0xKitsune in #79 - feat:
TempoPoolBuilderby @0xKitsune in #85 - feat:
TempoPooledTransactionby @0xKitsune in #86 - chore: rm reth-primitives crate by @mattsse in #88
- feat(tempo-bench): Update
generate-genesiscommand to mintTestUSDfor fees by @0xKitsune in #77 - fix: specify beneficiary in
get_fee_token_balance()by @0xKitsune in #92 - feat: Introduce
tempo-revmand initialTempoEvmimplementation by @0xKitsune in #96 - feat:
tempo-revmand handler execution logic by @0xKitsune in #98 - fix: Update
generate-genesisto set user fee token by @0xKitsune in #102 - fix: ensure fee manager is loaded by @mattsse in #101
- test: add add pending tx test by @mattsse in #90
- feat(bench): use tip20 calls for tempo bench by @Zygimantass in #103
- test(e2e): TIP20 transfer e2e test by @0xKitsune in #104
- chore(evm): remove unused handler by @0xKitsune in #105
- feat(tip403): change policy admin to be address instead of policy by @Zygimantass in #99
- test(e2e): Test TIP20 transfer by @0xKitsune in #109
- chore(ci): remove
e2e.yml, use nextest by @0xKitsune in #112 - chore: reduce deps by @mattsse in #115
- feat: add faucet functionality by @Zygimantass in #113
- test(e2e): TIP20 e2e tests by @0xKitsune in #116
- feat: Implement
TempoChainSpecand set staticbaseFeeby @0xKitsune in #119 - feat(node): configure
minimal_protocol_basefeewhen building pool by @0xKitsune in #121 - test(e2e): test
eth_call,eth_trace_call,eth_get_logsby @0xKitsune in #122 - feat(infra): prepare for adagio testnet by @Zygimantass in #126
- feat(genesis): add base fee per gas to generated genesis by @Zygimantass in #127
- feat(ops): add monitoring rules by @Zygimantass in #81
- chore: replace tip20err macro with constructor calls by @mattsse in #124
- feat: set Tempo base fee to non-zero static value by @0xKitsune in #128
- feat: Implement
TempoTransactionValidatorby @0xKitsune in #125 - chore: remove unused functions by @0xKitsune in #131
- chore: simplify EVM generics by @klkvr in #133
- feat: refactor e2e tests to optionally run against persistent devnet by @0xKitsune in #130
- feat: implement mint, burn, transferFrom with memo by @0xKitsune in #132
- chore: simplify TempoTransactionValidator generics by @klkvr in #134
- feat: TempoEthApi by @0xKitsune in #135
- feat:
TempoEngineValidatorby @klkvr in #140 - feat(genesis): predeploy multicall3 by @Zygimantass in #120
- chore: make evm crate leaner by @mattsse in #138
- test: fix flaky estimate test by @mattsse in #144
- feat: Override
caller_gas_allowanceto returnfeeTokenbalance by @0xKitsune in #137 - feat(genesis): add permit2 and createx preinstalls by @Zygimantass in #143
- fix(genesis): don't use short option for --base-fee-per-gas by @Zygimantass in #142
- chore: enable clippy workspace lints by @mattsse in #145
- fix: ensure precompiles are not called via delegatecall by @klkvr in #147
- test: precompile delegatecall by @0xKitsune in #148
- feat: add default 7702 implementation predeploy by @0xKitsune in #159
- feat: add default fee token by @0xKitsune in #163
- chore: bump reth to main by @Zygimantass in #164
- feat:
TempoConsensusby @klkvr in #162 - feat: get validator from
evm_envwhen checking fee token by @0xKitsune in #166 - chore: remove file, update gitignore by @0xKitsune in #167
- fix(chainspec): adagio chainspec was missing baseFeePerGas by @SuperFluffy in #168
- feat: introduce
TempoPayloadBuilderby @klkvr in #173 - fix(chainspec): actually initialize adagio from hardcoded genesis by @SuperFluffy in #170
- feat: auto delegate to default 7702 impl by @0xKitsune in #160
- fix: rm openssl by @mattsse in #177
- ci: add deny.toml by @mattsse in #178
- feat: add initial docs by @Zygimantass in #179
- feat(scripts): add scripts to test Tempo feature sets by @0xKitsune in #180
- feat: auto delegate to default 7702 impl in
TempoEvmHandlerby @0xKitsune in #184 - feat:
TipAccountRegistrarby @0xKitsune in #171 - fix: check codehash empty instead bytecode by @mattsse in #189
- feat: initial
TempoEvmConfigby @0xKitsune in #188 - chore: bump reth deps by @fgimenez in #191
- fix: use TempoEvmConfig instead of EthEvmConfig in tempo binary by @fgimenez in #192
- feat: add node using commonware threshold simplex consensus by @SuperFluffy in #149
- feat: fix default suggested fee to 0 by @0xKitsune in #198
- chore: fix missing feature by @mattsse in #200
- chore: add unused_crate_dependencies lint and remove unused by @mattsse in #201
- fix(commonware-node): remove malachite args by @SuperFluffy in #205
- fix(commonware-node): don't be fancy when shutting down by @SuperFluffy in #206
- feat: separate TIPFeeAMM from FeeManager by @fgimenez in #190
- feat: emit newly created token address with
TokenCreatedevent by @0xKitsune in #203 - feat: introduce tempo fee tx type and envelope by @mattsse in #215
- feat(bin): Replace reth with tempo specific version constants by @RomanHodulak in #219
- feat(bin): Add version information to
tempo-commonwareby @RomanHodulak in #220 - feat:
TempoTxEnvby @klkvr in #221 - feat(commonware-node): serve consensus metrics by @SuperFluffy in #212
- feat(commonware-node): allow configuring timeouts by @SuperFluffy in #207
- feat:
TempoPayloadTypesby @klkvr in #224 - fix: configure envelope features by @mattsse in #226
- chore(xtask): remove suggested option, suggest metrics endpoint by @SuperFluffy in #228
- feat: Add tempo primitives by @RomanHodulak in #223
- ci: add zepter support by @mattsse in #230
- chore: update fee manager address by @0xKitsune in #227
- fix(ci): disable autodeploy by @Zygimantass in #211
- chore: remove vocs by @Zygimantass in #238
- feat(commonware-node): define peers using DNS names by @SuperFluffy in #193
- chore(ci): build commonware binary by @Zygimantass in #240
- fix(commonware-node): don't panic when printing resolved addresses by @SuperFluffy in #243
- feat(precompiles):
TIPFeeAMMliquidity functions by @0xKitsune in #225 - feat: integrate
TempoPrimitivesby @klkvr in #246 - feat: support system transactions by @klkvr in #250
- feat: move fee collection logic from handler to TipFeeManager precompile by @fgimenez in #242
- feat: pass
beneficiarytoTipFeeManagervia block env by @0xKitsune in #252 - chore(commonware-node): request new payload without fork choice updated by @SuperFluffy in #248
- feat: invoke
TipFeeManager::executeBlockat the end of the block by @klkvr in #251 - refactor(test): use MnemonicBuilder::from_phrase with TEST_MNEMONIC const by @fgimenez in #255
- fix(xtask): suggest running --instance starting at 1 by @SuperFluffy in #259
- chore: use error initiatilzer for feeamm errors by @mattsse in #262
- feat(rpc): Add
TempoTransactionRequestwithfee_tokenby @RomanHodulak in #258 - chore: bump alloy-evm by @klkvr in #266
- refactor(commonware-node): run finalization in a separate task by @SuperFluffy in #267
- chore: rm redundant min by @mattsse in #264
- chore: use hex! for TIP20_TOKEN_PREFIX by @mattsse in #276
- refactor(commonware-node): remove generics from consensus block by @SuperFluffy in #270
- chore(commonware): bump to v0.0.62 and ack finalizations by @SuperFluffy in #280
- feat(precompiles):
TIPFeeAMMswap logic by @0xKitsune in #233 - chore: simplify fee manager errors by @0xKitsune in #283
- feat: check identical addresses for mint and burn by @0xKitsune in #284
- feat(bench): refactor tx generator and initialize with real nonces instead of zeroes by @Zygimantass in #269
- test(rpc): test estimate gas with different fee tokens by @0xKitsune in #286
- fix: enforce different system transaction hashes by @klkvr in #287
- feat(test): add fee AMM tests for liquidity operations by @fgimenez in #265
- feat(genesis): generate multiple tokens and initialize pairwise liquidity by @Zygimantass in #290
- chore: address #265 review comments by @fgimenez in #291
- fix: insufficient funds for gas in fee-amm script by @fgimenez in #293
- fix(revm): improve error handling in
TempoEvmHandlerby @0xKitsune in #292 - feat(faucet): enable multi-token faucet drops by @Zygimantass in #294
- fix(genesis): only add initial liquidity against the validator token by @Zygimantass in #295
- feat: arber PoC by @gakonst in #296
- feat(commonware-node): forward latest finalized digest to execution layer by @SuperFluffy in #281
- fix(commonware-node): propose timed out payloads by @SuperFluffy in #300
- feat(test): port fee swap and rebalance swap tests from Solidity reference by @fgimenez in #279
- chore: format by @SuperFluffy in #302
- feat(precompiles): simplify
TIPFeeAMMfee math by @0xKitsune in #297 - fix(precompiles): Update
rebalance_swapinsufficient funds check by @0xKitsune in #308 - feat(observability): add FeeAMM monitor by @Zygimantass in #311
- feat(arber): use arbitrary wallet options by @Zygimantass in #312
- chore: remove sidecar by @Zygimantass in #317
- chore: move monitor to sidecar by @Zygimantass in #319
- feat(sidecar): move monitor as a sidecar subcommand by @Zygimantass in #320
- feat(transaction-pool): add payment transaction classification with TIP20 prefix check by @fgimenez in #299
- test: update auto delegation tests to use batch transfer by @0xKitsune in #304
- fix(payload): check
is_osakawhen checking sealed blocksize by @0xKitsune in #324 - feat: introduce consensus and execution validations for payment lanes by @klkvr in #322
- feat: add test for feeToken transaction by @klkvr in #325
- feat: tempo rpc header by @klkvr in #326
- feat(payload): add lane ordering for payment transactions with gas tracking by @fgimenez in #306
- feat: Add
TempoNetworkthat implementsalloy_network::Networkby @RomanHodulak in #268 - feat(commonware-node): update forkchoice after propose, verify by @SuperFluffy in #305
- feat(commonware-node): catch execution layer up to consensus on start by @SuperFluffy in #307
- refactor(commonware-node): enforce execution driver invariants by @SuperFluffy in #314
- refactor(commonware-node): make execution driver cloneable and clean up handlers by @SuperFluffy in #316
- feat(commonware-node): add builder timeout when proposing new block by @0xKitsune in #330
- feat: use sccache for cross builds by @Zygimantass in #318
- feat(commonware-node): configure maximum p2p message size by @SuperFluffy in #334
- feat: Add
TempoPayloadBuilderAttributesby @RomanHodulak in #336 - feat(bench): add tx reporter by @Zygimantass in #285
- feat(monitor): add token names to the metrics by @Zygimantass in #313
- feat:
TempoPriorityOrderingby @0xKitsune in #346 - feat(payload): metrics and logs by @shekhirin in #339
- test: add Backfill sync integration test by @fgimenez in #338
- test: add payment lane integration tests by @fgimenez in #328
- feat(payload): Check for
interruptsignal while building by @RomanHodulak in #348 - feat:
TIP20fee transfer functions by @0xKitsune in #354 - chore: remove
JournalStorageProviderby @klkvr in #352 - fix: add serde rename for feeToken field in eth_estimateGas requests by @fgimenez in #355
- chore(commonware-node): make most items crate-private by @SuperFluffy in #358
- chore: bump reth and fix breaking API changes by @fgimenez in #359
- feat(precompiles):
system_transfer_fromby @0xKitsune in #357 - ci: auto-label PRs according to issues by @shekhirin in #341
- chore(commonware): bump commonware to latest main by @SuperFluffy in #353
- chore(ci): add concurrency and cancel in progress flags by @Zygimantass in #350
- chore: move infrastructure to infra repo by @Zygimantass in #342
- feat(sidecar): add synthetic load generator by @Zygimantass in #321
- feat(tempo-bench): Simplify
run-max-tpsby @0xKitsune in #347 - fix: map fee collection errors to transaction validation errors by @fgimenez in #365
- feat(ci): add manual build with custom profiles by @Zygimantass in #373
- feat(ci): add bench workflow by @Zygimantass in #368
- perf: introduce and propagate
asm-keccakfeature by @shekhirin in #370 - chore(ci): don't use cross and build in dev mode by default by @Zygimantass in #375
- chore: fix bench doc by @Zygimantass in #379
- docs: use legacy state root in tempo-bench by @shekhirin in #377
- fix:
FeeManagerfixes by @klkvr in #380 - feat(xtask): allow a seed when generating consensus configs by @SuperFluffy in #381
- test(e2e):
tempo-commonwaree2e tests by @0xKitsune in #376 - test: add block building integration tests by @fgimenez in #362
- deps: just use
alloymeta crate inprecompilesby @onbjerg in #383 - deps: remove
reth-evmas a dependency ofprecompilesby @onbjerg in #384 - chore: remove unused clippy.toml by @DaniPopes in #387
- chore: sync all package fields with workspace by @DaniPopes in #386
- chore: bump reth by @fgimenez in #389
- feat(ci): add consensus e2e tests to ci by @0xKitsune in #388
- ci: misc, sync with reth by @DaniPopes in #385
- refactor:
generalGasLimitby @klkvr in #367 - feat: native fee sponsoring by @klkvr in #351
- feat: add error types for fee lane decoding in EVM operations by @fgimenez in #360
- fix(ci): temporarily disable consensus in ci by @0xKitsune in #392
- chore(ci): disable auto deploy by @Zygimantass in #391
- feat: introduce TempoInvalidTransaction by @fgimenez in #390
- feat:
TempoHeaderby @klkvr in #372 - feat(arber): refactor to initialize with pool data by @Zygimantass in #323
- chore: use alloy EIP712 utils by @klkvr in #394
- chore: rm
#[rustfmt::skip]by @onbjerg in #396 - fix: use genesis header hash by @Rjected in #401
- fix(tempo-bench): fix
generate-genesisby setting beneficiary when updating validator token by @0xKitsune in #400 - chore: remove malachite by @0xKitsune in #364
- chore(precompiles): feature gate reth dependencies by @onbjerg in #395
- refactor: unify validation logic by @klkvr in #403
- chore: move all sol! invocations to contracts by @DaniPopes in #398
- test: unify test node setup patterns across integration tests by @fgimenez in #402
- feat(tempo-sidecar): simplify arb bot, use polling interval by @0xKitsune in #405
- fix(precompiles): remove unnecessary check when rebalancing swap by @0xKitsune in #406
- fix(node): forward proposal ancestors if missing by @SuperFluffy in #408
- fix: add magic byte to feePayer signature hash by @klkvr in #409
- fix(commonware-node): don't block executor on backfill by @SuperFluffy in #411
- ci(test): run all tests without stopping on first failure by @fgimenez in #422
- feat: TIP20 linking token by @0xKitsune in #413
- feat(precompiles): ensure linking token is deployed when creating TIP20 tokens by @0xKitsune in #424
- refactor: Replace custom
UnsupportedTxTypeEip4844error byUnsupportedTxTypeerror fromalloyby @RomanHodulak in #425 - feat: add
adminarg toLinkingUSDby @0xKitsune in #427 - chore: use generic
ChainSpecby @klkvr in #428 - feat(precompiles): initial stablecoin dex precompile, interface and stub functions by @0xKitsune in #429
- feat: generate
TempoTypedTransactionvia macro by @klkvr in #431 - feat(precompiles): implement two-step linking token update by @fgimenez in #430
- feat(precompiles): implement Order type for stablecoin DEX by @fgimenez in #426
- chore: rm
address_is_token_addressby @onbjerg in #435 - chore(primitives): remove deref of tempo header to eth header by @SuperFluffy in #436
- feat(contracts): add safe factory on genesis by @legion2002 in #437
- feat: predeploy Arachnid CREATE2 factory by @klkvr in #440
- feat(tempo-bench): add gas limit cli arg by @0xKitsune in #444
- fix(tempo): make consensus config optional if passing
--devor--no-consensusby @0xKitsune in #445 - doc(commonware-node): explain backfill from consensus to execution by @SuperFluffy in #443
- fix: update dockerfile to use renamed tempo binary by @SuperFluffy in #410
- feat(precompiles): implement place and placeFlip functions for stablecoin DEX by @fgimenez in #439
- fix(bench): decrease single tx gas limit by 10x by @Zygimantass in #448
- telemetry(node): prefix all consensus metrics by @SuperFluffy in #453
- fix(bench): update the examples by @Zygimantass in #451
- chore(deps): update commonware by @SuperFluffy in #456
- chore(clippy): deny systemtime in precompiles by @Zygimantass in #447
- test(precompiles): extract helper functions for TIP20 linking token tests by @fgimenez in #452
- fix: correctly configure EVM during inspection by @klkvr in #457
- feat(ci): nightly bench by @Zygimantass in #432
- feat(precompiles):
StablecoinExchangeexecution logic by @0xKitsune in #450 - feat(precompiles): update
LinkingUSDtransfer logic by @0xKitsune in #464 - fix(rpc): update
caller_gas_allowanceto divide by gas price by @0xKitsune in #468 - feat: return precompile errors as reverts by @klkvr in #473
- feat(precompiles): update
LinkingUSDto allow transfers for auth roles by @0xKitsune in #469 - test(stablecoin-exchange): add unit tests for bitmap bit_index calculation by @fgimenez in #466
- feat: add roundtrip tests for
TempoTxEnvelopeby @klkvr in #475 - feat: add stablecoin DEX executeBlock system transaction by @fgimenez in #465
- feat:
TempoHeader::timestamp_millis_partby @klkvr in #455 - chore(precompiles): simplify
StablecoinExchangelogic by @0xKitsune in #470 - test(precompiles): update
StablecoinExchangetests and patch implementation by @0xKitsune in #476 - feat: hook up
StablecoinExchange#createTokentocallimpl + other small tweaks by @jxom in #478 - feat: add instruction to fetch millisecond timestamp by @klkvr in #477
- feat(ci): add release flow [INF-16] by @Zygimantass in #463
- feat(test): add e2e tests with consensus and execution layers by @SuperFluffy in #433
- fix: don't use system time in Tip20 by @klkvr in #482
- fix: don't fail for non-node commands by @klkvr in #484
- chore(security): pin deps in build workflow by @jxom in #479
- feat: Account Abstraction Tx Type by @legion2002 in #414
- fix(e2e): comment out nondeterminism check by @SuperFluffy in #485
- fix(revm): webauthn gas calculation by @legion2002 in #486
- fix(tempo): activate feature in binary by @SuperFluffy in #487
- test(e2e):
StablecoinExchangee2e tests by @0xKitsune in #489
New Contributors
- @exdx made their first contribution in #2
- @romac made their first contribution in #10
- @Zygimantass made their first contribution in #16
- @transmissions11 made their first contribution in #39
- @SuperFluffy made their first contribution in #47
- @RomanHodulak made their first contribution in #219
- @gakonst made their first contribution in #296
- @shekhirin made their first contribution in #339
- @onbjerg made their first contribution in #383
- @DaniPopes made their first contribution in #387
- @Rjected made their first contribution in #401
- @legion2002 made their first contribution in #437
- @jxom made their first contribution in #478
Full Changelog: https://github.com/tempoxyz/tempo/commits/v0.1.0