v0.11.0
What's Changed
- GPU acceleration for ZK proof verification, Switch-and-Squash (SnS), and re-randomisation
- tfhe-rs upgraded to v1.5 across the coprocessor
- Decryption ACL checks in the KMS Connector
- New Operator Staking system with ERC4626-based contracts, rewards, and audit remediations
- Confidential Tokens Registry and ERC7984 upgradeable wrapper contracts
- Dependence-chain processing in the coprocessor scheduler for better parallelism
- Host-listener poller mode as an alternative to WebSocket-based event listening
- Delegated user decryption test coverage in the E2E test suite
Migration Notes
- ebytesxxx removal: ebytes64/ebytes128/ebytes256 types are no longer supported
- tfhe-rs v1.5: Coprocessor FHE keys and serialized ciphertexts should be generally compatible
- GPU workers: new GPU backends are opt-in; existing CPU-only deployments remain the main supported architecture for now
Other Changes
- chore(coprocessor): Improve usability of DatabaseURL by @goshawk-3 in #1082
- feat(kms-connector): track last block polled by @eudelins-zama in #1273
- chore(common): add rustfmt and clippy to devcontainer by @dartdart26 in #1284
- feat(protocol-contracts): fully automated deployment by @enitrat in #1232
- feat(coprocessor): unsent txn counts as gauges in txn-sender by @dartdart26 in #1287
- chore(protocol-contracts): add selectors list by @enitrat in #1279
- fix(kms-connector): use numeric for last block by @eudelins-zama in #1292
- feat(protocol-contracts): add task:acceptOwnership on Safe by @enitrat in #1290
- feat(protocol-contracts): adminSafeModule task on GovernanceOAppReceiver by @enitrat in #1288
- chore(protocol-contracts): add missing events by @jatZama in #1301
- fix(protocol-contracts): fix compilation of governance contracts by @enitrat in #1302
- chore(protocol-contracts): fix events by @jatZama in #1303
- chore(protocol-contracts): add natspec comment for max message size by @jatZama in #1304
- chore(protocol-contracts): improve governance natspecs by @jatZama in #1305
- chore(protocol-contracts): add withdraw function to oapp receiver by @jatZama in #1306
- chore(protocol-contracts): do not enforce executor gas option for gov… by @jatZama in #1307
- chore(protocol-contracts): change visibility of mint function by @jatZama in #1308
- chore(protocol-contracts): use consistent naming for MINTING_PAUSER_ROLE by @jatZama in #1309
- docs(common): add descriptions of FHEVM metrics by @dartdart26 in #1300
- feat(protocol-contracts): deployment-cli sets DAO as token INITIAL_ADMIN by @enitrat in #1310
- test(test-suite): bump fhevm version to 0.10.0-2 by @melanciani in #1311
- chore(gateway-contracts): add verifyProtocolPayment and update charts by @melanciani in #1295
- chore(kms-connector): add rust-toolchain.tml file by @ClementWalter in #1320
- Alex b/doc migration by @0xalexbel in #1323
- docs(common): add recommended alarm values for metrics by @dartdart26 in #1322
- docs(common): fix the format by @yuxizama in #1326
- fix(protocol-contracts): ensure
ProtocolStakingcooldown does not overflow by @arr00 in #1283 - feat(protocol-contracts): add operator staking implementation by @arr00 in #1235
- Georgi/fix/569 by @goshawk-3 in #1332
- chore(kms-connector): check decryption done by @eudelins-zama in #1334
- fix(library-solidity): checkSignatures and ZamaConfig.sol (#1330) by @0xalexbel in #1337
- fix(test-suite): fix wrong typescript type import paths by @0xalexbel in #1340
- chore(kms-connector): limit decryption attempts by @eudelins-zama in #1329
- chore(common): remove ebytesxxx by @0xalexbel in #1344
- docs(common): update doc by @0xalexbel in #1341
- chore(gateway-contracts): improve mocked payment tasks and tests by @melanciani in #1345
- chore(sdk): turn rust-sdk into a lib by @eudelins-zama in #1347
- chore(common): update public decryption fees by @melanciani in #1351
- chore(test-suite): applying new config for v0.6.0-rc.1 relayer by @nboisde in #1338
- test(test-suite): e2e for input, compute and decrypt by @dartdart26 in #1346
- docs(common): add new public decryption doc by @0xalexbel in #1356
- docs(common): remove the mention of v0.6 in main by @yuxizama in #1354
- chore(kms-connector): reduce log verbosity by @eudelins-zama in #1358
- chore(common): add git-lfs to devcontainer setup by @dartdart26 in #1363
- chore(test-suite): remove inline comments in .env by @eudelins-zama in #1362
- ci(common): merge commitlint ruleset and action by @aquint-zama in #1366
- fix(common): fix docker buildkit version v1.0.1 by @fegmorte in #1367
- chore(gateway-contracts): add verify task for mocked zama OFT contract by @melanciani in #1350
- chore(coprocessor): add more metrics for sns-worker by @dartdart26 in #1369
- chore(gateway-contracts): clean GatewayConfig reinitialize by @melanciani in #1376
- docs(protocol-contracts): update
setRewardsRecipientdoc by @arr00 in #1361 - feat(protocol-contracts): python notebook for APR and APY computations by @jatZama in #1379
- feat(protocol-contracts): update lz config for mainnet by @jatZama in #1383
- feat(protocol-contracts): add mainnet lz config for governance by @jatZama in #1387
- feat(coprocessor): host-listener + transaction-sender, delegations by @rudy-6-4 in #1092
- chore(protocol-contracts): remove unstake recipient from
ProtocolStakingby @arr00 in #1370 - fix(test-suite): relayer-sdk v0.3.0-6 and Rand by @0xalexbel in #1390
- chore(gateway-contracts): add verification step int ask for payment protocol implementation contract by @melanciani in #1393
- feat(coprocessor): send sync and nonce mngmt fixes in txn-sender by @dartdart26 in #1388
- fix(coprocessor): port DB and TFHE worker fixes from release 0.10.x by @antoniupop in #1396
- docs(common): add wallet integration guide for partners by @ankurdotb in #1382
- fix(test-suite): run random tests in all PRs and use default parameters for keygen by @melanciani in #1391
- chore(protocol-contracts): update governance README by @jatZama in #1403
- feat(coprocessor): host-listener, report any update during a catchup by @rudy-6-4 in #1378
- fix(coprocessor): host-listener, block time in computations.created_at & .schedule_order by @rudy-6-4 in #1409
- chore(common): update mergify merge conditions by @eudelins-zama in #1423
- chore(common): update mergify merge conditions by @eudelins-zama in #1434
- ci(common): mergify e2e tests workflow by @eudelins-zama in #1435
- fix(coprocessor): make the gw-listener aws client anonymous to fetch cross-region files by @piizama in #1429
- feat: host listener poller by @obatirou in #1386
- chore(test-suite): gateway-stress upgrade for fhevm 0.10 by @eudelins-zama in #1314
- feat(charts): update kms-connector chart for 0.10 by @piizama in #1443
- feat(charts): fix version output in kms-connector db-migration name name by @piizama in #1445
- feat(coprocessor): add ZK proof gauges to txn-sender by @dartdart26 in #1437
- fix(coprocessor): fix handling of cyclic dependence errors (port from #1421) by @antoniupop in #1439
- feat(test-suite): implement test for paused gateway contracts by @isaacdecoded in #1353
- chore(protocol-contracts): add staking tasks by @melanciani in #1397
- test(test-suite): update fhevm versions to 0.10.0 by @melanciani in #1405
- ci(common): add CodeQL schedule on workdays by @aquint-zama in #1456
- ci(library-solidity): merge hardhat and foundry tests by @eudelins-zama in #1459
- fix(coprocessor): add missing indices for ciphertext_digest table by @dartdart26 in #1450
- ci(common): reduce docker build frequency by @eudelins-zama in #1448
- ci(gateway-contracts): merge deployment test workflows by @eudelins-zama in #1467
- ci(gateway-contracts): remove docker test workflow by @eudelins-zama in #1466
- fix(test-suite): port manual.ts to relayer-sdk v0.3.0-x by @obatirou in #1460
- feat(protocol-contracts): add task to change safe threshold without r… by @jatZama in #1474
- feat(protocol-contracts): update mainnet LZ token config by @jatZama in #1475
- chore(coprocessor): add pending-tasks idx to optimize pbs_computation backlog by @goshawk-3 in #1477
- chore(coprocessor): improve poller charts and update pool interval by @obatirou in #1480
- chore(kms-connector): update codeowner by @eudelins-zama in #1483
- chore(kms-connector): more granular metrics by @eudelins-zama in #1476
- chore(protocol-contracts): clean hardhat config by @melanciani in #1469
- feat(protocol-contracts): add reward rate in protocol staking constructor by @melanciani in #1472
- feat(protocol-contracts): improve staking contracts for front end by @melanciani in #1473
- ci(gateway-contracts): make upgrade CI target 0.10.0 contracts by @melanciani in #1462
- ci(kms-connector): merge docker build workflows by @eudelins-zama in #1508
- ci(kms-connector): fix build trigger by @eudelins-zama in #1511
- ci(coprocessor): merge docker build workflows by @eudelins-zama in #1513
- test(test-suite): update test-suite docker image for operator tests by @melanciani in #1510
- feat(coprocessor): host-listener --only-catchup-loop mode by @obatirou in #1408
- chore(protocol-contracts): update hardhat config of safe for mainnet by @jatZama in #1527
- chore(protocol-contracts): fix typo in enableModule task by @jatZama in #1528
- test(test-suite): update docker images to fhevm 0.10.2 by @melanciani in #1517
- fix(coprocessor): host-listener, restart on last validated block on disconnect by @rudy-6-4 in #1525
- chore(kms-connector): retry DB insertion by @eudelins-zama in #1531
- chore(protocol-contracts): change enforced executor gas for mainnet by @jatZama in #1542
- ci(protocol-contracts): add staking tests in ci by @melanciani in #1534
- docs(common): fix format errors by @yuxizama in #1543
- chore(test-suite): add mainnet hardhat network by @piizama in #1544
- chore(protocol-contracts): remove ProtocolOperatorRegistry by @melanciani in #1535
- feat(protocol-contracts): improve fees management in staking contracts by @melanciani in #1482
- feat(protocol-contracts): make OperatorStaking inherit ERC1363 by @melanciani in #1541
- chore(protocol-contracts): reword staking to delegating in OperatorStaking/Rewarder by @melanciani in #1547
- chore(library-solidity): handle uninitialized handles for unary operators by @jatZama in #1554
- feat(library-solidity): handle uninitialized handles in casting and a… by @jatZama in #1557
- feat(protocol-contracts): be able to set a claimer for claimRewards in OperatorStaking by @melanciani in #1549
- chore(protocol-contracts): make OperatorStaking and Rewarder owned by ProtocolStaking owner by @melanciani in #1540
- feat(charts): add coprocessor-sql-exporter by @piizama in #1551
- feat(protocol-contracts): getter for safe owners and threshold by @jatZama in #1563
- feat(protocol-contracts): make OperatorStaking UUPS upgradeable by @melanciani in #1562
- feat(protocol-contracts): add depositWithPermit function in OperatorStaking by @melanciani in #1564
- chore(coprocessor): update tfhe and tfhe-zk-pok versions by @antoniupop in #1559
- fix(coprocessor): fix query for work duplication by @antoniupop in #1570
- feat(kms-connector): garbage collection by @eudelins-zama in #1561
- feat(protocol-contracts): add hh task for computing LZ options for go… by @jatZama in #1577
- ci(common): close unverified PRs by @eudelins-zama in #1587
- chore(coprocessor): lock version of bincode lib by @antoniupop in #1595
- fix(kms-connector): gw-listener catchup fix by @eudelins-zama in #1590
- feat(protocol-contracts): add confidential wrapper contracts by @melanciani in #1602
- fix(host-contracts): rename KMSVerifier test functions to match actual function by @enitrat in #1604
- chore(protocol-contracts): add compiler settings and clean licenses by @melanciani in #1606
- ci(common): re-tag docker images when not built by @eudelins-zama in #1611
- feat(library-solidity): update fromExternal to facilitate smart accou… by @jatZama in #1609
- ci(common): use latest images in mergify e2e tests by @eudelins-zama in #1612
- test(test-suite): add pub decrypt to smoke test by @dartdart26 in #1614
- chore(test-suite): bump kms-core to v0.12.7 by @dd23 in #1619
- chore(protocol-contracts): fix verify task OperatorStaking by @melanciani in #1629
- docs(common): remove deprecated DecryptionOracle references by @enitrat in #1597
- docs(coprocessor): fix incorrect content in KMSVerifier section of contracts.md by @enitrat in #1603
- feat(protocol-contracts): add ConfidentialTokensRegistry contract by @melanciani in #1610
- feat(protocol-contracts): replaced revoked by isValid, new view methods by @jatZama in #1635
- chore(protocol-contracts): improve registry deployment related tasks by @melanciani in #1637
- feat(protocol-contracts): add upgradeable ERC7984 wrapper extension by @melanciani in #1628
- chore(protocol-contracts): update optimizer run to 800 for registry by @melanciani in #1638
- chore(protocol-contracts): improve deploy and verify tasks for wrappers by @melanciani in #1639
- chore(protocol-contracts): add cap in mock ERC20 mint in registry project by @melanciani in #1641
- chore(protocol-contracts): update to fhevm/solidity 0.10 for wrappers by @melanciani in #1640
- chore(protocol-contracts): add decimals to mock ERC20 for registry tasks by @melanciani in #1642
- docs(protocol-contracts): write integration doc for the registry by @melanciani in #1646
- docs(protocol-contracts): write first integration doc for wrappers by @melanciani in #1647
- chore(protocol-contracts): remove confidential-wrapper directory by @melanciani in #1656
- chore(protocol-contracts): clean unused variable in registry by @melanciani in #1657
- chore(protocol-contracts): rename confidential-wrapper-upgradeable directory by @melanciani in #1659
- feat(protocol-contracts): add CLI tool for common FHEVM uses by @jatZama in #1658
- chore(protocol-contracts): improve fhevm-cli with prettier and usage comments by @melanciani in #1660
- docs(protocol-contracts): improve wrapper documentation on decimals by @melanciani in #1661
- ci(common): fix unverified_prs workflow name by @eudelins-zama in #1617
- ci(kms-connector): upgrade cargo-audit by @eudelins-zama in #1671
- ci(coprocessor): dependency-analysis, cargo-audit last version by @rudy-6-4 in #1669
- chore(protocol-contracts): add verifyAllOperatorStakingContracts task by @melanciani in #1636
- chore(protocol-contracts): add deploy task single confidential wrapper by @melanciani in #1670
- chore(common): add .claude in root gitignore by @melanciani in #1697
- ci(common): remove toolchain.txt by @eudelins-zama in #1618
- feat(protocol-contracts): return release time on calls to
requestRedeemby @arr00 in #1605 - fix(protocol-contracts): wrap permit call with try-catch to prevent frontrun DOS (L-01) by @melanciani in #1682
- docs(protocol-contracts): add missing NatSpec docstrings to staking contracts (L-02) by @melanciani in #1685
- fix(protocol-contracts): remove unused requestId from RedeemRequest event (L-03) by @melanciani in #1681
- chore(kms-connector): simplify config parsing by @eudelins-zama in #1698
- fix(kms-connector): reduce port collision in tests by @eudelins-zama in #1680
- fix(protocol-contracts): add explicit error for stakeExcess underflow (L-04) by @melanciani in #1683
- fix(protocol-contracts): add named parameters to staking mappings (N-01) by @melanciani in #1688
- fix(protocol-contracts): use SafeCast for uint208 conversion in unstake (N-02) by @melanciani in #1686
- refactor(protocol-contracts): add virtual to staking functions and change private to internal by @melanciani in #1694
- fix(protocol-contracts): remove unused function parameters in staking (N-04) by @melanciani in #1689
- fix(protocol-contracts): add indexed parameters to staking events (N-05) by @melanciani in #1687
- fix(protocol-contracts): add event emissions for state changes in staking (N-06) by @melanciani in #1690
- fix(protocol-contracts): mitigate ERC4626 inflation attack with decimal offset (L-06) by @melanciani in #1684
- chore(common): merge e2e tests workflows by @eudelins-zama in #1676
- fix(protocol-contracts): add start() in OperatorRewarder (H-01) by @melanciani in #1717
- refactor(protocol-contracts): remove whenStarted modifier from claimRewards by @melanciani in #1720
- chore(test-suite): gw-stress support batch of ct handles by @eudelins-zama in #1721
- chore(common): update mergify config by @eudelins-zama in #1675
- chore(common): add root .dockerignore to reduce build context size by @enitrat in #1727
- fix(kms-connector): listen from latest block if catchup fail by @eudelins-zama in #1734
- fix(protocol-contracts): add fees event in OperatorStaking constructor and revert PR #1720 by @melanciani in #1731
- chore(test-suite): speed up local build/test iterations by @enitrat in #1736
- fix(gateway-contracts): improve forge version checking with range support by @enitrat in #1748
- chore(kms-connector): distinct from_block for decryption and kms by @eudelins-zama in #1745
- chore(common): unify Dockerfiles to compile workspace once in local by @enitrat in #1744
- fix(protocol-contracts): follow ERC4626 pattern for OperatorStaking decimals by @melanciani in #1746
- feat(coprocessor): process work along dependence chains by @antoniupop in #1718
- chore(gateway-contracts): bump vuln dependencies by @isaacdecoded in #1750
- docs(common): remove deletion of
task/*folder content in "Setup Hardhat" by @enitrat in #1014 - fix(kms-connector): add prometheus content-type header by @eudelins-zama in #1763
- feat(protocol-contracts): task to get proposal arguments to change safe owners by @jatZama in #1756
- feat(test-suite): add --resume and --only flag to deploy-fhevm-stack.sh by @enitrat in #1775
- chore(protocol-contracts): improve staking tasks by @melanciani in #1776
- chore(protocol-contracts): add mainnet registry address in doc by @melanciani in #1780
- ci(common): fix re-tag race conditions by @eudelins-zama in #1781
- ci(common): fix git fetch for check-changes on main by @eudelins-zama in #1784
- feat(host-contracts): add rust bindings by @eudelins-zama in #1782
- feat(coprocessor): implement additional stress-test scenarios by @goshawk-3 in #1432
- fix(coprocessor): verify input via eth_getLogs by @dartdart26 in #1788
- fix(coprocessor): persist computed ct128 as local backup by @goshawk-3 in #1790
- chore(test-suite): adding relayer v0.8.4 to test-suite by @nboisde in #1789
- feat(protocol-contracts): pausers fetching script for both chains by @jatZama in #1802
- chore(kms-connector): parallelize s3 ct fetching by @eudelins-zama in #1807
- feat(protocol-contracts): add bnb configs by @jatZama in #1796
- ci(common): add Claude action by @enitrat in #1813
- chore(common): update tfhe-rs to v1.5 by @eudelins-zama in #1812
- chore(kms-connector): add mpc-devs as codeowners by @eudelins-zama in #1819
- ci(common): setup git token to clone marketplace in claude action by @enitrat in #1820
- fix(common): try cloning private marketplace before claude action by @enitrat in #1823
- feat(coprocessor): enable GPU backend in SnS worker by @goshawk-3 in #1801
- chore(coprocessor): remove dependence to bincode assumed as unsafe by @antoniupop in #1818
- chore(common): remove protocol contracts by @melanciani in #1816
- ci(common): locally claude clone private repo for read-only access by @enitrat in #1830
- ci(common): configure Claude workflow with Opus model, custom prompt, and tool permissions by @enitrat in #1831
- ci(common): correct Claude action permissions by @enitrat in #1832
- chore(common): remove mergify hotfix rule by @eudelins-zama in #1836
- feat(coprocessor): enable gpu backend in zkproof-worker by @goshawk-3 in #1827
- feat(coprocessor): enable re-randomisation on GPU by @antoniupop in #1837
- chore(coprocessor): improve the git LFS installation step in benchmar… by @antoniupop in #1835
- feat(kms-connector): decryption acl check by @eudelins-zama in #1845
- feat(coprocessor): split verify_and_expand to trace independently by @antoniupop in #1848
- chore(kms-connector): use local path for bindings deps by @eudelins-zama in #1805
- fix(coprocessor): db-migration, rm useless index by @rudy-6-4 in #1803
- fix(coprocessor): scheduler performance and stability fixes by @antoniupop in #1834
- chore(kms-connector): add acl check retries by @eudelins-zama in #1855
- fix(coprocessor): host-listener, add timeout to get logs calls by @rudy-6-4 in #1723
- chore(coprocessor): support OTEL_SERVICE_NAME for service_name by @goshawk-3 in #1299
- ci(common): bump actionlint action version by @eudelins-zama in #1861
- feat(test-suite): implement the delegated user decryption test cases by @isaacdecoded in #1808
- chore(test-suite): upgrade relayer-sdk to v0.4.0 by @isaacdecoded in #1872
- chore(test-suite): bump component versions by @isaacdecoded in #1876
- chore(test-suite): bump component versions to v0.11.0-2 by @isaacdecoded in #1880
- feat(kms-connector): decryption performance metrics by @eudelins-zama in #1906
- fix(coprocessor): dependence chain update during reorg in case of collisions (#1768) by @antoniupop in #1900
- fix(test-suite): add resilient smoke runner for inputFlow (release) by @Eikix in #1921
New Contributors
- @nboisde made their first contribution in #1338
- @ankurdotb made their first contribution in #1382
Full Changelog: v0.10.10...v0.11.0