gitextract_e6fiq0a2/ ├── .commitlintrc.json ├── .dockerignore ├── .github/ │ ├── CODEOWNERS │ ├── CONTRIBUTING.md │ ├── ISSUE_TEMPLATE/ │ │ ├── config.yml │ │ ├── documentation-issue.md │ │ ├── gateway_contracts_issue.yml │ │ └── general_issue.yml │ ├── actionlint.yaml │ ├── actions/ │ │ └── gpu_setup/ │ │ └── action.yml │ ├── config/ │ │ ├── commitlint.config.js │ │ └── ct.yaml │ ├── dependabot.yml │ ├── hooks/ │ │ ├── commit-msg │ │ ├── install.sh │ │ └── pre-push │ ├── release.yml │ ├── squid/ │ │ └── sandbox-proxy-rules.conf │ └── workflows/ │ ├── charts-helm-checks.yml │ ├── charts-helm-release.yml │ ├── check-changes-for-docker-build.yml │ ├── claude-review.yml │ ├── codeql.yml │ ├── common-pull-request-lint.yml │ ├── common-typos-check.yml │ ├── contracts-upgrade-version-check.yml │ ├── coprocessor-benchmark-cpu.yml │ ├── coprocessor-benchmark-gpu.yml │ ├── coprocessor-cargo-clippy.yml │ ├── coprocessor-cargo-fmt.yml │ ├── coprocessor-cargo-tests.yml │ ├── coprocessor-dependency-analysis.yml │ ├── coprocessor-docker-build.yml │ ├── coprocessor-gpu-tests.yml │ ├── coprocessor-stress-test-tool-docker-build.yml │ ├── gateway-contracts-deployment-tests.yml │ ├── gateway-contracts-docker-build.yml │ ├── gateway-contracts-hardhat-tests.yml │ ├── gateway-contracts-integrity-checks.yml │ ├── gateway-contracts-upgrade-tests.yml │ ├── gateway-stress-tool-docker-build.yml │ ├── golden-container-images-docker-build-nodejs.yml │ ├── golden-container-images-docker-build-rust.yml │ ├── host-contracts-docker-build.yml │ ├── host-contracts-docker-deployment-tests.yml │ ├── host-contracts-hardhat-forge-tests.yml │ ├── host-contracts-integrity-checks.yml │ ├── host-contracts-publish.yml │ ├── host-contracts-slither-analysis.yml │ ├── host-contracts-upgrade-tests.yml │ ├── is-latest-commit.yml │ ├── kms-connector-dependency-analysis.yml │ ├── kms-connector-docker-build.yml │ ├── kms-connector-tests.yml │ ├── library-solidity-publish.yml │ ├── library-solidity-tests.yml │ ├── re-tag-docker-image.yml │ ├── sdk-rust-sdk-tests.yml │ ├── test-suite-docker-build.yml │ ├── test-suite-e2e-operators-tests.yml │ ├── test-suite-e2e-tests.yml │ ├── test-suite-orchestrate-e2e-tests.yml │ └── unverified_prs.yml ├── .gitignore ├── .hadolint.yaml ├── .linkspector.yml ├── .mergify.yml ├── .npmrc ├── .prettierignore ├── .prettierrc.yml ├── .slither.config.json ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── SECURITY.md ├── charts/ │ ├── anvil-node/ │ │ ├── Chart.yaml │ │ ├── templates/ │ │ │ ├── anvil-service.yaml │ │ │ └── anvil-statefulset.yaml │ │ └── values.yaml │ ├── contracts/ │ │ ├── Chart.yaml │ │ ├── templates/ │ │ │ ├── _helpers.tpl │ │ │ ├── sc-deploy-config.yaml │ │ │ ├── sc-deploy-job.yaml │ │ │ ├── sc-deploy-pvc.yaml │ │ │ └── sc-deploy-statefulset.yaml │ │ ├── values-deploy-protocol-payment.yaml │ │ ├── values-kmsgen.yaml │ │ ├── values-ownership.yaml │ │ └── values.yaml │ ├── coprocessor/ │ │ ├── Chart.yaml │ │ ├── templates/ │ │ │ ├── _helpers.tpl │ │ │ ├── coprocessor-db-migration.yaml │ │ │ ├── coprocessor-gw-listener-deployment.yaml │ │ │ ├── coprocessor-gw-listener-service-monitor.yaml │ │ │ ├── coprocessor-gw-listener-service.yaml │ │ │ ├── coprocessor-host-listener-catchup-only-deployment.yaml │ │ │ ├── coprocessor-host-listener-catchup-only-service-monitor.yaml │ │ │ ├── coprocessor-host-listener-catchup-only-service.yaml │ │ │ ├── coprocessor-host-listener-deployment.yaml │ │ │ ├── coprocessor-host-listener-poller-deployment.yaml │ │ │ ├── coprocessor-host-listener-poller-service-monitor.yaml │ │ │ ├── coprocessor-host-listener-poller-service.yaml │ │ │ ├── coprocessor-host-listener-service-monitor.yaml │ │ │ ├── coprocessor-host-listener-service.yaml │ │ │ ├── coprocessor-init-config.yaml │ │ │ ├── coprocessor-init-job.yaml │ │ │ ├── coprocessor-sns-worker-deployment.yaml │ │ │ ├── coprocessor-sns-worker-hpa.yaml │ │ │ ├── coprocessor-sns-worker-service-monitor.yaml │ │ │ ├── coprocessor-sns-worker-service.yaml │ │ │ ├── coprocessor-tfhe-worker-deployment.yaml │ │ │ ├── coprocessor-tfhe-worker-hpa.yaml │ │ │ ├── coprocessor-tfhe-worker-service-monitor.yaml │ │ │ ├── coprocessor-tfhe-worker-service.yaml │ │ │ ├── coprocessor-tx-sender-deployment.yaml │ │ │ ├── coprocessor-tx-sender-service-monitor.yaml │ │ │ ├── coprocessor-tx-sender-service.yaml │ │ │ ├── coprocessor-zkproof-worker-deployment.yaml │ │ │ ├── coprocessor-zkproof-worker-hpa.yaml │ │ │ ├── coprocessor-zkproof-worker-service-monitor.yaml │ │ │ └── coprocessor-zkproof-worker-service.yaml │ │ └── values.yaml │ ├── coprocessor-sql-exporter/ │ │ ├── Chart.yaml │ │ ├── config/ │ │ │ └── config.yml │ │ ├── templates/ │ │ │ └── configmap.yaml │ │ └── values.yaml │ └── kms-connector/ │ ├── Chart.yaml │ ├── README.md │ ├── templates/ │ │ ├── _helpers.tpl │ │ ├── kms-connector-db-migration.yaml │ │ ├── kms-connector-gw-listener-deployment.yaml │ │ ├── kms-connector-gw-listener-service-monitor.yaml │ │ ├── kms-connector-gw-listener-service.yaml │ │ ├── kms-connector-kms-worker-deployment.yaml │ │ ├── kms-connector-kms-worker-service-monitor.yaml │ │ ├── kms-connector-kms-worker-service.yaml │ │ ├── kms-connector-tx-sender-deployment.yaml │ │ ├── kms-connector-tx-sender-service-monitor.yaml │ │ └── kms-connector-tx-sender-service.yaml │ └── values.yaml ├── ci/ │ ├── benchmark_parser.py │ ├── check-upgrade-versions.ts │ ├── contracts_bindings_update.py │ ├── ct.yaml │ ├── local_docs_link_check.py │ ├── merge-address-constants.ts │ └── slab.toml ├── coprocessor/ │ ├── .dockerignore │ ├── .gitignore │ ├── .gitmodules │ ├── README.md │ ├── docs/ │ │ ├── README.md │ │ ├── SUMMARY.md │ │ ├── developer/ │ │ │ ├── contribute.md │ │ │ └── roadmap.md │ │ ├── fundamentals/ │ │ │ ├── fhevm/ │ │ │ │ ├── contracts.md │ │ │ │ ├── coprocessor/ │ │ │ │ │ ├── architecture.md │ │ │ │ │ └── fhe_computation.md │ │ │ │ ├── inputs.md │ │ │ │ ├── native/ │ │ │ │ │ ├── architecture.md │ │ │ │ │ ├── fhe_computation.md │ │ │ │ │ ├── genesis.md │ │ │ │ │ └── storage.md │ │ │ │ └── symbolic_execution.md │ │ │ ├── gateway/ │ │ │ │ ├── asc.md │ │ │ │ ├── decryption.md │ │ │ │ ├── proof.md │ │ │ │ └── reencryption.md │ │ │ ├── glossary.md │ │ │ ├── overview.md │ │ │ └── tkms/ │ │ │ ├── architecture.md │ │ │ ├── blockchain.md │ │ │ ├── centralized.md │ │ │ ├── threshold.md │ │ │ └── zama.md │ │ ├── getting_started/ │ │ │ ├── fhevm/ │ │ │ │ ├── coprocessor/ │ │ │ │ │ ├── configuration.md │ │ │ │ │ └── coprocessor_backend.md │ │ │ │ └── native/ │ │ │ │ ├── configuration.md │ │ │ │ ├── executor.md │ │ │ │ └── geth.md │ │ │ ├── gateway/ │ │ │ │ └── configuration.md │ │ │ ├── quick_start.md │ │ │ └── tkms/ │ │ │ ├── contract.md │ │ │ ├── create.md │ │ │ ├── run.md │ │ │ └── zama.md │ │ ├── guides/ │ │ │ ├── benchmark.md │ │ │ └── hardware.md │ │ └── references/ │ │ ├── fhevm_api.md │ │ └── gateway_api.md │ ├── fhevm-engine/ │ │ ├── .cargo/ │ │ │ ├── audit.toml │ │ │ └── deny.toml │ │ ├── .gitignore │ │ ├── .sqlx/ │ │ │ ├── query-00291bc0b863f2caf4c1f7b3fb9b07096422936f9260c363cc0b4c664c3e75fe.json │ │ │ ├── query-0194202f1e08d10cc50aaa92568bb9bcbb219b722e4570198fd9b75d3adc9a85.json │ │ │ ├── query-040ce7f040af75604989d052ab8ee348bd56ac4513659a03d52557e4a188f2f6.json │ │ │ ├── query-048212909e0bbe46633e404235d2c5cffb5284903adb757b4fda59b7fbe81d57.json │ │ │ ├── query-06757014537fbb4ab31dcfed5c16d384585a31bac9856aad1be27f3170535731.json │ │ │ ├── query-07ca385ea31d86b52ec49b021d2fa43287fd3bc162aa1a72a2bee5779357a86a.json │ │ │ ├── query-081a15f82a405de28992b48a0bc989e47c62f841f3c642735ce468e8ac144a2d.json │ │ │ ├── query-0b85af1e88f24290121400feb960ef80ce040e2b877b259da17188668e6c404a.json │ │ │ ├── query-0be7f94ac1356de126688b56b95593e80509b7834f14f39e8aed9a4f15fad410.json │ │ │ ├── query-156dcfa2ae70e64be2eb8014928745a9c95e29d18a435f4d2e2fda2afd7952bf.json │ │ │ ├── query-15a3e780df5acd5542cbd1457c6fd09990469c9b037a77665893ae8c4b81b119.json │ │ │ ├── query-171a4376dcc7709a7666bc75c2eaa9b16acca30538c432072e0421bb309613ac.json │ │ │ ├── query-18459bdad13870228dde81bea5aa060e9b723b66204c6b393f08238ee7cc7dab.json │ │ │ ├── query-1cd9d8c3e04254eea323ca8d1d7a60645aad1364f2fd8faa861f02201a18a114.json │ │ │ ├── query-22d4192be3d4af374ffb6b6d39b842b5d0d56e548e90b3b9387f94eb4dc17fa2.json │ │ │ ├── query-2441dbaec5523254da542760abfe67b8e17c0cc85f0e26cca33f0b5186d940cc.json │ │ │ ├── query-2611f503726ca2bd9cb05c62058395cf36c079ed4e0f7a9111e46e2b9a391b8c.json │ │ │ ├── query-2637d7e49fbc45e9051a9a4b098464aec3b13a8b311e71d962b6fb173b671b09.json │ │ │ ├── query-280922cbaa3f2c2c2893da7bc015793f752df19c8940cbc2d26c788cae901d95.json │ │ │ ├── query-2e431116e7d3116265c42dda4fbee1b9954906485e02665c59431e4c6394d239.json │ │ │ ├── query-355e54c5e8527ac44a96a2a1e1bf42341e9704a8bacb703eef5b3e58b6fa4ab3.json │ │ │ ├── query-356ad05cf8677b0e561e56e0b7d5298b39471d8431093f3297da926b3f97273e.json │ │ │ ├── query-3d26edeaf3dfe38e48b2705da13373c8bbdeee43fca309a3b94c606b42ff71e5.json │ │ │ ├── query-41f1e1ec2e2ca8cc6fe2395105767fa28e0020847366a86cdeb18cd8db1354d7.json │ │ │ ├── query-4348b12a11ea6fcb102d97b1979b63ac167f55188496f006abce0ee1159b6663.json │ │ │ ├── query-455bd359a58df1cef6d001eeb2e70381328eabdfbd9d5ba39401c634d5403b79.json │ │ │ ├── query-45f9a96fb7f0e31ee8f7d316418de59d65d1f9be75c21825f4c07a7f56e5ae4a.json │ │ │ ├── query-49417a40d2aa74a4a9d7486417acf5c791519c9b1de680de3516e18d24b4f48e.json │ │ │ ├── query-4a1ee26e6b481517a3ab7f6f2bb75dccd1728ef569a39d851f134a23a8b513be.json │ │ │ ├── query-4c1cc00434e82b0ade1c67ec109630dd536452ad6faa983c426e312a41138ac9.json │ │ │ ├── query-4dfc8d4bed4ce056b362126302fbb445a3af68b9aeaf2e84d81ff09e38384561.json │ │ │ ├── query-4ecbf864725469e316110ddfd9c861d4b0d50363e9a4f7e359fe16e3786c08ba.json │ │ │ ├── query-512f035677f835d138e4c40537a462f5611a0dfdd54c3198032a7e8ade4bb61d.json │ │ │ ├── query-51b0ba894dbdd2b26c9ad13e1a5b3d4657af9aa912bbe652eabeae2959588589.json │ │ │ ├── query-571a684cbff1241ec33dda67bd02697aa95adc548f114c5bb009248c84f304b2.json │ │ │ ├── query-5907c37948a322cde980c602e3ebeb266827abb1f4d4484f94eb6e0565025a7f.json │ │ │ ├── query-596dea818737c64f6d34646c47febc27968cb38e73f65b1ee98f57107b97b501.json │ │ │ ├── query-5a4711c1d15fd6e9838a38f8c440867372d972a24d8af5fca1a97c2d3a49b1de.json │ │ │ ├── query-5d0594aefc96b09bbfc06cc5bfee7a066b01630afec98b2a8407e05fb79466b6.json │ │ │ ├── query-5e688c149b2b6ef8058c825005d732d7cc4de56aa53a2d9db77c0cef1766a420.json │ │ │ ├── query-5ed3357cb17bbeb4c9c195203319d4c52c23e042141c6e4574edcf6416aaa282.json │ │ │ ├── query-5f1777e5b74d10d99f96fe57fc6ffa5c8e6eb8f1e95384e014362c9c02edea1e.json │ │ │ ├── query-5f1afb2747806defba9411e78f5ac62b310f53fc4f943cadbc05ae3d0d575dea.json │ │ │ ├── query-615f86e8d30acec4a74b6f5a0a4446b1d19ec5a7f14162f27d07536bf3e68dce.json │ │ │ ├── query-6363bd804ce2b1505b46684e17aec0d3d8760bf4cb0d17e01fb53b0f3bfef610.json │ │ │ ├── query-66fcc6dfb88db7c48ea1cc752e61fc1aefb776aa112b632cd0383144c730e7f8.json │ │ │ ├── query-6ad98c10b69f3b51f3da346ec4099672a6caffdd4bb6367aec376a9f48178609.json │ │ │ ├── query-6c2747c4d67751619b5fa1cceddc88de5de074b1b8f2c1ce39ac263552d34676.json │ │ │ ├── query-6d7ded0d4ae669d73f3102d587ff28837a50c63a860954012b4662e94b4a56e6.json │ │ │ ├── query-6e79a42707d3e5a6351638b5a3fc366cb4196394860bfd84e7e982cb8d6c5b18.json │ │ │ ├── query-70fad3e1d4f3a64354cbeb0e3ca48b8ab08df1e6358ec3e4f757d0d088c76f48.json │ │ │ ├── query-716311a203bbae991195af32e0d5da036f2cbd318140bb898c16130192da8263.json │ │ │ ├── query-774d0833f523257d42044019619094083caf37a564283a97822f0efb309f2ea8.json │ │ │ ├── query-795fb48de7af8f3580c762cbb1fea2d39fb077fc422bb0009818881dd25c8e2e.json │ │ │ ├── query-797432c3fb131ab8114f6ebae7e1800c39b91d2ee605ad35742da793ef403c7c.json │ │ │ ├── query-7c2893a193186d51a0d980e44e0875b9b1ab5cb63951d4816248df0f22befe21.json │ │ │ ├── query-7e4f6abc7e18549f31548130efa4bed4d267da6e28697ceb780a58d787e739f1.json │ │ │ ├── query-83990047729c1121ab65f969cdb64bd8a3cae2594e5049b6049aeeb3afce3604.json │ │ │ ├── query-83f5c3fa88b2ea5423d42617d4f937bdf08ffc80906b8ad1aeddc4a0f4ab1889.json │ │ │ ├── query-84c5e88c6c98fd021781e6730664989697c8708668a0d7498f83f54cc9270913.json │ │ │ ├── query-88e197ca40810b08239f59843477ebad687a02fab9dd6126fd473f392ebd92dd.json │ │ │ ├── query-8a2918ace6c8fe642dc6b8badc952c7a3df9b2e0ac113b93d20b2a78bcab75b7.json │ │ │ ├── query-8b46c95180daf944b99d16dca194420f46cf495d5738d25b453a745cb83797a0.json │ │ │ ├── query-8d26754325c24ace1e89a1b432b68d36e5f5f082a1807a112a4ec0dba38e665c.json │ │ │ ├── query-8e2e1efee7317633a7c75aa4e750db5583341a7a5fda81949d49029db7468829.json │ │ │ ├── query-8f7a80b924a8cc486b806a8c89d92bc46ae3f8342223e75b46a6f370cc701c13.json │ │ │ ├── query-9216fe2a7bc69b70dc8a962e0a7ecb664f4dfa1b17af87f4671bfeaf33ebcda9.json │ │ │ ├── query-94e9cb426316068aa285da33e7fd1dfa34bf30db25bcf69a333a341b17b5557a.json │ │ │ ├── query-96a5408903c809773e2e612896ac5f409d57f1fa2faee0f149c5fb49b97cd72f.json │ │ │ ├── query-9a71466b2a069b1f23002c8e3e2368eb9067669b008dc7d1c80b11d75cbe9897.json │ │ │ ├── query-9c32675069536c1825f8e161677a3d1c443a66514312fa099d0818cbbcfdf400.json │ │ │ ├── query-a3581b82aa78344b06e4270d0aec5ac76c2d0fa1661c1502600852450d92fe8a.json │ │ │ ├── query-abf5e9cde25bc541a81b63750c3464c633a9b0d724d094e0355455e0d80de3c1.json │ │ │ ├── query-ac06d348f1c67ccd28d7366a1d81ca221f8e611fa06a25dec4fa538e7157f293.json │ │ │ ├── query-ad63b516c6102b7cbcbdb22f48f8e369da1ea2ff1069f4681285cc945b3c3052.json │ │ │ ├── query-b5b633e5812b7396037e2ab0a1db9a1d753b8650ed3367681ba30ed426799502.json │ │ │ ├── query-b70ea209992428946075c428fb31645d2a857bfddd4f1f6c628d6965cf6ef2fe.json │ │ │ ├── query-b7d5ed966527dfc500ce529e0249d96c058a06c18a02ed117ad2f4140fbc470f.json │ │ │ ├── query-b801404dd6465cc942d1f953f7aa53eece85e4302cef55f50096fa0b25ab7a50.json │ │ │ ├── query-b8a3d295f6c8ffaf10cd0f168cb21a1da296a46f576bd8e8907930256108aa6b.json │ │ │ ├── query-b973ff4880b83c2ebfae9f16c44e5567e10cf61e9743fd35f37fa491b03f6f14.json │ │ │ ├── query-bd3133f71b96a8dd47cd98e439e1177780feb486fa57c3a86dbcf6975efb2922.json │ │ │ ├── query-be2b163e885ff2e4df27ae07c51f8c304f534b50565504a96bd63ce63a6179d7.json │ │ │ ├── query-c010283b4b49e2fe25298ee7925e5b920f95e05efde395c8bd1a270ff464f863.json │ │ │ ├── query-c04e20e576db9e48984ccc149dd87a82f00d0437152b8cb279dd0bb8481f0a89.json │ │ │ ├── query-c39fd3cd50f810ba951eb6015eb41792e00688f1147f8475f263c76a1d4ec9a6.json │ │ │ ├── query-c9baf1542b684063be66cae40108e096dc603a296fc403c52bd58cb6c8e7071e.json │ │ │ ├── query-cb0007cbc7fb244f430b4d59fa6a80933893fd00210e3c646260a626008fe669.json │ │ │ ├── query-cbf71c3aa66e532d73d0d53c71f0fdc94508cdc26ec474f4d06ee9b64173ea72.json │ │ │ ├── query-cdc6f5540c07295f92a29399a7108cdb89f6ed7489533e74fdbf8d495f74a09c.json │ │ │ ├── query-ce25e817abead7c5a3a71ab88f8d4832119716c070bcb5b19a5cd338b6d30006.json │ │ │ ├── query-cec3858b85d307add170a758cd61c62c2a5c56506248882654d59b790d8fef26.json │ │ │ ├── query-d1d558d9f86eae97eb9fd0b16b1e0bf4ad00f66119c50381c0673a0d2433567b.json │ │ │ ├── query-d1f929a46fc666737ca207bbb043cc93c72bcb52150f779f2fc49bc83767bf23.json │ │ │ ├── query-d28852ae21252e3cfed6f82f912d44301291ccd97d88c3ea6f124316dce09ffd.json │ │ │ ├── query-d4019362b696c0b4a3115810e5587f3cecd34f069ebea5689cf48779f0160779.json │ │ │ ├── query-d5b1a3a280be69aa2f0ba494c36fa4fbf10e8cfc1961df766327f0c375aeccc2.json │ │ │ ├── query-d689a7a2fc154b39cd8662c515c9e80c3cdad919dd41b595790079843445e664.json │ │ │ ├── query-d6d82726686a53f620946463cd2bd0044ca7f2daf2261f3647ec944216252ec5.json │ │ │ ├── query-d7f8906e1ac617629dc51e9c58ed28a03564df2aa1b270aec24e50ee45a098f6.json │ │ │ ├── query-d85f9e81a8049c2f66534f9e7a9c5b8900bedd9785fd4da3629978df3b589230.json │ │ │ ├── query-d94483044765504ae794c16487fd225297876c170ba807360ae413fb9f837e5d.json │ │ │ ├── query-db960d1e67219284c082dbb56187c75efe1b9389d9e8a703b6f3399586369bac.json │ │ │ ├── query-e007c4af2864544c0eaa5d27f456f611b3d9f9909a845f78f85cdd69787c7106.json │ │ │ ├── query-e26529636b13051b543f64a54d4557837af16aa5b3fa8c74dc30550e59612bbf.json │ │ │ ├── query-e6783de9bead8fc13c6954369740763df1e7ae2a98aa0495b4245960b9a1bbfc.json │ │ │ ├── query-e8c9fde48a0d089461d92437b2afe994bef17f18e5c64ddcf63574cc0a579d28.json │ │ │ ├── query-e8e1a20c2a71d8658815aed49df37fe3e7ad9a10416da01bfc4a885f78199532.json │ │ │ ├── query-e9835f07851a4323c9a8ffbf0faddc4869c6b1074ce226a8004baf45c7421c54.json │ │ │ ├── query-ea82d8b3b75ba91c214466b39aeef81278ad12c002eeea1a7857b50ba39962fb.json │ │ │ ├── query-eadec222d0154713dc15ea7ba1e113ae7838d935e4462421fd796f5f7986dbbd.json │ │ │ ├── query-eee88ff2cfe1661d1253970efd6962cf97d815b0812b0f704396e9f8500eb9f8.json │ │ │ ├── query-f3d7ddb9d731b10dd25b1ece48b777115087dbd619f74c61c921a2e21b2e3682.json │ │ │ ├── query-f4aae3e6a8c06222c30078b78eaf48d50439c2eba9411f160ea2a0f7c00a52e7.json │ │ │ ├── query-f4abad33ec40c74fa5f4fbec67631d8a1d10f0d36b55428356b093eaedbc5e1c.json │ │ │ ├── query-f5fc158d631a0fd6fcc45e940c14ce507e764cec73c215ce295fcfb64b95c37e.json │ │ │ ├── query-f7599bbef8c317c1ab1a61b2bcba3c5b03855b8a536bcdf369332c567b29d92c.json │ │ │ ├── query-f8bb60a7281c6fc60b9ad82c9a7e536ce74a42afcc72bc79215a7bb51497ec02.json │ │ │ ├── query-faf23b99c8ddbc31b32cdbbcc96cdf4b113a5c4181cc95ab2db93f680fe2a8ea.json │ │ │ ├── query-fd1604ca19ddd4ebb61b085800bf355b6812d8aa8cc254c9e0b27c780462f9e9.json │ │ │ ├── query-fd20a584d8619dbbed4c61a0e930c900d51d45ddcc16f5e799b68a058f04ac1e.json │ │ │ └── query-fd80c7542a9e5573dc53fc8dcce04faff79341cdd6cbd60376c951cd9f8e21ee.json │ │ ├── Cargo.toml │ │ ├── Dockerfile.workspace │ │ ├── db-migration/ │ │ │ ├── Dockerfile │ │ │ ├── describe_table.sh │ │ │ ├── initialize_db.sh │ │ │ └── migrations/ │ │ │ ├── 20240722111257_coprocessor.sql │ │ │ ├── 20250205000000_drop_output_type_in_computations.sql │ │ │ ├── 20250205130209_create_pbs_computations_table.sql │ │ │ ├── 20250207092623_verify_proofs.sql │ │ │ ├── 20250212082040_create_sns_keys_columns.sql │ │ │ ├── 20250217133315_add_table_blocks_valid.sql │ │ │ ├── 20250221112128_gw_listener_last_block.sql │ │ │ ├── 20250303135355_fhevm_listner_auto_notify.sql │ │ │ ├── 20250310120834_create_ciphertext_digest.sql │ │ │ ├── 20250310122059_add_ciphertext128_column.sql │ │ │ ├── 20250317140442_create_allow_handle.sql │ │ │ ├── 20250326183240_add_key_id_to_tenants.sql │ │ │ ├── 20250508075211_ciphertext_digest_and_acl_retries.sql │ │ │ ├── 20250512084614_fhevm_listner_auto_notify_acl.sql │ │ │ ├── 20250529101607_retry_count_rename.sql │ │ │ ├── 20250703000000_add_schedule_order_column.sql │ │ │ ├── 20250718073338_add_ciphertext128_format_column.sql │ │ │ ├── 20250728110954_verify_proofs_extra_data.sql │ │ │ ├── 20250729115448_ciphertext_digest_txn_info.sql │ │ │ ├── 20250729123642_allowed_handles_txn_info.sql │ │ │ ├── 20250801080000_computations_transaction_id.sql │ │ │ ├── 20250801080001_allowed_handles_computed_flag.sql │ │ │ ├── 20250801080153_verify_proofs_bigint_chain_id.sql │ │ │ ├── 20250801080312_tenants_bigint_chain_id.sql │ │ │ ├── 20250802080000_computations_drop_trigger_work_available.sql │ │ │ ├── 20250805080000_computations_update_primary_key.sql │ │ │ ├── 20250814080000_computations_uncomputable_counter.sql │ │ │ ├── 20250831080000_allowed_handles_schedule_order.sql │ │ │ ├── 20250901090610_simplify_blocks_valid_table.sql │ │ │ ├── 20250920080000_computations_scheduling.sql │ │ │ ├── 20250929064611_create_transactions_table.sql │ │ │ ├── 20251002083309_add_transactions_index.sql │ │ │ ├── 20251006080000_computations_auto_notify.sql │ │ │ ├── 20251013083601_delegations.sql │ │ │ ├── 20251015000000_host_listener_poller_state.sql │ │ │ ├── 20251126110000_computations_created_at_index.sql │ │ │ ├── 20251203140023_ciphertext_digest_idx_sent_and_handle.sql │ │ │ ├── 20251205070512_add_pbs_computations_created_at_idx.sql │ │ │ ├── 20251205154454_create_dependence_chain_table.sql │ │ │ ├── 20251218162249_extend_dcid_table.sql │ │ │ ├── 20251221080000_dependence_chain_index_processed_last_updated.sql │ │ │ ├── 20251224110000_ciphertexts_partial_indexes.sql │ │ │ ├── 20251230155309_improve_sns_and_txsend_select_indexing.sql │ │ │ ├── 20260105120000_dependence_chain_proofs_indexing.sql │ │ │ ├── 20260106145618_unused_index.sql │ │ │ ├── 20260106150619_create_ciphertexts128_table.sql │ │ │ ├── 20260110190000_index_dependence_chain.sql │ │ │ ├── 20260120102002_unused_index_cleaning.sql │ │ │ ├── 20260128095635_remove_tenants.sql │ │ │ ├── 20260204130000_dependence_chain_schedule_priority.sql │ │ │ ├── 20260218155637_add_block_status.sql │ │ │ ├── 20260311154000_gw_listener_earliest_open_ct_block.sql │ │ │ └── 20260312174148_downgradable_block_status.sql │ │ ├── fhevm-engine-common/ │ │ │ ├── Cargo.toml │ │ │ ├── build.rs │ │ │ ├── src/ │ │ │ │ ├── bin/ │ │ │ │ │ └── generate_keys.rs │ │ │ │ ├── chain_id.rs │ │ │ │ ├── crs.rs │ │ │ │ ├── db_keys.rs │ │ │ │ ├── gpu_memory.rs │ │ │ │ ├── healthz_server.rs │ │ │ │ ├── host_chains.rs │ │ │ │ ├── keys.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── metrics_server.rs │ │ │ │ ├── pg_pool.rs │ │ │ │ ├── telemetry.rs │ │ │ │ ├── tfhe_ops.rs │ │ │ │ ├── types.rs │ │ │ │ └── utils.rs │ │ │ └── tests/ │ │ │ └── utils.rs │ │ ├── fhevm-keys/ │ │ │ ├── .gitattributes │ │ │ ├── cks │ │ │ ├── gpu-cks │ │ │ ├── gpu-csks │ │ │ ├── gpu-pks │ │ │ ├── gpu-pp │ │ │ ├── pks │ │ │ ├── pp │ │ │ ├── sks │ │ │ └── sns_pk │ │ ├── gw-listener/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── build.rs │ │ │ ├── contracts/ │ │ │ │ ├── InputVerification.sol │ │ │ │ └── KMSGeneration.sol │ │ │ ├── gw-listener/ │ │ │ │ └── tests/ │ │ │ │ └── gw_listener_tests.rs │ │ │ ├── src/ │ │ │ │ ├── aws_s3.rs │ │ │ │ ├── bin/ │ │ │ │ │ └── gw_listener.rs │ │ │ │ ├── database.rs │ │ │ │ ├── digest.rs │ │ │ │ ├── drift_detector.rs │ │ │ │ ├── gw_listener.rs │ │ │ │ ├── http_server.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── metrics.rs │ │ │ │ └── sks_key.rs │ │ │ └── tests/ │ │ │ └── gw_listener_tests.rs │ │ ├── host-listener/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── build.rs │ │ │ ├── contracts/ │ │ │ │ ├── ACLTest.sol │ │ │ │ └── FHEVMExecutorTest.sol │ │ │ ├── rustfmt.toml │ │ │ ├── src/ │ │ │ │ ├── bin/ │ │ │ │ │ ├── main.rs │ │ │ │ │ └── poller.rs │ │ │ │ ├── cmd/ │ │ │ │ │ ├── block_history.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── contracts/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── database/ │ │ │ │ │ ├── dependence_chains.rs │ │ │ │ │ ├── ingest.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── tfhe_event_propagate.rs │ │ │ │ ├── health_check.rs │ │ │ │ ├── lib.rs │ │ │ │ └── poller/ │ │ │ │ ├── http_client.rs │ │ │ │ ├── metrics.rs │ │ │ │ └── mod.rs │ │ │ └── tests/ │ │ │ ├── host_listener_integration_tests.rs │ │ │ └── poller_integration_tests.rs │ │ ├── rust-toolchain.toml │ │ ├── scheduler/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── dfg/ │ │ │ │ ├── scheduler.rs │ │ │ │ └── types.rs │ │ │ ├── dfg.rs │ │ │ └── lib.rs │ │ ├── sns-worker/ │ │ │ ├── Cargo.toml │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── ciphertext64.json │ │ │ └── src/ │ │ │ ├── aws_upload.rs │ │ │ ├── bin/ │ │ │ │ ├── sns_worker.rs │ │ │ │ └── utils/ │ │ │ │ ├── daemon_cli.rs │ │ │ │ └── mod.rs │ │ │ ├── executor.rs │ │ │ ├── keyset.rs │ │ │ ├── lib.rs │ │ │ ├── metrics.rs │ │ │ ├── squash_noise.rs │ │ │ └── tests/ │ │ │ └── mod.rs │ │ ├── stress-test-generator/ │ │ │ ├── Cargo.toml │ │ │ ├── Dockerfile │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── data/ │ │ │ │ ├── evgen_scenario.csv │ │ │ │ ├── json/ │ │ │ │ │ ├── batch_allow_handles.json │ │ │ │ │ ├── batch_bids_auction.json │ │ │ │ │ ├── batch_input_proofs.json │ │ │ │ │ ├── evgen_scenario.json │ │ │ │ │ ├── example_job.json │ │ │ │ │ ├── minitest_001_zkinputs.json │ │ │ │ │ ├── minitest_002_erc20.json │ │ │ │ │ └── minitest_003_generate_handles_for_decryption.csv.json │ │ │ │ ├── minitest_001_zkinputs.csv │ │ │ │ ├── minitest_002_erc20.csv │ │ │ │ └── minitest_003_generate_handles_for_decryption.csv │ │ │ └── src/ │ │ │ ├── args.rs │ │ │ ├── auction.rs │ │ │ ├── bin/ │ │ │ │ └── stress_generator.rs │ │ │ ├── dex.rs │ │ │ ├── erc20.rs │ │ │ ├── erc7984.rs │ │ │ ├── lib.rs │ │ │ ├── synthetics.rs │ │ │ ├── utils.rs │ │ │ └── zk_gen.rs │ │ ├── test-harness/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── db_utils.rs │ │ │ ├── health_check.rs │ │ │ ├── instance.rs │ │ │ ├── lib.rs │ │ │ ├── localstack.rs │ │ │ └── s3_utils.rs │ │ ├── tfhe-worker/ │ │ │ ├── .gitattributes │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml │ │ │ ├── Dockerfile │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── benches/ │ │ │ │ ├── dex.rs │ │ │ │ ├── erc20.rs │ │ │ │ ├── synthetics.rs │ │ │ │ └── utils.rs │ │ │ ├── coprocessor.key │ │ │ ├── docker-compose.yml │ │ │ ├── scripts/ │ │ │ │ └── recreate_db.sh │ │ │ └── src/ │ │ │ ├── bin/ │ │ │ │ ├── tfhe_worker.rs │ │ │ │ └── utils.rs │ │ │ ├── daemon_cli.rs │ │ │ ├── dependence_chain.rs │ │ │ ├── health_check.rs │ │ │ ├── lib.rs │ │ │ ├── tests/ │ │ │ │ ├── dependence_chain.rs │ │ │ │ ├── errors.rs │ │ │ │ ├── event_helpers.rs │ │ │ │ ├── health_check.rs │ │ │ │ ├── inputs.rs │ │ │ │ ├── migrations.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── operators_from_events.rs │ │ │ │ ├── random.rs │ │ │ │ ├── scheduling_bench.rs │ │ │ │ ├── test_cases.rs │ │ │ │ └── utils.rs │ │ │ ├── tfhe_worker.rs │ │ │ └── types.rs │ │ ├── transaction-sender/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml │ │ │ ├── Dockerfile │ │ │ ├── build.rs │ │ │ ├── contracts/ │ │ │ │ ├── CiphertextCommits.sol │ │ │ │ └── InputVerification.sol │ │ │ ├── src/ │ │ │ │ ├── bin/ │ │ │ │ │ └── transaction_sender.rs │ │ │ │ ├── config.rs │ │ │ │ ├── http_server.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── metrics.rs │ │ │ │ ├── nonce_managed_provider.rs │ │ │ │ ├── ops/ │ │ │ │ │ ├── add_ciphertext.rs │ │ │ │ │ ├── common.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── verify_proof.rs │ │ │ │ └── transaction_sender.rs │ │ │ └── tests/ │ │ │ ├── add_ciphertext_tests.rs │ │ │ ├── common.rs │ │ │ ├── overprovision_gas_limit_tests.rs │ │ │ └── verify_proof_tests.rs │ │ └── zkproof-worker/ │ │ ├── Cargo.toml │ │ ├── Dockerfile │ │ └── src/ │ │ ├── auxiliary.rs │ │ ├── bin/ │ │ │ └── zkproof_worker.rs │ │ ├── lib.rs │ │ ├── tests/ │ │ │ ├── mod.rs │ │ │ └── utils.rs │ │ └── verifier.rs │ └── proto/ │ └── common.proto ├── docs/ │ ├── examples/ │ │ ├── SUMMARY.md │ │ ├── fhe-counter.md │ │ ├── fhe-encrypt-multiple-value.md │ │ ├── fhe-encrypt-multiple-values.md │ │ ├── fhe-encrypt-single-value.md │ │ ├── fhe-user-decrypt-multiple-values.md │ │ ├── fhe-user-decrypt-single-value.md │ │ ├── fheadd.md │ │ ├── fheifthenelse.md │ │ ├── heads-or-tails.md │ │ ├── highest-die-roll.md │ │ ├── integration-guide.md │ │ ├── legacy/ │ │ │ └── see-all-tutorials.md │ │ ├── openzeppelin/ │ │ │ ├── ERC7984ERC20WrapperMock.md │ │ │ ├── README.md │ │ │ ├── erc7984-tutorial.md │ │ │ ├── erc7984.md │ │ │ ├── swapERC7984ToERC20.md │ │ │ ├── swapERC7984ToERC7984.md │ │ │ └── vesting-wallet.md │ │ ├── sealed-bid-auction-tutorial.md │ │ └── sealed-bid-auction.md │ ├── metrics/ │ │ └── metrics.md │ ├── operators/ │ │ └── operators-overview.md │ ├── protocol/ │ │ ├── README.md │ │ ├── SUMMARY.md │ │ ├── architecture/ │ │ │ ├── coprocessor.md │ │ │ ├── gateway.md │ │ │ ├── hostchain.md │ │ │ ├── kms.md │ │ │ ├── library.md │ │ │ ├── overview.md │ │ │ └── relayer_oracle.md │ │ ├── contribute.md │ │ ├── d_re_ecrypt_compute.md │ │ └── roadmap.md │ ├── sdk-guides/ │ │ ├── SUMMARY.md │ │ ├── cli.md │ │ ├── initialization.md │ │ ├── input.md │ │ ├── public-decryption.md │ │ ├── sdk-overview.md │ │ ├── user-decryption.md │ │ ├── webapp.md │ │ └── webpack.md │ └── solidity-guides/ │ ├── README.md │ ├── SUMMARY.md │ ├── acl/ │ │ ├── README.md │ │ ├── acl_examples.md │ │ └── reorgs_handling.md │ ├── configure.md │ ├── contract_addresses.md │ ├── debug_decrypt.md │ ├── decryption/ │ │ ├── debugging.md │ │ └── oracle.md │ ├── foundry.md │ ├── functions.md │ ├── getting-started/ │ │ ├── overview.md │ │ └── quick-start-tutorial/ │ │ ├── README.md │ │ ├── setup.md │ │ ├── test_the_fhevm_contract.md │ │ ├── turn_it_into_fhevm.md │ │ └── write_a_simple_contract.md │ ├── hardhat/ │ │ ├── README.md │ │ ├── run_test.md │ │ ├── write_task.md │ │ └── write_test.md │ ├── hcu.md │ ├── inputs.md │ ├── key_concepts.md │ ├── logics/ │ │ ├── README.md │ │ ├── conditions.md │ │ ├── error_handling.md │ │ └── loop.md │ ├── migration.md │ ├── mocked.md │ ├── operations/ │ │ ├── README.md │ │ ├── casting.md │ │ └── random.md │ ├── transform_smart_contract_with_fhevm.md │ └── types.md ├── gateway-contracts/ │ ├── .env.example │ ├── .gitignore │ ├── .husky/ │ │ ├── commit-msg │ │ └── pre-commit │ ├── .prettierignore │ ├── .solhint.json │ ├── .solhintignore │ ├── Dockerfile │ ├── Makefile │ ├── README.md │ ├── contracts/ │ │ ├── CiphertextCommits.sol │ │ ├── Decryption.sol │ │ ├── GatewayConfig.sol │ │ ├── InputVerification.sol │ │ ├── KMSGeneration.sol │ │ ├── ProtocolPayment.sol │ │ ├── emptyProxy/ │ │ │ └── EmptyUUPSProxy.sol │ │ ├── emptyProxyGatewayConfig/ │ │ │ └── EmptyUUPSProxyGatewayConfig.sol │ │ ├── examples/ │ │ │ ├── CiphertextCommitsV2Example.sol │ │ │ ├── DecryptionV2Example.sol │ │ │ ├── GatewayConfigV2Example.sol │ │ │ ├── InputVerificationV2Example.sol │ │ │ ├── KMSGenerationV2Example.sol │ │ │ └── ProtocolPaymentV2Example.sol │ │ ├── immutable/ │ │ │ └── PauserSet.sol │ │ ├── interfaces/ │ │ │ ├── ICiphertextCommits.sol │ │ │ ├── IDecryption.sol │ │ │ ├── IGatewayConfig.sol │ │ │ ├── IInputVerification.sol │ │ │ ├── IKMSGeneration.sol │ │ │ ├── IPauserSet.sol │ │ │ └── IProtocolPayment.sol │ │ ├── libraries/ │ │ │ ├── FHETypeBitSizes.sol │ │ │ └── HandleOps.sol │ │ ├── mockedPaymentBridging/ │ │ │ └── ZamaOFT.sol │ │ ├── mocks/ │ │ │ ├── CiphertextCommitsMock.sol │ │ │ ├── DecryptionMock.sol │ │ │ ├── GatewayConfigMock.sol │ │ │ ├── InputVerificationMock.sol │ │ │ ├── KMSGenerationMock.sol │ │ │ └── ProtocolPaymentMock.sol │ │ └── shared/ │ │ ├── FheType.sol │ │ ├── GatewayConfigChecks.sol │ │ ├── GatewayOwnable.sol │ │ ├── KMSRequestCounters.sol │ │ ├── Pausable.sol │ │ ├── ProtocolPaymentUtils.sol │ │ ├── Structs.sol │ │ └── UUPSUpgradeableEmptyProxy.sol │ ├── docker-compose.yml │ ├── docs/ │ │ ├── README.md │ │ ├── SUMMARY.md │ │ ├── getting-started/ │ │ │ ├── contracts/ │ │ │ │ ├── gateway_config.md │ │ │ │ ├── kms_generation.md │ │ │ │ └── pauser_set.md │ │ │ ├── deployment/ │ │ │ │ ├── docker_deploy.md │ │ │ │ ├── env_variables.md │ │ │ │ └── local_deploy.md │ │ │ └── pausing/ │ │ │ ├── env_variables.md │ │ │ └── pausing.md │ │ └── references/ │ │ └── selectors.md │ ├── foundry.toml │ ├── hardhat.config.ts │ ├── package.json │ ├── rust_bindings/ │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── address.rs │ │ ├── ciphertext_commits.rs │ │ ├── context.rs │ │ ├── context_upgradeable.rs │ │ ├── decryption.rs │ │ ├── ecdsa.rs │ │ ├── eip712_upgradeable.rs │ │ ├── empty_uups_proxy.rs │ │ ├── empty_uups_proxy_gateway_config.rs │ │ ├── erc1967_utils.rs │ │ ├── erc20.rs │ │ ├── errors.rs │ │ ├── fhe_type_bit_sizes.rs │ │ ├── gateway_config.rs │ │ ├── gateway_config_checks.rs │ │ ├── gateway_ownable.rs │ │ ├── handle_ops.rs │ │ ├── i_beacon.rs │ │ ├── i_ciphertext_commits.rs │ │ ├── i_decryption.rs │ │ ├── i_gateway_config.rs │ │ ├── i_input_verification.rs │ │ ├── i_pauser_set.rs │ │ ├── i_protocol_payment.rs │ │ ├── ierc1155_errors.rs │ │ ├── ierc1822_proxiable.rs │ │ ├── ierc1967.rs │ │ ├── ierc20.rs │ │ ├── ierc20_errors.rs │ │ ├── ierc20_metadata.rs │ │ ├── ierc5267.rs │ │ ├── ierc721_errors.rs │ │ ├── ikms_generation.rs │ │ ├── initializable.rs │ │ ├── input_verification.rs │ │ ├── kms_generation.rs │ │ ├── math.rs │ │ ├── message_hash_utils.rs │ │ ├── mod.rs │ │ ├── ownable2_step_upgradeable.rs │ │ ├── ownable_upgradeable.rs │ │ ├── panic.rs │ │ ├── pausable.rs │ │ ├── pausable_upgradeable.rs │ │ ├── pauser_set.rs │ │ ├── protocol_payment.rs │ │ ├── protocol_payment_utils.rs │ │ ├── safe_cast.rs │ │ ├── signed_math.rs │ │ ├── storage_slot.rs │ │ ├── strings.rs │ │ ├── uups_upgradeable.rs │ │ ├── uups_upgradeable_empty_proxy.rs │ │ └── zama_oft.rs │ ├── scripts/ │ │ ├── ensure_proxy_addresses.ts │ │ └── mock_contracts_cli.js │ ├── selectors.txt │ ├── tasks/ │ │ ├── accounts.ts │ │ ├── addHostChains.ts │ │ ├── addPausers.ts │ │ ├── blockExplorerVerify.ts │ │ ├── deployment/ │ │ │ ├── contracts.ts │ │ │ ├── empty_proxies.ts │ │ │ ├── index.ts │ │ │ ├── mock_contracts.ts │ │ │ ├── pauserSet.ts │ │ │ ├── paymentBridging/ │ │ │ │ ├── index.ts │ │ │ │ ├── mocked.ts │ │ │ │ └── setAddresses.ts │ │ │ └── utils.ts │ │ ├── generateKmsMaterials.ts │ │ ├── getters.ts │ │ ├── mockedTokenFund.ts │ │ ├── ownership.ts │ │ ├── pauseContracts.ts │ │ ├── reshareKeys.ts │ │ ├── upgradeContracts.ts │ │ └── utils/ │ │ ├── index.ts │ │ ├── loadVariables.ts │ │ └── stringOps.ts │ ├── test/ │ │ ├── CiphertextCommits.ts │ │ ├── Decryption.ts │ │ ├── GatewayConfig.ts │ │ ├── InputVerification.ts │ │ ├── KMSGeneration.ts │ │ ├── PauserSet.ts │ │ ├── ProtocolPayment.ts │ │ ├── mocks/ │ │ │ └── mocks.ts │ │ ├── tasks/ │ │ │ ├── keyResharing.ts │ │ │ ├── ownership.ts │ │ │ └── pausing.ts │ │ ├── upgrades/ │ │ │ └── upgrades.ts │ │ └── utils/ │ │ ├── contracts.ts │ │ ├── eip712/ │ │ │ ├── decryption.ts │ │ │ ├── index.ts │ │ │ ├── inputVerification.ts │ │ │ ├── interface.ts │ │ │ └── kmsGeneration.ts │ │ ├── events.ts │ │ ├── index.ts │ │ ├── inputs.ts │ │ ├── kmsRequestIds.ts │ │ ├── typeConversion.ts │ │ └── wallets.ts │ ├── tsconfig.json │ └── upgrade-manifest.json ├── golden-container-images/ │ ├── nodejs/ │ │ └── Dockerfile │ └── rust-glibc/ │ └── Dockerfile ├── host-contracts/ │ ├── .env.example │ ├── .gitignore │ ├── .npmignore │ ├── .prettierignore │ ├── .prettierrc.json │ ├── .solcover.js │ ├── CustomProvider.ts │ ├── Dockerfile │ ├── Makefile │ ├── README.md │ ├── codegen.config.json │ ├── contracts/ │ │ ├── ACL.sol │ │ ├── ACLEvents.sol │ │ ├── FHEEvents.sol │ │ ├── FHEVMExecutor.sol │ │ ├── HCULimit.sol │ │ ├── InputVerifier.sol │ │ ├── KMSVerifier.sol │ │ ├── emptyProxy/ │ │ │ └── EmptyUUPSProxy.sol │ │ ├── emptyProxyACL/ │ │ │ └── EmptyUUPSProxyACL.sol │ │ ├── immutable/ │ │ │ └── PauserSet.sol │ │ ├── interfaces/ │ │ │ └── IPauserSet.sol │ │ └── shared/ │ │ ├── ACLOwnable.sol │ │ ├── Constants.sol │ │ ├── EIP712UpgradeableCrossChain.sol │ │ ├── FheType.sol │ │ └── UUPSUpgradeableEmptyProxy.sol │ ├── docker-compose.yml │ ├── docs/ │ │ └── contract_selectors.txt │ ├── examples/ │ │ ├── ACLUpgradedExample.sol │ │ ├── ACLUpgradedExample2.sol │ │ ├── Counter.sol │ │ ├── EncryptedERC20.sol │ │ ├── FHEVMExecutorUpgradedExample.sol │ │ ├── HCULimitTest.sol │ │ ├── HCULimitUpgradedExample.sol │ │ ├── KMSVerifierUpgradedExample.sol │ │ ├── MakePubliclyDecryptable.sol │ │ ├── Rand.sol │ │ ├── Reencrypt.sol │ │ ├── Regression1.sol │ │ ├── SmartAccount.sol │ │ ├── TestInput.sol │ │ ├── TracingSubCalls.sol │ │ └── tests/ │ │ ├── FHEVMManualTestSuite.sol │ │ ├── FHEVMTestSuite1.sol │ │ ├── FHEVMTestSuite2.sol │ │ ├── FHEVMTestSuite3.sol │ │ ├── FHEVMTestSuite4.sol │ │ ├── FHEVMTestSuite5.sol │ │ ├── FHEVMTestSuite6.sol │ │ └── FHEVMTestSuite7.sol │ ├── fhevm-foundry/ │ │ └── HostContractsDeployerTestUtils.sol │ ├── foundry.toml │ ├── hardhat.config.ts │ ├── lib/ │ │ ├── CoprocessorSetup.sol │ │ ├── FHE.sol │ │ ├── Impl.sol │ │ └── cryptography/ │ │ └── FhevmECDSA.sol │ ├── package.json │ ├── remappings.txt │ ├── rust_bindings/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── acl.rs │ │ ├── acl_events.rs │ │ ├── acl_ownable.rs │ │ ├── address.rs │ │ ├── context_upgradeable.rs │ │ ├── ecdsa.rs │ │ ├── eip712_upgradeable_cross_chain.rs │ │ ├── empty_uups_proxy.rs │ │ ├── empty_uups_proxy_acl.rs │ │ ├── erc1967_utils.rs │ │ ├── errors.rs │ │ ├── fhe_events.rs │ │ ├── fhevm_executor.rs │ │ ├── hcu_limit.rs │ │ ├── i_beacon.rs │ │ ├── i_input_verifier.rs │ │ ├── i_pauser_set.rs │ │ ├── ierc1822_proxiable.rs │ │ ├── ierc1967.rs │ │ ├── ierc5267.rs │ │ ├── initializable.rs │ │ ├── input_verifier.rs │ │ ├── kms_verifier.rs │ │ ├── math.rs │ │ ├── message_hash_utils.rs │ │ ├── mod.rs │ │ ├── multicall_upgradeable.rs │ │ ├── ownable2_step_upgradeable.rs │ │ ├── ownable_upgradeable.rs │ │ ├── panic.rs │ │ ├── pausable_upgradeable.rs │ │ ├── pauser_set.rs │ │ ├── safe_cast.rs │ │ ├── signed_math.rs │ │ ├── storage_slot.rs │ │ ├── strings.rs │ │ ├── uups_upgradeable.rs │ │ └── uups_upgradeable_empty_proxy.rs │ ├── tasks/ │ │ ├── accounts.ts │ │ ├── addPausers.ts │ │ ├── blockExplorerVerify.ts │ │ ├── ownership.ts │ │ ├── pauseContracts.ts │ │ ├── taskDeploy.ts │ │ ├── taskUtils.ts │ │ ├── upgradeContracts.ts │ │ └── utils/ │ │ └── loadVariables.ts │ ├── test/ │ │ ├── acl/ │ │ │ ├── TestIntegrationACL.t.sol │ │ │ ├── acl.t.sol │ │ │ └── acl.ts │ │ ├── coprocessorUtils.ts │ │ ├── eip712UpgradeableCrossChain/ │ │ │ └── EIP712UpgradeableCrossChain.t.sol │ │ ├── encryptedERC20/ │ │ │ ├── EncryptedERC20.HCU.ts │ │ │ ├── EncryptedERC20.fixture.ts │ │ │ ├── EncryptedERC20.gas.ts │ │ │ └── EncryptedERC20.ts │ │ ├── fhevm-foundry/ │ │ │ └── TestHostContractsDeployerTestUtils.t.sol │ │ ├── fhevmExecutor/ │ │ │ └── fhevmExecutor.t.sol │ │ ├── fhevmOperations/ │ │ │ ├── fhevmOperations1.ts │ │ │ ├── fhevmOperations10.ts │ │ │ ├── fhevmOperations11.ts │ │ │ ├── fhevmOperations12.ts │ │ │ ├── fhevmOperations13.ts │ │ │ ├── fhevmOperations2.ts │ │ │ ├── fhevmOperations3.ts │ │ │ ├── fhevmOperations4.ts │ │ │ ├── fhevmOperations5.ts │ │ │ ├── fhevmOperations6.ts │ │ │ ├── fhevmOperations7.ts │ │ │ ├── fhevmOperations8.ts │ │ │ ├── fhevmOperations9.ts │ │ │ └── manual.ts │ │ ├── fhevmjsMocked.ts │ │ ├── fhevmjsTest/ │ │ │ └── fhevmjsTest.ts │ │ ├── hcuLimit/ │ │ │ ├── HCULimit.invariants.t.sol │ │ │ ├── HCULimit.t.sol │ │ │ └── HCULimit.ts │ │ ├── inputVerifier/ │ │ │ ├── InputVerifier.t.sol │ │ │ └── inputVerifier.ts │ │ ├── instance.ts │ │ ├── kmsVerifier/ │ │ │ ├── kmsVerifier.t.sol │ │ │ └── kmsVerifier.ts │ │ ├── makePubliclyDecryptable/ │ │ │ └── makePubliclyDecryptable.ts │ │ ├── pauserSet/ │ │ │ └── pauserSet.ts │ │ ├── paymentUtils.ts │ │ ├── rand/ │ │ │ ├── Rand.fixture.ts │ │ │ └── Rand.ts │ │ ├── reencryption/ │ │ │ └── reencryption.ts │ │ ├── regressions/ │ │ │ └── Regression1.ts │ │ ├── signers.ts │ │ ├── tasks/ │ │ │ ├── ownership.ts │ │ │ └── pausing.ts │ │ ├── tracing/ │ │ │ └── tracing.ts │ │ ├── types.ts │ │ ├── upgrades/ │ │ │ └── upgrades.ts │ │ └── utils.ts │ ├── tsconfig.json │ └── upgrade-manifest.json ├── kms-connector/ │ ├── .cargo/ │ │ ├── audit.toml │ │ └── deny.toml │ ├── .dockerignore │ ├── .gitignore │ ├── .sqlx/ │ │ ├── query-05206597d00f58583f577f3d54ddd767c5696857085178cca25df687aa0cd39c.json │ │ ├── query-05f22646520c5835fc3235aa6378dccd4436ca4a07ab25a9c8abe21760d5b202.json │ │ ├── query-083e8a8de715c2a8dc806edb5aad8c9f92d1087059e7531e6232fde40e633f4e.json │ │ ├── query-17db0e005e1367157721bf62877d735a9fb755f5d9afe72f069a1872ff1b7fd6.json │ │ ├── query-1b85ab5815750616e2d237a43313f031d9913a515c3571e80890753a83ba350d.json │ │ ├── query-25c322913225c0b6a6813fa1e1ecf78356784a6cda4a8d62f9c37a18720229d7.json │ │ ├── query-2cba0042171405be7ad8ae68b8f2df139f79dbd8a70ad48aca3c15ab6933ed35.json │ │ ├── query-44bb0537af9736b1121d933649a456ef6f0921b6ea86d05d76fd48d4bffe7db6.json │ │ ├── query-4c8325bc7c94536f1950569e396e474e7be7ba99b731a67227a64a2381cec5d6.json │ │ ├── query-4d063e25b766d3c96b516388f0682b12fd16ab2b6f0601d702c099c9725087b2.json │ │ ├── query-4f17703247a738656e4f9205ebfb0e000a2d9322f23643a7bf0bbf5bafcfce4e.json │ │ ├── query-536fab7b8d99df255619355b084cdb4de9279b5ec84ad4d79772d326b1099fc6.json │ │ ├── query-59428c72c6afbb794abc7a14db053e575e50199aadb1fc8bfec5b68a5bcb4394.json │ │ ├── query-645793d339e40d5c50c62c6895dc47244389bc994fc385eb88bbacc0ef54569e.json │ │ ├── query-6739603e46f698938947ef34317afbf2cecdd04c61548297cf8fa4e4ff22d309.json │ │ ├── query-715c77041e59d60ba8d591c3894f2ade038600a0e6042af211567c97133f6555.json │ │ ├── query-72b5875fec8f017644c045dc7897fdc6798aabf9da3016fad71d0f3227d26e8e.json │ │ ├── query-79dc656fa7a15579244340280891556d71e06ad34b8ada1bd29fba836d36dee7.json │ │ ├── query-7bc09b14c9d4e82e1f22b6cc850786687c5e2557760b1dbed418ccfb0353b6be.json │ │ ├── query-7bc37c994ea75c732017ff6c4eb36a56d23191c2a428af3e8847fde85a701b36.json │ │ ├── query-7e6031fa69c6a6884bb9b3a7b2e19db0fef204f71ad8dde9bd8bc808b0cb25fd.json │ │ ├── query-7f96aa6c8b04c991cbffa6548229e57039a9137d1a6b96a7b677b41382b6f1a7.json │ │ ├── query-828ed7aa3de4737fcc54dbb2ffdf07098ab6ef7810a1f27ac7d7e0b5a083db69.json │ │ ├── query-82fb484240d66011079463d32cdd026f08caf373070a3edd62d3ff93f24beffc.json │ │ ├── query-982d9be537f18de31bf6aeb851c900564147c5317a6c556322c253af063a7874.json │ │ ├── query-9b9900b9362cd670096512cf1b90c4ab8497593e3f10112f24e381164e907dfd.json │ │ ├── query-a44b1d4e88190c3319559b50ae6cd8ade6b26b04b71e9a90b4a64bbf48a9bff8.json │ │ ├── query-a4880722c49af43d7f6cb9816c113e332879762cdf89f2b13171c248f5a0a477.json │ │ ├── query-a70444056f27bd68660c86bade10eccfac9cb5fd677de32dcc7bea043d3ca237.json │ │ ├── query-a7b4dbcc2bd1d95a9ec562782e467612eff6a1663688e7ed7b5cb181807fd5f3.json │ │ ├── query-ac8229a3ceb462177827da9963f51aaced2c230e0ae6603866711ca949d4a99f.json │ │ ├── query-ac82565c4c15f51c6df30bd691519619bb6ff80098fe4e077ed2b43cf6ac525a.json │ │ ├── query-af73e253d2f8f12077e59607c44ff182930372d1452c32330464c911c970754d.json │ │ ├── query-b2c95c332dbf3437ce4ffe7aaaf0ea28dc853750911a5ef4e0cf5dfdfad1f872.json │ │ ├── query-b3ee6c99edad54e3ef0f8a19bdc036142463f678111f32cf1ae8607e4a281634.json │ │ ├── query-b9a438ed8f6a3380ae46c3ce699cb3f3edcb8b3ccbcceecb0a4951f75fd7cbd5.json │ │ ├── query-ba6fac6612b9e8bf95649f9a527a4843bcb0d52cff4fc012e58dba0cbd5faf8a.json │ │ ├── query-bac064549047cb319d62b7d3a639cfc3933fc455e8e97407aacba220f251a61f.json │ │ ├── query-be7952ac7f042f7b4756783cb2c40cdc4b92eb360bc5ae95bb3ce3805a3c0a00.json │ │ ├── query-c4846436287bb74b8286442658da646740df133377bd8ffdb4e3451283ced0b7.json │ │ ├── query-c83e2d51b055f9915570e440fe0f5c13488ce0aa0b02cb23c69849cf5890f5fd.json │ │ ├── query-cf48957852364ef9eb8a6aad14b456ede34b98987dea31b6b8e70fc14116d91b.json │ │ ├── query-cf60be82db94427c2ec3236b82ad353f0b8b222e7a3453b43b2f7542f9c8ea62.json │ │ ├── query-d0b5c0db41828ffa93492074e25d8c3401f1858435db7f7dc2bc59a257616c1c.json │ │ ├── query-d564a5a734d0c2292b5ffc423ed7ed720e1efaa5f58e5cba101988f85a7c653f.json │ │ ├── query-f1e7aa434bafae2d6278099212ea4534323ef5337b7ef31877697eaa182362cc.json │ │ ├── query-f4cec78c0611edc0cf747320db7f0fb1c9eaec89303c3f3e45617b155fa9aed8.json │ │ ├── query-f6af77062d47b06b0a1064ef06a1bf168a7efc68fde95f9b98bd182ecb30255b.json │ │ └── query-fd2c52acba0232ef2f5e755c1b4fb595ebaf02cb3561cbaa1cc086f5ab6dc2ae.json │ ├── Cargo.toml │ ├── Dockerfile.workspace │ ├── README.md │ ├── config/ │ │ ├── gw-listener.toml │ │ ├── kms-worker.toml │ │ └── tx-sender.toml │ ├── connector-db/ │ │ ├── Dockerfile │ │ ├── docker-compose.yml │ │ ├── init_db.sh │ │ └── migrations/ │ │ ├── 20250604084502_gw_events.sql │ │ ├── 20250604141515_decryption_response.sql │ │ ├── 20250604143523_kms_worker_notify.sql │ │ ├── 20250606125742_tx_sender_notify.sql │ │ ├── 20250826111757_keygen_crs.sql │ │ ├── 20251007112229_add_otlp_context.sql │ │ ├── 20251025081948_prss_init.sql │ │ ├── 20251026091602_refresh_keygen_reshare.sql │ │ ├── 20251027122128_add_already_sent.sql │ │ ├── 20251104142103_add_last_block_polled.sql │ │ ├── 20251113084850_add_decryption_error_counter.sql │ │ ├── 20251208161022_implem_garbage_collection.sql │ │ ├── 20260122130522_add_tx_hash.sql │ │ └── 20260203091107_timestamp_to_timestamptz.sql │ ├── crates/ │ │ ├── gw-listener/ │ │ │ ├── Cargo.toml │ │ │ ├── Dockerfile │ │ │ ├── src/ │ │ │ │ ├── bin/ │ │ │ │ │ └── gw_listener.rs │ │ │ │ ├── core/ │ │ │ │ │ ├── config.rs │ │ │ │ │ ├── gw_listener.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── publish.rs │ │ │ │ ├── lib.rs │ │ │ │ └── monitoring/ │ │ │ │ ├── health.rs │ │ │ │ ├── metrics.rs │ │ │ │ └── mod.rs │ │ │ └── tests/ │ │ │ ├── block_tracking.rs │ │ │ ├── catchup.rs │ │ │ ├── common/ │ │ │ │ └── mod.rs │ │ │ ├── health.rs │ │ │ └── integration_test.rs │ │ ├── kms-worker/ │ │ │ ├── Cargo.toml │ │ │ ├── Dockerfile │ │ │ ├── src/ │ │ │ │ ├── bin/ │ │ │ │ │ └── kms_worker.rs │ │ │ │ ├── core/ │ │ │ │ │ ├── config.rs │ │ │ │ │ ├── event_picker/ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── notifier.rs │ │ │ │ │ │ └── picker.rs │ │ │ │ │ ├── event_processor/ │ │ │ │ │ │ ├── decryption.rs │ │ │ │ │ │ ├── kms.rs │ │ │ │ │ │ ├── kms_client.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── processor.rs │ │ │ │ │ │ └── s3.rs │ │ │ │ │ ├── kms_response_publisher.rs │ │ │ │ │ ├── kms_worker.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── lib.rs │ │ │ │ └── monitoring/ │ │ │ │ ├── health.rs │ │ │ │ ├── metrics.rs │ │ │ │ └── mod.rs │ │ │ └── tests/ │ │ │ ├── acl.rs │ │ │ ├── attempt_limit.rs │ │ │ ├── common/ │ │ │ │ └── mod.rs │ │ │ ├── event_picker/ │ │ │ │ ├── main.rs │ │ │ │ ├── notif.rs │ │ │ │ ├── parallel.rs │ │ │ │ ├── polling.rs │ │ │ │ └── simple.rs │ │ │ ├── health.rs │ │ │ ├── integration_tests.rs │ │ │ ├── response_publisher.rs │ │ │ └── s3.rs │ │ ├── tx-sender/ │ │ │ ├── Cargo.toml │ │ │ ├── Dockerfile │ │ │ ├── src/ │ │ │ │ ├── bin/ │ │ │ │ │ └── tx_sender.rs │ │ │ │ ├── core/ │ │ │ │ │ ├── config.rs │ │ │ │ │ ├── kms_response_picker/ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── notifier.rs │ │ │ │ │ │ └── picker.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── tx_sender.rs │ │ │ │ ├── lib.rs │ │ │ │ └── monitoring/ │ │ │ │ ├── garbage_collection.rs │ │ │ │ ├── health.rs │ │ │ │ ├── metrics.rs │ │ │ │ └── mod.rs │ │ │ └── tests/ │ │ │ ├── data/ │ │ │ │ └── tx_out_of_gas/ │ │ │ │ ├── 1_estimate_gas.json │ │ │ │ ├── 2_get_nonce.json │ │ │ │ ├── 3_send_tx_sync.json │ │ │ │ └── 4_debug_trace_tx.json │ │ │ ├── gc.rs │ │ │ ├── health.rs │ │ │ ├── integration_tests.rs │ │ │ └── response_picker/ │ │ │ ├── main.rs │ │ │ ├── notif.rs │ │ │ ├── parallel.rs │ │ │ └── polling.rs │ │ └── utils/ │ │ ├── Cargo.toml │ │ ├── src/ │ │ │ ├── cli.rs │ │ │ ├── config/ │ │ │ │ ├── contract.rs │ │ │ │ ├── deserialize.rs │ │ │ │ ├── error.rs │ │ │ │ ├── mod.rs │ │ │ │ └── wallet.rs │ │ │ ├── conn.rs │ │ │ ├── lib.rs │ │ │ ├── monitoring/ │ │ │ │ ├── health.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── otlp.rs │ │ │ │ └── server.rs │ │ │ ├── provider.rs │ │ │ ├── signal.rs │ │ │ ├── tasks.rs │ │ │ ├── tests/ │ │ │ │ ├── db/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── requests.rs │ │ │ │ │ └── responses.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── rand.rs │ │ │ │ └── setup/ │ │ │ │ ├── common.rs │ │ │ │ ├── db.rs │ │ │ │ ├── deps.rs │ │ │ │ ├── gw.rs │ │ │ │ ├── host.rs │ │ │ │ ├── instance.rs │ │ │ │ ├── kms.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── s3.rs │ │ │ │ └── writer.rs │ │ │ └── types/ │ │ │ ├── db.rs │ │ │ ├── fhe.rs │ │ │ ├── grpc.rs │ │ │ ├── gw_event.rs │ │ │ ├── kms_response.rs │ │ │ └── mod.rs │ │ └── tests/ │ │ └── data/ │ │ ├── 3a002df21130bda55f78d4403a73007a797f4a888174a620bbffc9052a045239 │ │ └── core-client-config.toml │ ├── docs/ │ │ └── architecture.md │ └── rust-toolchain.toml ├── library-solidity/ │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc.yml │ ├── .gitignore │ ├── .gitpod.yml │ ├── .lintstagedrc.json │ ├── .npmignore │ ├── .prettierignore │ ├── .prettierrc.json │ ├── .solcover.js │ ├── .soldeerignore │ ├── .solhintignore │ ├── CustomProvider.ts │ ├── README.md │ ├── SECURITY.md │ ├── ci/ │ │ ├── Dockerfile │ │ ├── docker-compose.yml │ │ ├── requirements.txt │ │ ├── scripts/ │ │ │ ├── prepare_fhe_keys_ci.sh │ │ │ └── prepare_fhe_keys_for_e2e_test.sh │ │ └── tests/ │ │ └── ERC20.py │ ├── codegen/ │ │ ├── .prettierignore │ │ ├── .prettierrc.json │ │ ├── README.md │ │ ├── codegen.mjs │ │ ├── overloads/ │ │ │ ├── e2e.json │ │ │ ├── host-contracts.json │ │ │ └── library-solidity.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── common.ts │ │ │ ├── config.ts │ │ │ ├── fheTypeInfos.ts │ │ │ ├── generateOverloads.ts │ │ │ ├── hcuLimitGenerator.ts │ │ │ ├── index.ts │ │ │ ├── main.ts │ │ │ ├── operators.ts │ │ │ ├── operatorsPrices.ts │ │ │ ├── paths.ts │ │ │ ├── pseudoRand.ts │ │ │ ├── templateFHEDotSol.ts │ │ │ ├── templateFheTypeDotSol.ts │ │ │ ├── templateImpDotSol.ts │ │ │ ├── templates/ │ │ │ │ ├── FHE.sol-template │ │ │ │ ├── FheType.sol-template │ │ │ │ ├── FhevmECDSA.sol-template │ │ │ │ └── Impl.sol-template │ │ │ ├── testgen.ts │ │ │ ├── utils.ts │ │ │ └── validate.ts │ │ ├── tsconfig.base.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── codegen.config.json │ ├── commitlint.config.ts │ ├── config/ │ │ └── ZamaConfig.sol │ ├── examples/ │ │ ├── CoprocessorSetup.sol │ │ ├── Counter.sol │ │ ├── EncryptedERC20.sol │ │ ├── HeadsOrTails.sol │ │ ├── MakePubliclyDecryptable.sol │ │ ├── OnchainPublicDecrypt.sol │ │ ├── Rand.sol │ │ ├── TestEthereumCoprocessorConfig.sol │ │ ├── TracingSubCalls.sol │ │ ├── multisig/ │ │ │ ├── EncryptedSetter.sol │ │ │ ├── MultiSigHelper.sol │ │ │ └── SimpleMultiSig.sol │ │ └── tests/ │ │ ├── FHEVMManualTestSuite.sol │ │ ├── FHEVMTestSuite1.sol │ │ ├── FHEVMTestSuite2.sol │ │ ├── FHEVMTestSuite3.sol │ │ ├── FHEVMTestSuite4.sol │ │ ├── FHEVMTestSuite5.sol │ │ ├── FHEVMTestSuite6.sol │ │ └── FHEVMTestSuite7.sol │ ├── foundry.toml │ ├── hardhat.config.ts │ ├── lib/ │ │ ├── FHE.sol │ │ ├── FheType.sol │ │ ├── Impl.sol │ │ └── cryptography/ │ │ └── FhevmECDSA.sol │ ├── lib-js/ │ │ ├── common.ts │ │ ├── fheTypeInfos.ts │ │ └── operatorsPrices.ts │ ├── mlc_config.json │ ├── package.json │ ├── remappings.txt │ ├── tasks/ │ │ ├── accounts.ts │ │ ├── addPausers.ts │ │ ├── getEthereumAddress.ts │ │ ├── taskDeploy.ts │ │ ├── taskUtils.ts │ │ └── utils/ │ │ └── loadVariables.ts │ ├── test/ │ │ ├── EthereumConfig.t.sol │ │ ├── FHEDelegation.t.sol │ │ ├── FHEDenyList.t.sol │ │ ├── coprocessorConfig/ │ │ │ └── testEthereumCoprocessorConfig.ts │ │ ├── coprocessorUtils.ts │ │ ├── encryptedERC20/ │ │ │ ├── EncryptedERC20.HCU.ts │ │ │ ├── EncryptedERC20.fixture.ts │ │ │ └── EncryptedERC20.ts │ │ ├── fhevmOperations/ │ │ │ ├── fhevmOperations1.ts │ │ │ ├── fhevmOperations10.ts │ │ │ ├── fhevmOperations11.ts │ │ │ ├── fhevmOperations12.ts │ │ │ ├── fhevmOperations13.ts │ │ │ ├── fhevmOperations2.ts │ │ │ ├── fhevmOperations3.ts │ │ │ ├── fhevmOperations4.ts │ │ │ ├── fhevmOperations5.ts │ │ │ ├── fhevmOperations6.ts │ │ │ ├── fhevmOperations7.ts │ │ │ ├── fhevmOperations8.ts │ │ │ ├── fhevmOperations9.ts │ │ │ └── manual.ts │ │ ├── fhevmjsMocked.ts │ │ ├── fhevmjsTest/ │ │ │ └── fhevmjsTest.ts │ │ ├── instance.ts │ │ ├── makePubliclyDecryptable/ │ │ │ └── makePubliclyDecryptable.ts │ │ ├── multiSig/ │ │ │ ├── MultiSig.fixture.ts │ │ │ └── MultiSig.ts │ │ ├── onchainPublicDecrypt/ │ │ │ └── OnchainPublicDecrypt.ts │ │ ├── rand/ │ │ │ ├── Rand.fixture.ts │ │ │ └── Rand.ts │ │ ├── signers.ts │ │ ├── tracing/ │ │ │ └── tracing.ts │ │ ├── types.ts │ │ └── utils.ts │ └── tsconfig.json ├── package.json ├── sdk/ │ └── rust-sdk/ │ ├── .gitignore │ ├── Cargo.toml │ ├── README.md │ ├── examples/ │ │ ├── demo.rs │ │ ├── input.rs │ │ ├── keygen.rs │ │ ├── minimal-eip712-signing.rs │ │ ├── minimal-encrypted-input.rs │ │ ├── minimal-public-decryption-request.rs │ │ ├── minimal-public-decryption-response.rs │ │ ├── minimal-sdk-setup.rs │ │ ├── minimal-user-decryption-request.rs │ │ ├── minimal-user-decryption-response.rs │ │ ├── minimal-user-keys-generation.rs │ │ └── user-decryption.rs │ ├── scripts/ │ │ └── run-examples.sh │ ├── src/ │ │ ├── blockchain/ │ │ │ ├── calldata.rs │ │ │ └── mod.rs │ │ ├── decryption/ │ │ │ ├── mod.rs │ │ │ ├── public/ │ │ │ │ ├── deserializer.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── request.rs │ │ │ │ ├── response.rs │ │ │ │ ├── types.rs │ │ │ │ └── verification.rs │ │ │ └── user/ │ │ │ ├── deserializer.rs │ │ │ ├── mod.rs │ │ │ ├── request.rs │ │ │ ├── response.rs │ │ │ └── types.rs │ │ ├── encryption/ │ │ │ ├── input.rs │ │ │ ├── mod.rs │ │ │ └── primitives.rs │ │ ├── lib.rs │ │ ├── logging.rs │ │ ├── signature/ │ │ │ ├── eip712/ │ │ │ │ ├── builder.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── types.rs │ │ │ │ └── verification.rs │ │ │ └── mod.rs │ │ └── utils.rs │ └── test_data/ │ └── user_decryption_test_data.json ├── test-suite/ │ ├── .gitignore │ ├── CHANGELOG.md │ ├── README.md │ ├── e2e/ │ │ ├── .env.devnet │ │ ├── .env.example │ │ ├── .gitignore │ │ ├── .prettierrc.json │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── codegen.config.json │ │ ├── contracts/ │ │ │ ├── E2ECoprocessorConfigLocal.sol │ │ │ ├── EncryptedERC20.sol │ │ │ ├── HTTPPublicDecrypt.sol │ │ │ ├── Rand.sol │ │ │ ├── SmartWalletWithDelegation.sol │ │ │ ├── UserDecrypt.sol │ │ │ ├── operations/ │ │ │ │ ├── FHEVMManualTestSuite.sol │ │ │ │ ├── FHEVMTestSuite1.sol │ │ │ │ ├── FHEVMTestSuite2.sol │ │ │ │ ├── FHEVMTestSuite3.sol │ │ │ │ ├── FHEVMTestSuite4.sol │ │ │ │ ├── FHEVMTestSuite5.sol │ │ │ │ ├── FHEVMTestSuite6.sol │ │ │ │ ├── FHEVMTestSuite7.sol │ │ │ │ └── SlowLaneContention.sol │ │ │ └── smoke/ │ │ │ ├── SmokeTestInput.sol │ │ │ └── TestInput.sol │ │ ├── hardhat.config.ts │ │ ├── package.json │ │ ├── run-tests.sh │ │ ├── scripts/ │ │ │ ├── smoke-inputflow.ts │ │ │ └── smoke-reporting.ts │ │ ├── test/ │ │ │ ├── consensusWatchdog.test.ts │ │ │ ├── consensusWatchdog.ts │ │ │ ├── delegatedUserDecryption/ │ │ │ │ └── delegatedUserDecryption.ts │ │ │ ├── encryptedERC20/ │ │ │ │ ├── EncryptedERC20.HCU.ts │ │ │ │ ├── EncryptedERC20.fixture.ts │ │ │ │ └── EncryptedERC20.ts │ │ │ ├── fhevmOperations/ │ │ │ │ ├── fhevmOperations1.ts │ │ │ │ ├── fhevmOperations10.ts │ │ │ │ ├── fhevmOperations100.ts │ │ │ │ ├── fhevmOperations101.ts │ │ │ │ ├── fhevmOperations102.ts │ │ │ │ ├── fhevmOperations103.ts │ │ │ │ ├── fhevmOperations104.ts │ │ │ │ ├── fhevmOperations105.ts │ │ │ │ ├── fhevmOperations11.ts │ │ │ │ ├── fhevmOperations12.ts │ │ │ │ ├── fhevmOperations13.ts │ │ │ │ ├── fhevmOperations14.ts │ │ │ │ ├── fhevmOperations15.ts │ │ │ │ ├── fhevmOperations16.ts │ │ │ │ ├── fhevmOperations17.ts │ │ │ │ ├── fhevmOperations18.ts │ │ │ │ ├── fhevmOperations19.ts │ │ │ │ ├── fhevmOperations2.ts │ │ │ │ ├── fhevmOperations20.ts │ │ │ │ ├── fhevmOperations21.ts │ │ │ │ ├── fhevmOperations22.ts │ │ │ │ ├── fhevmOperations23.ts │ │ │ │ ├── fhevmOperations24.ts │ │ │ │ ├── fhevmOperations25.ts │ │ │ │ ├── fhevmOperations26.ts │ │ │ │ ├── fhevmOperations27.ts │ │ │ │ ├── fhevmOperations28.ts │ │ │ │ ├── fhevmOperations29.ts │ │ │ │ ├── fhevmOperations3.ts │ │ │ │ ├── fhevmOperations30.ts │ │ │ │ ├── fhevmOperations31.ts │ │ │ │ ├── fhevmOperations32.ts │ │ │ │ ├── fhevmOperations33.ts │ │ │ │ ├── fhevmOperations34.ts │ │ │ │ ├── fhevmOperations35.ts │ │ │ │ ├── fhevmOperations36.ts │ │ │ │ ├── fhevmOperations37.ts │ │ │ │ ├── fhevmOperations38.ts │ │ │ │ ├── fhevmOperations39.ts │ │ │ │ ├── fhevmOperations4.ts │ │ │ │ ├── fhevmOperations40.ts │ │ │ │ ├── fhevmOperations41.ts │ │ │ │ ├── fhevmOperations42.ts │ │ │ │ ├── fhevmOperations43.ts │ │ │ │ ├── fhevmOperations44.ts │ │ │ │ ├── fhevmOperations45.ts │ │ │ │ ├── fhevmOperations46.ts │ │ │ │ ├── fhevmOperations47.ts │ │ │ │ ├── fhevmOperations48.ts │ │ │ │ ├── fhevmOperations49.ts │ │ │ │ ├── fhevmOperations5.ts │ │ │ │ ├── fhevmOperations50.ts │ │ │ │ ├── fhevmOperations51.ts │ │ │ │ ├── fhevmOperations52.ts │ │ │ │ ├── fhevmOperations53.ts │ │ │ │ ├── fhevmOperations54.ts │ │ │ │ ├── fhevmOperations55.ts │ │ │ │ ├── fhevmOperations56.ts │ │ │ │ ├── fhevmOperations57.ts │ │ │ │ ├── fhevmOperations58.ts │ │ │ │ ├── fhevmOperations59.ts │ │ │ │ ├── fhevmOperations6.ts │ │ │ │ ├── fhevmOperations60.ts │ │ │ │ ├── fhevmOperations61.ts │ │ │ │ ├── fhevmOperations62.ts │ │ │ │ ├── fhevmOperations63.ts │ │ │ │ ├── fhevmOperations64.ts │ │ │ │ ├── fhevmOperations65.ts │ │ │ │ ├── fhevmOperations66.ts │ │ │ │ ├── fhevmOperations67.ts │ │ │ │ ├── fhevmOperations68.ts │ │ │ │ ├── fhevmOperations69.ts │ │ │ │ ├── fhevmOperations7.ts │ │ │ │ ├── fhevmOperations70.ts │ │ │ │ ├── fhevmOperations71.ts │ │ │ │ ├── fhevmOperations72.ts │ │ │ │ ├── fhevmOperations73.ts │ │ │ │ ├── fhevmOperations74.ts │ │ │ │ ├── fhevmOperations75.ts │ │ │ │ ├── fhevmOperations76.ts │ │ │ │ ├── fhevmOperations77.ts │ │ │ │ ├── fhevmOperations78.ts │ │ │ │ ├── fhevmOperations79.ts │ │ │ │ ├── fhevmOperations8.ts │ │ │ │ ├── fhevmOperations80.ts │ │ │ │ ├── fhevmOperations81.ts │ │ │ │ ├── fhevmOperations82.ts │ │ │ │ ├── fhevmOperations83.ts │ │ │ │ ├── fhevmOperations84.ts │ │ │ │ ├── fhevmOperations85.ts │ │ │ │ ├── fhevmOperations86.ts │ │ │ │ ├── fhevmOperations87.ts │ │ │ │ ├── fhevmOperations88.ts │ │ │ │ ├── fhevmOperations89.ts │ │ │ │ ├── fhevmOperations9.ts │ │ │ │ ├── fhevmOperations90.ts │ │ │ │ ├── fhevmOperations91.ts │ │ │ │ ├── fhevmOperations92.ts │ │ │ │ ├── fhevmOperations93.ts │ │ │ │ ├── fhevmOperations94.ts │ │ │ │ ├── fhevmOperations95.ts │ │ │ │ ├── fhevmOperations96.ts │ │ │ │ ├── fhevmOperations97.ts │ │ │ │ ├── fhevmOperations98.ts │ │ │ │ ├── fhevmOperations99.ts │ │ │ │ └── manual.ts │ │ │ ├── fhevmjsTest/ │ │ │ │ └── fhevmjsTest.ts │ │ │ ├── httpPublicDecrypt/ │ │ │ │ └── httpPublicDecrypt.ts │ │ │ ├── instance.ts │ │ │ ├── makePubliclyDecryptable/ │ │ │ │ └── makePubliclyDecryptable.ts │ │ │ ├── pausedProtocol/ │ │ │ │ ├── pausedGateway.ts │ │ │ │ └── pausedHost.ts │ │ │ ├── rand/ │ │ │ │ ├── Rand.fixture.ts │ │ │ │ └── Rand.ts │ │ │ ├── signers.ts │ │ │ ├── slowlane/ │ │ │ │ └── slowLaneContention.ts │ │ │ ├── types.ts │ │ │ ├── userDecryption/ │ │ │ │ └── userDecryption.ts │ │ │ ├── userInput/ │ │ │ │ └── inputFlow.ts │ │ │ └── utils.ts │ │ └── tsconfig.json │ ├── fhevm/ │ │ ├── config/ │ │ │ ├── core-client/ │ │ │ │ └── config.toml │ │ │ ├── kms-core/ │ │ │ │ └── config.toml │ │ │ ├── prometheus/ │ │ │ │ └── prometheus.yml │ │ │ └── relayer/ │ │ │ └── local.yaml │ │ ├── docker-compose/ │ │ │ ├── coprocessor-docker-compose.yml │ │ │ ├── core-docker-compose.yml │ │ │ ├── database-docker-compose.yml │ │ │ ├── gateway-mocked-payment-docker-compose.yml │ │ │ ├── gateway-node-docker-compose.yml │ │ │ ├── gateway-pause-docker-compose.yml │ │ │ ├── gateway-sc-docker-compose.yml │ │ │ ├── gateway-unpause-docker-compose.yml │ │ │ ├── host-node-docker-compose.yml │ │ │ ├── host-pause-docker-compose.yml │ │ │ ├── host-sc-docker-compose.yml │ │ │ ├── host-unpause-docker-compose.yml │ │ │ ├── kms-connector-docker-compose.yml │ │ │ ├── minio-docker-compose.yml │ │ │ ├── relayer-docker-compose.yml │ │ │ ├── test-suite-docker-compose.yml │ │ │ └── tracing-docker-compose.yml │ │ ├── fhevm-cli │ │ └── scripts/ │ │ ├── debug-container.sh │ │ ├── deploy-fhevm-stack.sh │ │ ├── inject-coprocessor-drift.sh │ │ ├── run-ciphertext-drift-e2e.sh │ │ └── setup-kms-signer-address.sh │ └── gateway-stress/ │ ├── .sqlx/ │ │ ├── query-2f49a66126dda8f3e5f043ad8fa119691568ca3216e1a04715aa02322bf3723d.json │ │ ├── query-6007239279928f6691a5284666e99fb6f020f20264c157500dbad47d7ec3dfa9.json │ │ ├── query-6471556ae0071cc8896a01ad0f2f350416bf00d6d617422422f2368f5ec7c826.json │ │ ├── query-7eb5ee37fa8e57c641712b895a5f59e0c484429e78626ccd5ad8b6d55a12267b.json │ │ ├── query-a9ac11a0896006a03fd4260810c31bf236ebe89054f4c7e981490c596799585b.json │ │ ├── query-affa510bdee616839e36215c598d07a20ca7af56c37fca94c0c1759dc2eba8ea.json │ │ └── query-d6597f8cda1d06ba8a5adedc650047a8646bfa1f3c666f2cf0f29257268b3542.json │ ├── Cargo.toml │ ├── Dockerfile │ ├── README.md │ ├── config/ │ │ └── config.toml │ ├── rust-toolchain.toml │ ├── scripts/ │ │ └── gen_handles.py │ ├── src/ │ │ ├── bench.rs │ │ ├── blockchain/ │ │ │ ├── manager.rs │ │ │ ├── mod.rs │ │ │ ├── nonce_manager.rs │ │ │ ├── provider.rs │ │ │ └── wallet.rs │ │ ├── cli.rs │ │ ├── config.rs │ │ ├── db/ │ │ │ ├── connector.rs │ │ │ ├── manager.rs │ │ │ ├── mod.rs │ │ │ ├── request_builder.rs │ │ │ ├── response_tracker.rs │ │ │ └── types.rs │ │ ├── decryption/ │ │ │ ├── mod.rs │ │ │ ├── public.rs │ │ │ ├── types.rs │ │ │ └── user.rs │ │ └── main.rs │ └── templates/ │ ├── db_bench.csv │ ├── gw_bench.csv │ └── small_bench.csv └── typos.toml