v4.0.0
[Note: Release notes still work-in-progress]
Mandatory Upgrade
This is a mandatory update for the upcoming MetaChain upgrade. It contains key upgrades for the protocol.
MetaChain upgrade is set for block 3462000 (approx. ETA Nov 15, 2023. UTC) on mainnet.
Update of mainnet node to v4.0
before the chain upgrade block is REQUIRED.
Upgrade Notes
- From v3.2.8 (prev. latest stable): drop in-upgrade.
- Older nodes, require a fresh sync or bootstrap from snapshots.
- From pre-releases (v4-rc, v4-beta, etc):
-reindex
or fresh required or bootstrap from snapshots required. - For nodes that are being restored from recent snapshot, as with all updates before: -rescan for the wallet txs and additionally -spv_resync for users who hold BTC. If either isn't used, they may not be shown in the wallet until rescanned/resynced.
defid
now requiresglibc
2.29 or greater to run. You may need to update your OS if you are running an older version. (Ubuntu 18, Debian 10, etc.)
Key highlights
- DeFiChain EVM
- DUSD Vaults
Network Snapshot
- [Asia] https://defi-snapshots.s3.ap-southeast-1.amazonaws.com/index.txt
- [EU] https://defi-snapshots-europe.s3.eu-central-1.amazonaws.com/index.txt
- [Sydney] https://defi-snapshots-sydney.s3.ap-southeast-2.amazonaws.com/index.txt
- [US] https://defi-snapshots-us.s3.amazonaws.com/index.txt
What's Changed
- Update README badges by @prasannavl in #1827
- Remove debug code by @Bushstar in #1833
- Fix help message for sleep time parameter in votegovbatch function by @DocteurPing in #1828
- fix: Python lint errors by @shohamc1 in #1834
- Use better singleton default pattern by @prasannavl in #1836
- Bump toolchain: Ubuntu 20.04, LLVM 16, Python 3.8 by @shohamc1 in #1829
- fix: Typo in clang dockerfile by @shohamc1 in #1842
- mingw fixes for bcrypt, suppress depends related warnings by @prasannavl in #1847
- Cleanup build process and workflows by @prasannavl in #1851
- Cleanup unmaintained deps, configs and tools by @prasannavl in #1855
- Update toolchains, deps and further cleanup by @prasannavl in #1857
- Switch libdeficonsensus to internal, toolchain cleanups by @prasannavl in #1860
- Update darwin llvm to 16, update cctools and all depends by @prasannavl in #1862
- Overhaul of build, CI tests and lints, packaging and deps by @prasannavl in #1880
- Update ignores by @prasannavl in #1888
- Fixes for make.sh undeclared locals and clean-artifacts by @prasannavl in #1887
- Enable aarch64-apple-darwin builds by @sieniven in #1894
- Fixes to CI build workflows for dev, staging and production pipelines by @sieniven in #1901
- Refactor test framework and common utility functions used in test cases by @sieniven in #1920
- Fix functional test config paths by @sieniven in #1949
- Fix exposed ports, env path variables by @sieniven in #1963
- Ethereum address support by @Bushstar in #1951
- Add FFI interface stubs by @Bushstar in #1952
- Add EVM feature flag by @Bushstar in #1953
- Add evm context for transaction queue markers by @Bushstar in #1954
- Convert uint256 to array or reversed array by @Bushstar in #1955
- Add EVM header to block by @Bushstar in #1956
- Pass miner address to EVM side by @Bushstar in #1957
- EVM Custom TX types by @Bushstar in #1958
- Stubbed GRPC + ETHRPC ports and tokenbalance ETH support by @Bushstar in #1959
- lint: set correct lookup table name by @Bushstar in #1964
- lint: Remove duplicate include by @Bushstar in #1968
- Finalize Transferdomain Tx by @Mixa84 in #2035
- Prepare EVM Support Changes by @Bushstar in #2037
- Add EVM Engine and Rust libs by @Mixa84 in #1815
- Changi testnet by @Jouzo in #2040
- Version 4.0.0-beta1 by @prasannavl in #2041
- fix help message in transferdomain by @kuegi in #2043
- Fix recover public key of legacy transaction by @Jouzo in #2047
- Fix feature_evm.py test by @shohamc1 in #2050
- evm: Add
input
to eth_call by @shohamc1 in #2051 - Fill missing get_transaction_by_hash fields by @Jouzo in #2053
- Fix cross platform builds and additional refinements by @prasannavl in #2044
- tests: remove failing test by @Bushstar in #2056
- Further build refinements, use ain-builder, rust 1.70 by @prasannavl in #2054
- CI: Update workflow step names and fix exports by @Bushstar in #2057
- CI: Fix failing workflows by @sieniven in #2061
- EVM: Make genesis.json field optional by @Jouzo in #2066
- EVM: Default CallRequest gas_limit to MAX_GAS_PER_BLOCK by @Jouzo in #2064
- defi-cli: Set jsonrpc version and http content type on request by @sieniven in #2029
- evm: eth_getLogs by @shohamc1 in #2062
- evm: Add uncle methods by @shohamc1 in #2065
- CI: Fixes for linux-arm64 and linux-armhf builds by @sieniven in #2070
- Disable arm build on Release, fix arm64 build by @sieniven in #2073
- Fix test-sync CI by @sieniven in #2075
- Add vmmap RPC and EVM hash indexes by @DocteurPing in #2018
- EVM: add
input
to eth_sendTransaction by @kuegi in #2069 - Fix evm tx hash and add test case by @DocteurPing in #2078
- Add temporary fork to avoid conflicts on Changi by @Bushstar in #2079
- Fix failing functional tests by @sieniven in #2067
- Fix failing in evm functional test by @sieniven in #2082
- Reject sending UTXO to Eth addresses by @Bushstar in #2083
- Allow script reward address after next fork by @Bushstar in #1664
- Cap data in transferdomain by @Bushstar in #2058
- Add ICX feature flag. Fix bug on mainnet. by @Mixa84 in #2059
- Refine Cargo / C++ build integration by @prasannavl in #2080
- Add config path by @Bushstar in #2076
- Skip EVM nonce check until Changi Intermediate fork by @Bushstar in #2093
- Set Changi Intermediate fork height to 1,717,800 by @Bushstar in #2095
- Version 4.0.0-beta2 by @Bushstar in #2090
- fix(evm): store genesis block into db by @canonbrother in #2084
- CI: Fix test sync workflow by @sieniven in #2091
- DVM: Enable DUSD loops in vaults by @kuegi in #1971
- evm: Fix base fee calculation by @shohamc1 in #2098
- evm: Make filters in
eth_getLogs
order dependent by @shohamc1 in #2072 - Guard DUSD loops with Changi Intermediate 2 by @Bushstar in #2100
- v4.0.0-beta3 by @Bushstar in #2102
- Fix release workflows, integrate rust lints, shell refactors by @prasannavl in #2096
- Add Rust logs for CI full sync by @Jouzo in #2103
- Add EVM Frontier test suite by @Jouzo in #2101
- EVM: Add missing EthTransactionInfo fields by @Jouzo in #2109
- evm: Implement eth_syncing RPC by @shohamc1 in #2049
- evm: Save state for failed transactions by @shohamc1 in #2116
- Fix format check error by @sieniven in #2118
- In TransferDomain handle ExtractDestination failure by @Bushstar in #2117
- EVM precompile support by @Jouzo in #2099
- v4-beta4 by @Bushstar in #2121
- Move EVM init till after chainstate init by @Bushstar in #2125
- EVM: Fix empty hash RPC output by @Jouzo in #2111
- Return deployed bytecode on eth_call contract creation by @Jouzo in #2119
- Fix lint errors by @shohamc1 in #2126
- Send expected
header not found
error when blockNumber not found by @Jouzo in #2120 - Add debug_logaccountstates RPC by @Jouzo in #2105
- Switch Tx ordering fallback from hash to entry time by @kuegi in #1835
- Fix block_number_to_u256 error forwarding by @Jouzo in #2127
- Simplify and refactor transfer domain by @prasannavl in #2124
- Restore RPC side address checks by @Bushstar in #2129
- Replace EVM TXs with higher fee TXs by @Bushstar in #2094
- Fix miner Eth bugs by @Bushstar in #2132
- EVM: Validate nonce ordering in finalize_block by @Jouzo in #2134
- Limit Eth TXs from the same sender in the mempool to 64 by @Bushstar in #2135
- Fork guard transfers count check by @Bushstar in #2141
- Allow Eth TXs with higher fees to replace lower fees TXs with the same nonce by @Bushstar in #2136
- evm: Implement filter RPCs by @shohamc1 in #2085
- Add Bech32 support to TransferDomain when Eth is source domain by @Bushstar in #2130
- Fixes to get rollback log before downloading ref logs from gc by @sieniven in #2143
- Switch default behavior of functional tests to early failure by @sieniven in #2142
- Fix PoolPair value overflow undefined behavior bug by @sieniven in #2077
- Fix test according to the pool price cap by @prasannavl in #2145
- feat(evm): add
eth_signTransaction
rpc by @canonbrother in #2110 - Switch rust logging to
CppLogTarget
by @prasannavl in #2146 - Add cancel previously running CI with new commits by @sieniven in #2150
- Fix clippy warnings by @shohamc1 in #2151
- Increase OP_RETURN default to 20KB by @Bushstar in #2154
- Set cancel in progress to false if ref branch is master by @sieniven in #2155
- clippy: Throw error for warnings by @shohamc1 in #2152
- ci: Fix clippy lint by @shohamc1 in #2153
- Fix test failure for EVM type result and OP_RETURN change. by @Bushstar in #2156
- Fixes and tests for vmmap RPC by @DocteurPing in #2140
- Refactor defid initialization by @sieniven in #2128
- Remove Result from FFI interface by @Bushstar in #2157
- Fix failing osx build on build-dev workflow by @sieniven in #2160
- make.sh: Remove redundant
cargo check
fromcheck_rs
by @shohamc1 in #2163 - Refine rs workflow and refactors by @prasannavl in #2161
- Handle assert in case ChangiIntermediate not active by @Bushstar in #2171
- Fixes to changi sync issue by @sieniven in #2172
- vmmap tests and fixes by @DocteurPing in #2166
- Evm/fix miner fee by @sieniven in #2173
- Feature gate transferdomain. by @Bushstar in #2175
- Only allow single vins in transferdomain by @Bushstar in #2178
- Fixes to masternode script reward address pipelines by @sieniven in #2133
- EVM fixes to burn base gas fee and priority fee to miners by @sieniven in #2177
- Fixes to validate EVM tx gas fees by @sieniven in #2176
- Fixes for EVM block size limit by @sieniven in #2180
- EVM gas fee bug fixes by @sieniven in #2189
- Put transferdomain enabled behind fork by @Bushstar in #2192
- Rename SHA3 to KECCAK by @prasannavl in #2185
- Minor cleanups by @prasannavl in #2184
- Address format Eth to ERC55 by @prasannavl in #2186
- test: update test string to ERC55 by @Bushstar in #2194
- v4-beta5 by @Bushstar in #2193
- Refactor transferdomain tests by @Mixa84 in #2196
- Rename DUSD loops to dusd-vault attribute key by @sieniven in #2187
- Add finalized block depth to Gov vars by @Bushstar in #2188
- Fixes to EVM functional tests by @sieniven in #2191
- Fix v value in rpc result by @cuongquangnam in #2200
- EVM gas fee fixes by @sieniven in #2199
- make.sh: Install Python dependencies in venv by @shohamc1 in #2170
- vmmap: DVM - EVM block number support by @DocteurPing in #2162
- evm: Allow
eth_getLogs
address to be array or string by @shohamc1 in #2203 - Add cross boundary result helpers by @prasannavl in #2202
- Add bool flag to validation for EVM context by @sieniven in #2201
- Refactor to use typed amounts and checked numerics by @sieniven in #2205
- build: use BOOST_NO_CXX98_FUNCTION_BASE to suppress warnings by @Bushstar in #2207
- EVM FFI refactor and hosuekeeping by @sieniven in #2211
- Fix miner crash and refactor transaction removal by @Bushstar in #2215
- evm: Intrinsic gas check by @sieniven in #2210
- make.sh: consistent test params, and better fail fast control by @prasannavl in #2218
- Reject EVM TXs with zero fees. Check total EVM fees paid. by @Bushstar in #2209
- Fix for native dep compilation by @prasannavl in #2226
- Guard TransactionQueue data with single mutex by @Jouzo in #2225
- evm: Add access list and chain ID to TX output by @shohamc1 in #2224
- evm: Pass access list to internal call in
eth_estimateGas
andeth_call
by @shohamc1 in #2223 - Add base fee to block header by @Jouzo in #2219
- Fixes to rust triplet target by @sieniven in #2229
- Build fix for rust build triplet and target triplet by @sieniven in #2230
- evm: Update state root on every block by @shohamc1 in #2213
- Add branch to get the earliest block in block_number_to_u256 by @DocteurPing in #2212
- Wipe evm folder on reindex by @Jouzo in #2227
- Split addressmap from vmmap into wallet RPCs by @Mixa84 in #2232
- Revert buggy miner code and fix segfault by @Bushstar in #2221
- fix(ain-evm): remove
maxFeePerGas
at Legacy and EIP2930 by @canonbrother in #2236 - Fix the toolchain madness by @prasannavl in #2237
- Add ChangiIntermediateHeight5 fork by @Jouzo in #2233
- Refactor miner: Isolate EVM processing by @prasannavl in #2220
- Refactor ERC55 address support by @Bushstar in #2164
- Delay linker symbol resolutions by @prasannavl in #2238
- v4-beta6 by @Jouzo in #2239
- Bump ChangiIntermediateHeight5 height and revert base fee to header by @Jouzo in #2243
- Disable txqueue tests since it crosses lang-boundaries by @prasannavl in #2242
- Add CI fold control, reduce line groupings by @prasannavl in #2240
- Revert the reversal of base fee to header by @prasannavl in #2244
- Revert "Revert "evm: Update state root on every block (#2213)"" by @prasannavl in #2245
- Add new token guards to TransferDomain context by @Bushstar in #2250
- Add token guard for each edge by @Bushstar in #2251
- Fixes to test sync by @sieniven in #2247
- Remove address mapping test for vmmap by @DocteurPing in #2246
- Check output matches pubkey in HasAuth by @Bushstar in #2249
- Add transfer domain config by @Bushstar in #2183
- Fix for tests broken with transferdomain config by @prasannavl in #2253
- Remove Changi intermediate forks by @Bushstar in #2206
- evm: DST20 support by @shohamc1 in #2231
- v4-beta7 by @Jouzo in #2254
- evm: Fix DST20 test by @shohamc1 in #2257
- Fixes to failing rust lint by @sieniven in #2260
- CI: Fix failing ethlibs test by @sieniven in #2266
- feat(src/wallet):
addressmap
- handle auto and ret json by @canonbrother in #2248 - tests: update wallet labels addressmap usage by @Bushstar in #2271
- Temp. fix for node shutdown on failed ConnectBlock by @prasannavl in #2269
- evm: Throw error when block not found in
eth_feeHistory
by @shohamc1 in #2275 - Fix evm tx nonce in feature_evm test by @sieniven in #2261
- Refactor signing provider get key from destination by @sieniven in #2259
- evm: Refactor to use format_err! instead of anyhow! by @shohamc1 in #2276
- Extend logvmmaps by @Bushstar in #2264
- Move ProcessEVMQueue to fallible location by @Bushstar in #2263
- feat(rpc_evm): auto infers type on vmmap rpc by @canonbrother in #2267
- vmmap: Fixes and switch to json output by @canonbrother in #2278
- evm:
DFIIntrinsics
contract by @shohamc1 in #2279 - test: Rename feature_evm_state_root_change.py by @shohamc1 in #2280
- Add OP_RETURN for core, DVM and EVM. Check sizes on consensus. by @Bushstar in #2268
- Clean up rs exports by @sieniven in #2277
- Add Eth RPC support into defi-cli by @sieniven in #2282
- Add default transfer domain to listgovs by @Bushstar in #2283
- Refactor EVM queues and consistent error handling by @Jouzo in #2265
- Clippy and format housekeeping by @Jouzo in #2285
- Use rustfmt group_imports StdExternalCrate by @Jouzo in #2286
- Validate XVM coinbase OP_RETURN output by @Bushstar in #2284
- EVM construct block by @sieniven in #2272
- Fix lints to enable
eth_
forwarding on defi-cli by @prasannavl in #2287 - Cargo updates to resolver, fmt, and rustc toolchain bump by @prasannavl in #2288
- Refine OpReturnLimits and TransferDomainConfig by @prasannavl in #2289
- Finalize OP_RETURN default rules by @prasannavl in #2290
- getblock RPC by @prasannavl in #2291
- Fix getblock older hex behaviour by @prasannavl in #2296
- Clean up unsafe usages, tweak rust naming by @prasannavl in #2294
- Fix ain-contract tests by @prasannavl in #2297
- Normalize ERC55 terminology by @prasannavl in #2293
- Renname eth to erc55 in functional tests by @Bushstar in #2301
- Add EVM test toggling enablement by @Bushstar in #2302
- tests: Add EVM pending transaction replacement by @canonbrother in #2303
- Fix rust lint by @sieniven in #2300
- Add pre-validation check for max money by @sieniven in #2298
- Fix vmmap tx hashing issue by @sieniven in #2299
- Transfer domain accounting by @Mixa84 in #2252
- Add dvm block number into extra data in evm block header by @sieniven in #2307
- evm: Deploy DST20 for loan tokens by @shohamc1 in #2258
- EVM: Fixes for transfer domain edges by @sieniven in #2306
- Add tx type and EIP1559 tx information into get evm tx info RPC by @sieniven in #2308
- Foundations for gov attributes context over FFI by @Bushstar in #2281
- Refactor: web3 py by @canonbrother in #2309
- Better linting, fmt, py fmt, shellcheck by @prasannavl in #2304
- Resolve fmt, lint checks by @prasannavl in #2305
- Fix feature_evm.py by @Mixa84 in #2311
- Add RBF to miner loop by @Bushstar in #2312
- Add beneficiary to coinbase output by @Bushstar in #2310
- Check for non-DAT and LP tokens in transferdomain by @Mixa84 in #2315
- Add rust ffi to get evm block header info by @sieniven in #2314
- Add defi cli fixes to support accepted str param values by @sieniven in #2319
- EVM: Fix LogIndex schema by @Jouzo in #2322
- Fix: proper eth rpc naming by @canonbrother in #2323
- evm: Run DST20 migration during mining by @shohamc1 in #2325
- Revamp EVM context flow, hash fixes, cleanups by @prasannavl in #2317
- evm: Track totalSupply for DST20 tokens by @shohamc1 in #2328
- Enable DST migration, hashing cleanup, wallet tests by @prasannavl in #2330
- EVM: Storage refactor by @Jouzo in #2313
- Fixes to EVM enabled flag bug in validation by @sieniven in #2331
- evm: Fix DST20 test by @shohamc1 in #2333
- Test: contract env vars by @canonbrother in #2318
- evm: Reserve DST20 and precompile address space by @shohamc1 in #2334
- Fix failing win build by @sieniven in #2335
- Isolate linux specific helpers by @prasannavl in #2336
- Abstract and reduce noise in transfer domain tests by @prasannavl in #2338
- Add ExtendedTxToUniv, VmInfoUniv for better logging by @prasannavl in #2339
- Adding logging category CONNECT, SIGN by @prasannavl in #2340
- EVM: DST20 migration TX by @Jouzo in #2327
- Fix TxDest abstraction defaults by @prasannavl in #2341
- Restore test errors, better err output from framework by @prasannavl in #2342
- EVM: RocksDB as BlockStore backend by @Jouzo in #2337
- Resolve lints by @prasannavl in #2343
- Remove failfast on CI e2e by @sieniven in #2345
- Revert #2337 by @prasannavl in #2346
- Fix 64-bit shifts on log flags by @prasannavl in #2344
- Fix failing pub key recovery from refactor by @sieniven in #2347
- Bug fixes for endianness between boundaries by @sieniven in #2329
- Fix evm test by @sieniven in #2352
- Fix auto auth sign issue by @sieniven in #2351
- Set correct input data in DST20 migration TX by @Jouzo in #2353
- Revert "Revert #2337 (#2346)". Restore RocksDB as BlockStore backend by @Jouzo in #2348
- v4.0.0-rc1 by @Jouzo in #2349
- EVM: Discard dst20_contract error by @Jouzo in #2355
- Replace deprecated header to resolve compiler spam by @Bushstar in #2354
- EVM: Fix cache error handling by @Jouzo in #2357
- Fix suggested_priority_fee crashing before EVM activation by @Jouzo in #2360
- Cleanup token migration on attributes by @prasannavl in #2356
- evm: Fix and add contract licenses by @shohamc1 in #2362
- feat: Re-enable vmmap blocknumber by @canonbrother in #2361
- Fix rust str bug by @sieniven in #2365
- v4.0.0 beta 10 by @shohamc1 in #2363
- EVM: Test TXs deserialization and ecrecover by @Jouzo in #2366
- Add unit tests support by @sieniven in #2368
- Fix lint by @sieniven in #2373
- Fix e2e test bug by @sieniven in #2378
- evm: Move DFIIntrinsics contract, reserve space for additional contracts by @shohamc1 in #2374
- Remove frontier test trigger on master by @sieniven in #2379
- Revert "evm: Move DFIIntrinsics contract" (#2374) by @Jouzo in #2381
- bug: minter info should be allowed in block 0 by @canonbrother in #2376
- Fix block creation validation pipeline by @sieniven in #2383
- Add EVM block limit test by @sieniven in #2387
- evm: Allow block tags in
eth_feeHistory
by @shohamc1 in #2388 - Move cargo deps to workspaces, update rustc, deps by @prasannavl in #2392
- EVM: Add miner tests by @sieniven in #2391
- Fix vmmap RPC auto resolve for block number by @sieniven in #2372
- evm: Save contract artifacts to build tree by @shohamc1 in #2371
- Fix tx context in validate tx pipeline by @sieniven in #2382
- Reject EVM blocks that are too large by @Bushstar in #2395
- v4.0.0-beta11 by @prasannavl in #2393
- CI: Extend Jellyfish timeout by @canonbrother in #2394
- Clear eth txs index by sender when clearing mempool by @sieniven in #2398
- Add additional key tests by @Bushstar in #2401
- Add miner test for different gas used by @sieniven in #2399
- evm: Add next block baseFeePerGas in
eth_feeHistory
output by @shohamc1 in #2390 - Fix Python lint by @shohamc1 in #2406
- Add consensus check on transferdomain accounting by @Mixa84 in #2332
- Remove EVM block size check in validation by @Bushstar in #2407
- Revert "Add consensus check on transferdomain accounting (#2332)" by @Bushstar in #2410
- Break up mn_checks into smaller files by @Bushstar in #2402
- Fix witness v16 endianness by @sieniven in #2369
- EVM: Transparent TransferDomain TX by @Jouzo in #2408
- EVM: Remove primitive-types package by @Jouzo in #2417
- EVM: Fix pre-validation evm tx check by @sieniven in #2411
- Pass Gov var values to Rust on Apply by @Bushstar in #2397
- Fix:
eth_getFilterlogs
+ test by @canonbrother in #2404 - Fix SECURITY.md Clarity by @ForwardSlashBack in #2414
- evm: Move DFIIntrinsics contract, reserve space for additional contracts by @shohamc1 in #2389
- Add missing tests to test_runner.py by @shohamc1 in #2419
- evm: Add tests related to contracts size by @cuongquangnam in #2380
- evm: Enable DST20 optimisation by @shohamc1 in #2375
- evm: Add tests for proxy by @cuongquangnam in #2396
- evm: fix due to extra output introduced by EVMContract.compile() by @cuongquangnam in #2420
- Refine ain contracts build script and sol artifacts by @prasannavl in #2409
- EVM: Track transferdomain nonce in transaction queue by @Jouzo in #2421
- evm: Generate DST20 deploy TX input by @shohamc1 in #2426
- fix: feature_evm_rpc_filters test by @shohamc1 in #2427
- ain-contracts: Minor cleanups by @prasannavl in #2425
- Set internal fork at 1356500 by @Bushstar in #2428
- fix: feature_dst20 test by @shohamc1 in #2433
- Resolve compiler warnings by @prasannavl in #2431
- evm: Pay miner fees on EVM by @shohamc1 in #2432
- Add test for customRewards using same ownerAddress by @shohamc1 in #2435
- Fix EVM miner tests by @shohamc1 in #2436
- Add Transferdomain EVM TX to vmmap by @Jouzo in #2438
- EVM Transaction queue revamp by @Jouzo in #2416
- Reject TD TX failing EVM execution by @Jouzo in #2441
- Prevent setting EVM or TD Gov var below height by @Bushstar in #2440
- Expire EVM TXs after three hours by @Bushstar in #2442
- evm: Block transferdomain from interacting with smart contracts by @shohamc1 in #2422
- v4.0.0-beta12 by @Bushstar in #2439
- EVM: Shift transferdomain transparent tx into the correct attribute by @sieniven in #2447
- tests: fix multiple failing tests based on recent changes by @Bushstar in #2446
- Lints, debug and minor house keeping by @sieniven in #2445
- EVM: Add validation pipeline for transferdomain transparent tx, fix failing EVM tests by @sieniven in #2448
- EVM: Add optional nonce parameter for transfer domain RPC by @sieniven in #2451
- Add flag to set HttpServerBuilder max_connections by @Jouzo in #2450
- Move RBF from mempool back to the miner by @Bushstar in #2449
- EVM: Fix and cleanup validation evm tx pipeline by @sieniven in #2455
- Include Transfer Domain TXs in getPoolTransactions by @Bushstar in #2454
- Restore legacy minter info by @Bushstar in #2453
- EVM: Clean up validation pipeline and housekeeping by @sieniven in #2457
- Add fast EVM RBF to mempool by @Bushstar in #2456
- Apply missing commit from #2456 by @prasannavl in #2458
- Update and add example dev configs by @prasannavl in #2459
- Build scripts, testdata and SOLC housekeeping by @prasannavl in #2460
- evm: Move DFIIntrinsics and TransferDomain contracts by @shohamc1 in #2437
- Mempool RBF improvements by @Bushstar in #2464
- Always fail bad nonce on validation by @Bushstar in #2465
- Add nonce check in update queue tx by @sieniven in #2466
- Fix Rust lint by @shohamc1 in #2467
- EVM: Add auto nonce index by @sieniven in #2461
- evm: Conflicting transferdomain tests by @shohamc1 in #2462
- EVM: Shift transferdomain invalid data size check into pre-validation by @sieniven in #2469
- Add missing Dakota fork to tests by @Bushstar in #2470
- Clean up pre-validation pipeline for transferdomain by @sieniven in #2471
- Remove gas used from the miner by @Bushstar in #2472
- Evm: Miner fixes by @sieniven in #2473
- Macro housekeeping by @prasannavl in #2468
- EVM: Prioritize transferdomain in RBF and fix EVM tx expiry by @sieniven in #2475
- TransferDomain contract tweaks by @Jouzo in #2477
- TransferDomain improvements by @Jouzo in #2478
- Normalize sol files by @prasannavl in #2474
- EVM: Fix transferdomain DVM balance check in validation pipeline by @sieniven in #2480
- TransferDomain DST20 refinements by @Jouzo in #2481
- Default vmmap to auto by @Jouzo in #2484
- EVM: Fix transferdomain EVM to DVM validation pipeline by @sieniven in #2483
- evm: Upgradeable contracts by @shohamc1 in #2476
- Add checkpoints by @prasannavl in #2485
- evm: Use effective gas price for gas refunds by @shohamc1 in #2488
- EVM: Fixes to proper backend error handling on fee deduction and fee refund by @sieniven in #2490
- Fix DFI intrinsics test by @prasannavl in #2491
- Use txType, nonce and sender from mempool by @Bushstar in #2489
- EVM Web3 RPC by @Jouzo in #2107
- Bump tungstenite from 0.20.0 to 0.20.1 in /lib by @dependabot in #2492
- Update Cargo lock by @prasannavl in #2493
- Use effective_gas_price consistently by @Jouzo in #2497
- evm: Return effective gas price in
eth_getTransaction
by @shohamc1 in #2496 - evm: Add test for non-payable proxied contract by @shohamc1 in #2494
- Keep feature_evm_contracts tests independent from each other by @Jouzo in #2499
- Evm: Fix missing nonce check in validation pipeline by @sieniven in #2502
- evm: EIP1559 fees tests by @shohamc1 in #2501
- Consistent vmmap help message by @Jouzo in #2503
- Get gas fee in mempool and skip on mining if over block limit by @Bushstar in #2498
- EVM: Cache ValidateTxInfo by @Jouzo in #2500
- Add ffi_fallible derive macro by @Jouzo in #2506
- EVM: Add replace-by-fee sender limit to mempool by @sieniven in #2505
- Change contract names by @prasannavl in #2504
- Do not use iter after deletion. Fix compiler warning. by @Bushstar in #2508
- Strict validation of EVM data in TransferDomain by @prasannavl in #2507
- Evm: Shift account balance check into pre-validation pipeline by @sieniven in #2510
- Fix miner max sender rbf test by @sieniven in #2511
- SignedTx Caches by @prasannavl in #2509
- Set RocksDB parallelism using getNumCores by @Jouzo in #2514
- Set RocksDB cache by @Jouzo in #2515
- EVM: Fix tx fee calculations in validation and miner by @sieniven in #2517
- Consistent logging for MakeStake by @Bushstar in #2513
- vmmap: House keeping by @Bushstar in #2519
- EVM: Add EVM miner test by @sieniven in #2520
- EVM: Add mempool test by @sieniven in #2523
- Enable frame pointers on debug by default by @prasannavl in #2522
- Switch out std mutexes to parking lot and spin mutexes by @prasannavl in #2512
- Enable stack frame pointers for debug in configure by @Bushstar in #2524
- Fix: ethlibs test and cleanup by @canonbrother in #2525
- Cargo tweaks for CI by @prasannavl in #2527
- Set correct timestamp in queue backend by @Jouzo in #2521
- EVM: Fix gas used for system txs in tx receipts by @sieniven in #2516
- EVM: Clean up construct block validation by @sieniven in #2526
- EVM: Cleanup construct block by @sieniven in #2529
- EVM: Refund prepay gas fees for failed EVM tx by @sieniven in #2530
- EVM: Shift prepay fee calculation into execution, fix failed transactions pipeline by @sieniven in #2531
- Cleanup ValidateTxCompletion by @Jouzo in #2532
- test: pending TXs out of order nonces by @Bushstar in #2536
- Remove redundant validation checks by @Jouzo in #2533
- EVM: Housekeeping and cleanup validation cache by @sieniven in #2542
- evm: Enable CORS on server by @shohamc1 in #2540
- EVM: Remove eth call on mempool and miner pipeline by @sieniven in #2541
- Numeric prefix to all network upgrades by @Bushstar in #2543
- EVM: Mempool improvements to RBF strategy and housekeeping by @sieniven in #2538
- Scoped EVM queue ID class by @Bushstar in #2537
- CI: update
tests-jellyfish.yml
by @canonbrother in #2534 - Cache Keccak Hashes per SignedTx by @prasannavl in #2544
- evm: Subscriptions by @shohamc1 in #2528
- Cargo.toml updates by @prasannavl in #2549
- Set testnet fork height for metachain by @Bushstar in #2548
- Remove unused InvalidNonce queue error by @Jouzo in #2550
- Remove debug logs by @prasannavl in #2551
- Rename NextNetworkUpgrade to Metachain by @shohamc1 in #2553
- Fix wsport and test framework port randomization by @prasannavl in #2552
- Enable cpp fmt impl by @prasannavl in #2554
- Rename DF22Metachain to DF22MetachainHeight by @shohamc1 in #2555
- fmt: clang format by @prasannavl in #2556
- Add graceful fallback to clang-formatter by @prasannavl in #2558
- Fix:
eth_getFilterChanges
by @canonbrother in #2557 - Transfer domain calculate owner rewards by @Bushstar in #2559
- Start abstracting dfi into it's own lib by @prasannavl in #2560
- Move testnet fork back ~21 hours by @Bushstar in #2564
- v4.0.0-rc1 by @prasannavl in #2486
- Allow wildcard CORS by @shohamc1 in #2568
- Restore debug_dumpdb RPC call by @Jouzo in #2570
- evm: Add net_peerCount RPC by @shohamc1 in #2569
- More fmt and lint checks by @prasannavl in #2562
- evm: Checked U256 casting by @shohamc1 in #2567
- Remove dead code by @Jouzo in #2572
- Add owner and operator address support to getmasternode by @Bushstar in #2573
- Check ATTRIBUTE export keys. Do not import empty set. by @Bushstar in #2565
- EVM: Block template implementation and validation optimization by @sieniven in #2566
- Improve ffi_fallible ergonomics by @Jouzo in #2571
- EVM: Fix FFI fallible function naming by @sieniven in #2574
- EVM: Fix transaction gas fee check by @sieniven in #2575
- ci: Remove ethereum PPA from deps by @sieniven in #2578
- evm: Use checked operations by @shohamc1 in #2579
- v4.0.0 beta15 by @prasannavl in #2581
- Correction to renamed forks by @Bushstar in #2583
- EVM: Add multiple transferdomain miner test by @sieniven in #2585
- Replace testnet checkpoints by @Bushstar in #2587
- Set testnet fork heights to 1.2m by @Bushstar in #2588
- v4.0.0-rc1 by @Bushstar in #2589
- Remove Require usage by @Bushstar in #2582
- Reduce testnet fork height to 1.15m by @Bushstar in #2593
- Disable consortium after metachain by @Bushstar in #2591
- EVM: Remove error log on mempool rejection for EVM txs by @sieniven in #2590
- v4.0.0-rc1 by @Bushstar in #2594
- Add testnet seed node by @Bushstar in #2596
- Remove Require usage by @Bushstar in #2595
- tests: EVM: Exact tx gas usage and gas estimation tests by @sieniven in #2597
- EVM: Remove old seed node on changi chain params by @sieniven in #2599
- Return min fee of 1,000 Sats per KB by @Bushstar in #2601
- Fix missing std headers by @prasannavl in #2602
- rpc: addressmap: Better error messages by @prasannavl in #2605
- Add defi-cli support for web3 RPCs and debug RPCs by @sieniven in #2606
- rpc: addressmap: Add ERC55 address validity check by @prasannavl in #2607
- util: Remove obsolete check in addr conversions by @prasannavl in #2608
- Remove BlockTemplateMap by @Jouzo in #2603
- Fix token check bugs from #2582 by @prasannavl in #2612
- EVM: Add full db state checks in rollback tests by @sieniven in #2609
- Get correct compression for encrypted wallet by @Bushstar in #2610
- gov: updateproposal bug fix by @Bushstar in #2614
- Fix mempool accounts view state mismatch by @sieniven in #2592
- test: fix segwit test by @Bushstar in #2615
- Add block and transaction context by @Bushstar in #2563
- deps: Update Cargo.lock by @prasannavl in #2618
- fmt: Extend cpp fmt to miner, mempool and validation by @prasannavl in #2619
- Add fmt to miner, mempool and validation by @prasannavl in #2613
- EVM backend overlay by @Jouzo in #2611
- EVM: Fix atomicity of apply operations with backend overlay by @sieniven in #2625
- EVM: Fixes to backend state in storage and fix db dump debug RPC by @sieniven in #2616
- EVM: Concurrent ecc recovery on block validation by @prasannavl in #2626
- v4.0.0-rc2 by @prasannavl in #2624
- Fix lints by @prasannavl in #2628
- EVM: Add guard against adding evm txs into genesis block by @sieniven in #2636
- rpc: setgov: Token ID must be numeric by @Bushstar in #2635
- EVM: Prevent overriding overlay contract code by @Jouzo in #2638
- Fix eth RPC call context and fix gas estimate pipeline by @sieniven in #2633
- Reduce serial workload on pre-cache by @prasannavl in #2640
- evm:
debug_traceTransaction
by @shohamc1 in #2634 - EVM: Clean up backend vicinity by @sieniven in #2641
- Enable eager concurrency on ECC recovery pre-cache by @prasannavl in #2639
- EVM: Reduce constants visibility by @Jouzo in #2642
- EVM: Add caching and concurrency control flags by @sieniven in #2632
- Remove unused dependencies by @Jouzo in #2644
- Remove legacy EVM limit by @Bushstar in #2647
- Fix:
eth_call
error handling by @canonbrother in #2620 - Update Cargo.lock, cxx header and increase fmt surface by @prasannavl in #2646
- Add EVM network parameters for fallback controls by @Bushstar in #2645
- Make ethSyncStatus coherent by @prasannavl in #2648
- Fix incremental fee calculation by @Jouzo in #2649
- EVM: Add eth call and estimate gas RPC tests by @sieniven in #2650
- Fix feature_evm_contracts test by @shohamc1 in #2651
- Set correct type for RBF min fee pct by @Bushstar in #2655
- workflow: Disable cargo incremental builds by @prasannavl in #2653
- evm: Use target gas from attributes by @shohamc1 in #2656
- evm: Add max size test by @shohamc1 in #2652
- EVM: Fix getBlock RPC and clean up RPC structs by @sieniven in #2654
- tests: Minor updates to EVM mempool tests by @prasannavl in #2658
- Fix CI sync runs by @prasannavl in #2659
- test: Invalid key recovery by @prasannavl in #2660
- evm: Apply minimum RBF fee increase from attributes by @shohamc1 in #2657
- Early bail of pre-cache on race with validation by @prasannavl in #2661
- Fix defi-cli debug RPC by @sieniven in #2662
- Fix rust test lints by @prasannavl in #2663
- Add BlockContext into BlockTemplate by @prasannavl in #2664
- Improve ETH RPC pipeline by @Jouzo in #2665
- BlockContext attributes cleanup by @prasannavl in #2666
- Add txType and txMessage to TransactionContext by @Bushstar in #2630
- scripts: Bash version check by @prasannavl in #2667
- Fix:
eth_estimategas
allowance overflow by @canonbrother in #2668 - v4.0.0-stable by @Bushstar in #2643
New Contributors
- @kuegi made their first contribution in #2043
- @cuongquangnam made their first contribution in #2200
- @ForwardSlashBack made their first contribution in #2414
Full Changelog: v3.2.8...v4.0.0