Skip to content

v0.11.0

Choose a tag to compare

@antoniupop antoniupop released this 13 Feb 18:56
· 122 commits to main since this release
v0.11.0
e446c37

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 ProtocolStaking cooldown 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 setRewardsRecipient doc 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 ProtocolStaking by @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 requestRedeem by @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

Full Changelog: v0.10.10...v0.11.0