@enclave-e3/contracts 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +3 -3
- package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/artifacts.d.ts +3 -3
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +1 -1
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +3 -3
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/artifacts.d.ts +4 -4
- package/artifacts/build-info/{solc-0_8_28-c77ac33099bb85c15f46d194dd2b735e036cb799.json → solc-0_8_28-e60a5d7c133605edcf61acdd5ba43ab44ee0928e.json} +27 -12
- package/artifacts/build-info/solc-0_8_28-e60a5d7c133605edcf61acdd5ba43ab44ee0928e.output.json +1 -0
- package/artifacts/contracts/E3RefundManager.sol/E3RefundManager.json +684 -0
- package/artifacts/contracts/E3RefundManager.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/Enclave.sol/Enclave.json +530 -182
- package/artifacts/contracts/Enclave.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/interfaces/IBondingRegistry.sol/IBondingRegistry.json +14 -1
- package/artifacts/contracts/interfaces/IBondingRegistry.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/ICiphernodeRegistry.json +55 -5
- package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/IComputeProvider.sol/IComputeProvider.json +1 -1
- package/artifacts/contracts/interfaces/IComputeProvider.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/IDecryptionVerifier.json +1 -1
- package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/interfaces/IE3Program.sol/IE3Program.json +19 -24
- package/artifacts/contracts/interfaces/IE3Program.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/IE3RefundManager.sol/IE3RefundManager.json +470 -0
- package/artifacts/contracts/interfaces/IE3RefundManager.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/interfaces/IEnclave.sol/IEnclave.json +383 -128
- package/artifacts/contracts/interfaces/IEnclave.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/ISlashVerifier.sol/ISlashVerifier.json +1 -1
- package/artifacts/contracts/interfaces/ISlashVerifier.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/interfaces/ISlashingManager.sol/ISlashingManager.json +1 -1
- package/artifacts/contracts/interfaces/ISlashingManager.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/lib/ExitQueueLib.sol/ExitQueueLib.json +1 -1
- package/artifacts/contracts/lib/ExitQueueLib.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/registry/BondingRegistry.sol/BondingRegistry.json +16 -3
- package/artifacts/contracts/registry/BondingRegistry.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/CiphernodeRegistryOwnable.json +91 -25
- package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/artifacts.d.ts +6 -6
- package/artifacts/contracts/slashing/SlashingManager.sol/SlashingManager.json +3 -3
- package/artifacts/contracts/slashing/SlashingManager.sol/artifacts.d.ts +3 -3
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.json +57 -7
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.json +57 -7
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/artifacts.d.ts +8 -8
- package/artifacts/contracts/test/MockComputeProvider.sol/MockComputeProvider.json +3 -3
- package/artifacts/contracts/test/MockComputeProvider.sol/artifacts.d.ts +3 -3
- package/artifacts/contracts/test/MockDecryptionVerifier.sol/MockDecryptionVerifier.json +1 -1
- package/artifacts/contracts/test/MockDecryptionVerifier.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/test/MockE3Program.sol/MockE3Program.json +21 -26
- package/artifacts/contracts/test/MockE3Program.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/test/MockSlashingVerifier.sol/MockSlashingVerifier.json +1 -1
- package/artifacts/contracts/test/MockSlashingVerifier.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/test/MockStableToken.sol/MockUSDC.json +3 -3
- package/artifacts/contracts/test/MockStableToken.sol/artifacts.d.ts +3 -3
- package/artifacts/contracts/token/EnclaveTicketToken.sol/EnclaveTicketToken.json +14 -22
- package/artifacts/contracts/token/EnclaveTicketToken.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/token/EnclaveToken.sol/EnclaveToken.json +10 -10
- package/artifacts/contracts/token/EnclaveToken.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.json +89 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/CommitmentSchemeLib.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.json +186 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/FrLib.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/Honk.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/HonkVerificationKey.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/IVerifier.json +38 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/RelationsLib.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.json +400 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/artifacts.d.ts +155 -0
- package/artifacts/poseidon-solidity/PoseidonT3.sol/PoseidonT3.json +1 -1
- package/artifacts/poseidon-solidity/PoseidonT3.sol/artifacts.d.ts +1 -1
- package/contracts/E3RefundManager.sol +365 -0
- package/contracts/Enclave.sol +426 -119
- package/contracts/interfaces/IBondingRegistry.sol +6 -0
- package/contracts/interfaces/ICiphernodeRegistry.sol +29 -7
- package/contracts/interfaces/IE3.sol +2 -6
- package/contracts/interfaces/IE3Program.sol +3 -7
- package/contracts/interfaces/IE3RefundManager.sol +150 -0
- package/contracts/interfaces/IEnclave.sol +186 -64
- package/contracts/registry/BondingRegistry.sol +9 -0
- package/contracts/registry/CiphernodeRegistryOwnable.sol +89 -42
- package/contracts/test/MockCiphernodeRegistry.sol +20 -6
- package/contracts/test/MockE3Program.sol +3 -8
- package/contracts/verifier/DkgPkVerifier.sol +3140 -0
- package/dist/hardhat.config.d.ts.map +1 -1
- package/dist/hardhat.config.js +4 -4
- package/dist/ignition/modules/dkgPkVerifier.d.ts +3 -0
- package/dist/ignition/modules/dkgPkVerifier.d.ts.map +1 -0
- package/dist/ignition/modules/dkgPkVerifier.js +10 -0
- package/dist/ignition/modules/e3RefundManager.d.ts +3 -0
- package/dist/ignition/modules/e3RefundManager.d.ts.map +1 -0
- package/dist/ignition/modules/e3RefundManager.js +23 -0
- package/dist/ignition/modules/enclave.d.ts.map +1 -1
- package/dist/ignition/modules/enclave.js +10 -0
- package/dist/scripts/deployAndSave/e3RefundManager.d.ts +20 -0
- package/dist/scripts/deployAndSave/e3RefundManager.d.ts.map +1 -0
- package/dist/scripts/deployAndSave/e3RefundManager.js +55 -0
- package/dist/scripts/deployAndSave/enclave.d.ts +13 -1
- package/dist/scripts/deployAndSave/enclave.d.ts.map +1 -1
- package/dist/scripts/deployAndSave/enclave.js +8 -1
- package/dist/scripts/deployAndSave/verifiers.d.ts +29 -0
- package/dist/scripts/deployAndSave/verifiers.d.ts.map +1 -0
- package/dist/scripts/deployAndSave/verifiers.js +109 -0
- package/dist/scripts/deployEnclave.d.ts.map +1 -1
- package/dist/scripts/deployEnclave.js +36 -0
- package/dist/scripts/deployVerifiers.d.ts +2 -0
- package/dist/scripts/deployVerifiers.d.ts.map +1 -0
- package/dist/scripts/deployVerifiers.js +33 -0
- package/dist/scripts/index.d.ts +1 -0
- package/dist/scripts/index.d.ts.map +1 -1
- package/dist/scripts/index.js +1 -0
- package/dist/tasks/enclave.d.ts +0 -2
- package/dist/tasks/enclave.d.ts.map +1 -1
- package/dist/tasks/enclave.js +8 -72
- package/dist/tasks/program.d.ts +2 -0
- package/dist/tasks/program.d.ts.map +1 -0
- package/dist/tasks/program.js +55 -0
- package/dist/test/E3Lifecycle/E3Integration.spec.d.ts +2 -0
- package/dist/test/E3Lifecycle/E3Integration.spec.d.ts.map +1 -0
- package/dist/test/E3Lifecycle/E3Integration.spec.js +757 -0
- package/dist/test/Enclave.spec.js +83 -406
- package/dist/test/Registry/CiphernodeRegistryOwnable.spec.js +133 -59
- package/dist/types/contracts/E3RefundManager.d.ts +379 -0
- package/dist/types/contracts/E3RefundManager.d.ts.map +1 -0
- package/dist/types/contracts/E3RefundManager.js +24 -0
- package/dist/types/contracts/Enclave.d.ts +325 -73
- package/dist/types/contracts/Enclave.d.ts.map +1 -1
- package/dist/types/contracts/Enclave.js +27 -3
- package/dist/types/contracts/index.d.ts +3 -0
- package/dist/types/contracts/index.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/IBondingRegistry.d.ts +11 -1
- package/dist/types/contracts/interfaces/IBondingRegistry.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts +35 -7
- package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/ICiphernodeRegistry.js +4 -0
- package/dist/types/contracts/interfaces/IE3Program.d.ts +16 -18
- package/dist/types/contracts/interfaces/IE3Program.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/IE3RefundManager.d.ts +238 -0
- package/dist/types/contracts/interfaces/IE3RefundManager.d.ts.map +1 -0
- package/dist/types/contracts/interfaces/IE3RefundManager.js +16 -0
- package/dist/types/contracts/interfaces/IEnclave.d.ts +290 -62
- package/dist/types/contracts/interfaces/IEnclave.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/IEnclave.js +27 -3
- package/dist/types/contracts/interfaces/index.d.ts +1 -0
- package/dist/types/contracts/interfaces/index.d.ts.map +1 -1
- package/dist/types/contracts/registry/BondingRegistry.d.ts +11 -1
- package/dist/types/contracts/registry/BondingRegistry.d.ts.map +1 -1
- package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts +35 -7
- package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts.map +1 -1
- package/dist/types/contracts/registry/CiphernodeRegistryOwnable.js +4 -0
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts +35 -7
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts.map +1 -1
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.js +4 -0
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts +35 -7
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts.map +1 -1
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.js +4 -0
- package/dist/types/contracts/test/MockE3Program.d.ts +16 -18
- package/dist/types/contracts/test/MockE3Program.d.ts.map +1 -1
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.d.ts +36 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.js +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.d.ts +36 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.js +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.d.ts +36 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.js +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.d.ts +138 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.js +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.d.ts +5 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.js +1 -0
- package/dist/types/contracts/verifier/index.d.ts +3 -0
- package/dist/types/contracts/verifier/index.d.ts.map +1 -0
- package/dist/types/contracts/verifier/index.js +1 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts.map +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts.map +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.js +1 -1
- package/dist/types/factories/contracts/E3RefundManager__factory.d.ts +540 -0
- package/dist/types/factories/contracts/E3RefundManager__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/E3RefundManager__factory.js +706 -0
- package/dist/types/factories/contracts/Enclave__factory.d.ts +412 -143
- package/dist/types/factories/contracts/Enclave__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/Enclave__factory.js +528 -180
- package/dist/types/factories/contracts/index.d.ts +2 -0
- package/dist/types/factories/contracts/index.d.ts.map +1 -1
- package/dist/types/factories/contracts/index.js +2 -0
- package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts +10 -0
- package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.js +13 -0
- package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts +42 -4
- package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.js +54 -4
- package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts +14 -18
- package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/IE3Program__factory.js +18 -23
- package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.d.ts +358 -0
- package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.js +471 -0
- package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts +303 -103
- package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/IEnclave__factory.js +382 -127
- package/dist/types/factories/contracts/interfaces/index.d.ts +1 -0
- package/dist/types/factories/contracts/interfaces/index.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/index.js +1 -0
- package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts +11 -1
- package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/registry/BondingRegistry__factory.js +14 -1
- package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts +62 -12
- package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.js +79 -13
- package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts +1 -1
- package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/slashing/SlashingManager__factory.js +1 -1
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts +43 -5
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.js +55 -5
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts +43 -5
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.js +55 -5
- package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts +1 -1
- package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockComputeProvider__factory.js +1 -1
- package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts +15 -19
- package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockE3Program__factory.js +19 -24
- package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts +1 -1
- package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.js +1 -1
- package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts +1 -1
- package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.js +1 -1
- package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts +1 -1
- package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/token/EnclaveToken__factory.js +1 -1
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.d.ts +66 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.js +90 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.d.ts +87 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.js +122 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.d.ts +26 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.js +39 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.d.ts +323 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.js +422 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.d.ts +5 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.js +7 -0
- package/dist/types/factories/contracts/verifier/index.d.ts +2 -0
- package/dist/types/factories/contracts/verifier/index.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/index.js +4 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +6 -0
- package/package.json +17 -3
- package/artifacts/build-info/solc-0_8_28-c77ac33099bb85c15f46d194dd2b735e036cb799.output.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hardhat.config.d.ts","sourceRoot":"","sources":["../hardhat.config.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"hardhat.config.d.ts","sourceRoot":"","sources":["../hardhat.config.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAoExD,QAAA,MAAM,MAAM,EAAE,iBA8Gb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/hardhat.config.js
CHANGED
|
@@ -11,7 +11,8 @@ import hardhatTypechainPlugin from "@nomicfoundation/hardhat-typechain";
|
|
|
11
11
|
import hardhatVerify from "@nomicfoundation/hardhat-verify";
|
|
12
12
|
import dotenv from "dotenv";
|
|
13
13
|
import { ciphernodeAdd, ciphernodeAdminAdd, ciphernodeMintTokens, ciphernodeRemove, ciphernodeSiblings, updateSubmissionWindow, } from "./tasks/ciphernode";
|
|
14
|
-
import {
|
|
14
|
+
import { enableE3, publishCiphertext, publishCommittee, publishPlaintext, requestCommittee, } from "./tasks/enclave";
|
|
15
|
+
import { publishInput } from "./tasks/program";
|
|
15
16
|
import { cleanDeploymentsTask } from "./tasks/utils";
|
|
16
17
|
dotenv.config();
|
|
17
18
|
const mnemonic = process.env.MNEMONIC ??
|
|
@@ -74,9 +75,8 @@ const config = {
|
|
|
74
75
|
requestCommittee,
|
|
75
76
|
publishPlaintext,
|
|
76
77
|
publishCiphertext,
|
|
77
|
-
publishInput,
|
|
78
|
-
activateE3,
|
|
79
78
|
publishCommittee,
|
|
79
|
+
publishInput,
|
|
80
80
|
enableE3,
|
|
81
81
|
cleanDeploymentsTask,
|
|
82
82
|
updateSubmissionWindow,
|
|
@@ -146,7 +146,7 @@ const config = {
|
|
|
146
146
|
settings: {
|
|
147
147
|
optimizer: {
|
|
148
148
|
enabled: true,
|
|
149
|
-
runs:
|
|
149
|
+
runs: 100,
|
|
150
150
|
},
|
|
151
151
|
metadata: {
|
|
152
152
|
bytecodeHash: "none",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dkgPkVerifier.d.ts","sourceRoot":"","sources":["../../../ignition/modules/dkgPkVerifier.ts"],"names":[],"mappings":"wBAWM,GAAG;AAJT,wBAIU"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
//
|
|
3
|
+
// This file is provided WITHOUT ANY WARRANTY;
|
|
4
|
+
// without even the implied warranty of MERCHANTABILITY
|
|
5
|
+
// or FITNESS FOR A PARTICULAR PURPOSE.
|
|
6
|
+
import { buildModule } from "@nomicfoundation/hardhat-ignition/modules";
|
|
7
|
+
export default buildModule("DkgPkVerifier", (m) => {
|
|
8
|
+
const dkgPkVerifier = m.contract("DkgPkVerifier");
|
|
9
|
+
return { dkgPkVerifier };
|
|
10
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"e3RefundManager.d.ts","sourceRoot":"","sources":["../../../ignition/modules/e3RefundManager.ts"],"names":[],"mappings":"wBA2BM,GAAG;AApBT,wBAoBU"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
//
|
|
3
|
+
// This file is provided WITHOUT ANY WARRANTY;
|
|
4
|
+
// without even the implied warranty of MERCHANTABILITY
|
|
5
|
+
// or FITNESS FOR A PARTICULAR PURPOSE.
|
|
6
|
+
import { buildModule } from "@nomicfoundation/hardhat-ignition/modules";
|
|
7
|
+
export default buildModule("E3RefundManager", (m) => {
|
|
8
|
+
const owner = m.getParameter("owner");
|
|
9
|
+
const enclave = m.getParameter("enclave");
|
|
10
|
+
const treasury = m.getParameter("treasury");
|
|
11
|
+
const e3RefundManagerImpl = m.contract("E3RefundManager", []);
|
|
12
|
+
const initData = m.encodeFunctionCall(e3RefundManagerImpl, "initialize", [
|
|
13
|
+
owner,
|
|
14
|
+
enclave,
|
|
15
|
+
treasury,
|
|
16
|
+
]);
|
|
17
|
+
const e3RefundManager = m.contract("TransparentUpgradeableProxy", [
|
|
18
|
+
e3RefundManagerImpl,
|
|
19
|
+
owner,
|
|
20
|
+
initData,
|
|
21
|
+
]);
|
|
22
|
+
return { e3RefundManager };
|
|
23
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enclave.d.ts","sourceRoot":"","sources":["../../../ignition/modules/enclave.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enclave.d.ts","sourceRoot":"","sources":["../../../ignition/modules/enclave.ts"],"names":[],"mappings":"wBA2CM,GAAG;AApCT,wBAoCU"}
|
|
@@ -10,14 +10,24 @@ export default buildModule("Enclave", (m) => {
|
|
|
10
10
|
const maxDuration = m.getParameter("maxDuration");
|
|
11
11
|
const registry = m.getParameter("registry");
|
|
12
12
|
const bondingRegistry = m.getParameter("bondingRegistry");
|
|
13
|
+
const e3RefundManager = m.getParameter("e3RefundManager");
|
|
13
14
|
const feeToken = m.getParameter("feeToken");
|
|
15
|
+
const timeoutConfig = m.getParameter("timeoutConfig", {
|
|
16
|
+
committeeFormationWindow: 3600,
|
|
17
|
+
dkgWindow: 7200,
|
|
18
|
+
computeWindow: 86400,
|
|
19
|
+
decryptionWindow: 3600,
|
|
20
|
+
gracePeriod: 600,
|
|
21
|
+
});
|
|
14
22
|
const enclaveImpl = m.contract("Enclave", []);
|
|
15
23
|
const initData = m.encodeFunctionCall(enclaveImpl, "initialize", [
|
|
16
24
|
owner,
|
|
17
25
|
registry,
|
|
18
26
|
bondingRegistry,
|
|
27
|
+
e3RefundManager,
|
|
19
28
|
feeToken,
|
|
20
29
|
maxDuration,
|
|
30
|
+
timeoutConfig,
|
|
21
31
|
[params],
|
|
22
32
|
]);
|
|
23
33
|
const enclave = m.contract("TransparentUpgradeableProxy", [
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { HardhatRuntimeEnvironment } from "hardhat/types/hre";
|
|
2
|
+
import { E3RefundManager } from "../../types";
|
|
3
|
+
/**
|
|
4
|
+
* The arguments for the deployAndSaveE3RefundManager function
|
|
5
|
+
*/
|
|
6
|
+
export interface E3RefundManagerArgs {
|
|
7
|
+
owner?: string;
|
|
8
|
+
enclave?: string;
|
|
9
|
+
treasury?: string;
|
|
10
|
+
hre: HardhatRuntimeEnvironment;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Deploys the E3RefundManager contract and saves the deployment arguments
|
|
14
|
+
* @param param0 - The deployment arguments
|
|
15
|
+
* @returns The deployed E3RefundManager contract
|
|
16
|
+
*/
|
|
17
|
+
export declare const deployAndSaveE3RefundManager: ({ owner, enclave, treasury, hre, }: E3RefundManagerArgs) => Promise<{
|
|
18
|
+
e3RefundManager: E3RefundManager;
|
|
19
|
+
}>;
|
|
20
|
+
//# sourceMappingURL=e3RefundManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"e3RefundManager.d.ts","sourceRoot":"","sources":["../../../scripts/deployAndSave/e3RefundManager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EACL,eAAe,EAEhB,MAAM,aAAa,CAAC;AAIrB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,yBAAyB,CAAC;CAChC;AAED;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAU,oCAKhD,mBAAmB,KAAG,OAAO,CAAC;IAAE,eAAe,EAAE,eAAe,CAAA;CAAE,CA+EpE,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { E3RefundManager__factory as E3RefundManagerFactory, } from "../../types";
|
|
2
|
+
import { getProxyAdmin } from "../proxy";
|
|
3
|
+
import { readDeploymentArgs, storeDeploymentArgs } from "../utils";
|
|
4
|
+
/**
|
|
5
|
+
* Deploys the E3RefundManager contract and saves the deployment arguments
|
|
6
|
+
* @param param0 - The deployment arguments
|
|
7
|
+
* @returns The deployed E3RefundManager contract
|
|
8
|
+
*/
|
|
9
|
+
export const deployAndSaveE3RefundManager = async ({ owner, enclave, treasury, hre, }) => {
|
|
10
|
+
const { ethers } = await hre.network.connect();
|
|
11
|
+
const [signer] = await ethers.getSigners();
|
|
12
|
+
const chain = hre.globalOptions.network;
|
|
13
|
+
const preDeployedArgs = readDeploymentArgs("E3RefundManager", chain);
|
|
14
|
+
if (!owner ||
|
|
15
|
+
!enclave ||
|
|
16
|
+
!treasury ||
|
|
17
|
+
(preDeployedArgs?.constructorArgs?.owner === owner &&
|
|
18
|
+
preDeployedArgs?.constructorArgs?.enclave === enclave &&
|
|
19
|
+
preDeployedArgs?.constructorArgs?.treasury === treasury)) {
|
|
20
|
+
if (!preDeployedArgs?.address) {
|
|
21
|
+
throw new Error("E3RefundManager address not found, it must be deployed first");
|
|
22
|
+
}
|
|
23
|
+
const e3RefundManagerContract = E3RefundManagerFactory.connect(preDeployedArgs.address, signer);
|
|
24
|
+
return { e3RefundManager: e3RefundManagerContract };
|
|
25
|
+
}
|
|
26
|
+
const e3RefundManagerFactory = await ethers.getContractFactory(E3RefundManagerFactory.abi, E3RefundManagerFactory.bytecode, signer);
|
|
27
|
+
const e3RefundManager = await e3RefundManagerFactory.deploy();
|
|
28
|
+
await e3RefundManager.waitForDeployment();
|
|
29
|
+
const blockNumber = await ethers.provider.getBlockNumber();
|
|
30
|
+
const e3RefundManagerAddress = await e3RefundManager.getAddress();
|
|
31
|
+
const initData = e3RefundManagerFactory.interface.encodeFunctionData("initialize", [owner, enclave, treasury]);
|
|
32
|
+
const ProxyCF = await ethers.getContractFactory("TransparentUpgradeableProxy");
|
|
33
|
+
const proxy = await ProxyCF.deploy(e3RefundManagerAddress, owner, initData);
|
|
34
|
+
await proxy.waitForDeployment();
|
|
35
|
+
const proxyAddress = await proxy.getAddress();
|
|
36
|
+
const proxyAdminAddress = await getProxyAdmin(ethers.provider, proxyAddress);
|
|
37
|
+
storeDeploymentArgs({
|
|
38
|
+
constructorArgs: {
|
|
39
|
+
owner,
|
|
40
|
+
enclave,
|
|
41
|
+
treasury,
|
|
42
|
+
},
|
|
43
|
+
proxyRecords: {
|
|
44
|
+
initData,
|
|
45
|
+
initialOwner: owner,
|
|
46
|
+
proxyAddress,
|
|
47
|
+
proxyAdminAddress,
|
|
48
|
+
implementationAddress: e3RefundManagerAddress,
|
|
49
|
+
},
|
|
50
|
+
blockNumber,
|
|
51
|
+
address: proxyAddress,
|
|
52
|
+
}, "E3RefundManager", chain);
|
|
53
|
+
const e3RefundManagerContract = E3RefundManagerFactory.connect(proxyAddress, signer);
|
|
54
|
+
return { e3RefundManager: e3RefundManagerContract };
|
|
55
|
+
};
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import type { HardhatRuntimeEnvironment } from "hardhat/types/hre";
|
|
2
2
|
import { Enclave } from "../../types";
|
|
3
|
+
/**
|
|
4
|
+
* Timeout configuration for E3 stages
|
|
5
|
+
*/
|
|
6
|
+
export interface E3TimeoutConfig {
|
|
7
|
+
committeeFormationWindow: number;
|
|
8
|
+
dkgWindow: number;
|
|
9
|
+
computeWindow: number;
|
|
10
|
+
decryptionWindow: number;
|
|
11
|
+
gracePeriod: number;
|
|
12
|
+
}
|
|
3
13
|
/**
|
|
4
14
|
* The arguments for the deployAndSaveEnclave function
|
|
5
15
|
*/
|
|
@@ -9,7 +19,9 @@ export interface EnclaveArgs {
|
|
|
9
19
|
maxDuration?: string;
|
|
10
20
|
registry?: string;
|
|
11
21
|
bondingRegistry?: string;
|
|
22
|
+
e3RefundManager?: string;
|
|
12
23
|
feeToken?: string;
|
|
24
|
+
timeoutConfig?: E3TimeoutConfig;
|
|
13
25
|
hre: HardhatRuntimeEnvironment;
|
|
14
26
|
}
|
|
15
27
|
/**
|
|
@@ -17,7 +29,7 @@ export interface EnclaveArgs {
|
|
|
17
29
|
* @param param0 - The deployment arguments
|
|
18
30
|
* @returns The deployed Enclave contract
|
|
19
31
|
*/
|
|
20
|
-
export declare const deployAndSaveEnclave: ({ params, owner, maxDuration, registry, bondingRegistry, feeToken, hre, }: EnclaveArgs) => Promise<{
|
|
32
|
+
export declare const deployAndSaveEnclave: ({ params, owner, maxDuration, registry, bondingRegistry, e3RefundManager, feeToken, timeoutConfig, hre, }: EnclaveArgs) => Promise<{
|
|
21
33
|
enclave: Enclave;
|
|
22
34
|
}>;
|
|
23
35
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enclave.d.ts","sourceRoot":"","sources":["../../../scripts/deployAndSave/enclave.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAsC,MAAM,aAAa,CAAC;AAQ1E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,yBAAyB,CAAC;CAChC;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAU,
|
|
1
|
+
{"version":3,"file":"enclave.d.ts","sourceRoot":"","sources":["../../../scripts/deployAndSave/enclave.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAsC,MAAM,aAAa,CAAC;AAQ1E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,GAAG,EAAE,yBAAyB,CAAC;CAChC;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAU,2GAUxC,WAAW,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CA8F5C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAU,wBAGzC;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,yBAAyB,CAAC;CAChC,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAA;CAAE,CAiE9D,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { areArraysEqual, readDeploymentArgs, storeDeploymentArgs, } from "../uti
|
|
|
6
6
|
* @param param0 - The deployment arguments
|
|
7
7
|
* @returns The deployed Enclave contract
|
|
8
8
|
*/
|
|
9
|
-
export const deployAndSaveEnclave = async ({ params, owner, maxDuration, registry, bondingRegistry, feeToken, hre, }) => {
|
|
9
|
+
export const deployAndSaveEnclave = async ({ params, owner, maxDuration, registry, bondingRegistry, e3RefundManager, feeToken, timeoutConfig, hre, }) => {
|
|
10
10
|
const { ethers } = await hre.network.connect();
|
|
11
11
|
const [signer] = await ethers.getSigners();
|
|
12
12
|
const chain = hre.globalOptions.network;
|
|
@@ -16,11 +16,14 @@ export const deployAndSaveEnclave = async ({ params, owner, maxDuration, registr
|
|
|
16
16
|
!maxDuration ||
|
|
17
17
|
!registry ||
|
|
18
18
|
!bondingRegistry ||
|
|
19
|
+
!e3RefundManager ||
|
|
19
20
|
!feeToken ||
|
|
21
|
+
!timeoutConfig ||
|
|
20
22
|
(preDeployedArgs?.constructorArgs?.owner === owner &&
|
|
21
23
|
preDeployedArgs?.constructorArgs?.maxDuration === maxDuration &&
|
|
22
24
|
preDeployedArgs?.constructorArgs?.registry === registry &&
|
|
23
25
|
preDeployedArgs?.constructorArgs?.bondingRegistry === bondingRegistry &&
|
|
26
|
+
preDeployedArgs?.constructorArgs?.e3RefundManager === e3RefundManager &&
|
|
24
27
|
preDeployedArgs?.constructorArgs?.feeToken === feeToken &&
|
|
25
28
|
areArraysEqual(preDeployedArgs?.constructorArgs?.params, params))) {
|
|
26
29
|
if (!preDeployedArgs?.address) {
|
|
@@ -38,8 +41,10 @@ export const deployAndSaveEnclave = async ({ params, owner, maxDuration, registr
|
|
|
38
41
|
owner,
|
|
39
42
|
registry,
|
|
40
43
|
bondingRegistry,
|
|
44
|
+
e3RefundManager,
|
|
41
45
|
feeToken,
|
|
42
46
|
maxDuration,
|
|
47
|
+
timeoutConfig,
|
|
43
48
|
params,
|
|
44
49
|
]);
|
|
45
50
|
const ProxyCF = await ethers.getContractFactory("TransparentUpgradeableProxy");
|
|
@@ -52,8 +57,10 @@ export const deployAndSaveEnclave = async ({ params, owner, maxDuration, registr
|
|
|
52
57
|
owner,
|
|
53
58
|
registry,
|
|
54
59
|
bondingRegistry,
|
|
60
|
+
e3RefundManager,
|
|
55
61
|
feeToken,
|
|
56
62
|
maxDuration,
|
|
63
|
+
timeoutConfig: JSON.stringify(timeoutConfig),
|
|
57
64
|
params,
|
|
58
65
|
},
|
|
59
66
|
proxyRecords: {
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { HardhatRuntimeEnvironment } from "hardhat/types/hre";
|
|
2
|
+
/**
|
|
3
|
+
* Discovers all Solidity verifier contracts in contracts/verifier/ directory.
|
|
4
|
+
* Returns an array of contract names (without .sol extension).
|
|
5
|
+
*/
|
|
6
|
+
export declare const discoverVerifierContracts: () => string[];
|
|
7
|
+
/**
|
|
8
|
+
* Deploys a single verifier contract and saves the deployment record.
|
|
9
|
+
* BB-generated verifiers require ZKTranscriptLib to be linked.
|
|
10
|
+
* Skips deployment if the contract is already deployed on the target chain.
|
|
11
|
+
*
|
|
12
|
+
* Note: The library FQN (fully-qualified name) uses the pattern:
|
|
13
|
+
* "contracts/verifier/<ContractName>.sol:ZKTranscriptLib"
|
|
14
|
+
* If you get linking errors, check the contract's compiled artifact for the exact FQN.
|
|
15
|
+
*/
|
|
16
|
+
export declare const deployAndSaveVerifier: (contractName: string, hre: HardhatRuntimeEnvironment, zkTranscriptLibAddress: string) => Promise<{
|
|
17
|
+
address: string;
|
|
18
|
+
}>;
|
|
19
|
+
export interface VerifierDeployments {
|
|
20
|
+
[contractName: string]: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Deploys all verifier contracts found in contracts/verifier/.
|
|
24
|
+
* Skips any that are already deployed on the target chain.
|
|
25
|
+
*
|
|
26
|
+
* @returns A mapping of contract names to their deployed addresses.
|
|
27
|
+
*/
|
|
28
|
+
export declare const deployAndSaveAllVerifiers: (hre: HardhatRuntimeEnvironment) => Promise<VerifierDeployments>;
|
|
29
|
+
//# sourceMappingURL=verifiers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifiers.d.ts","sourceRoot":"","sources":["../../../scripts/deployAndSave/verifiers.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAKnE;;;GAGG;AACH,eAAO,MAAM,yBAAyB,QAAO,MAAM,EAUlD,CAAC;AAmCF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAChC,cAAc,MAAM,EACpB,KAAK,yBAAyB,EAC9B,wBAAwB,MAAM,KAC7B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAqC7B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GACpC,KAAK,yBAAyB,KAC7B,OAAO,CAAC,mBAAmB,CA+B7B,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
//
|
|
3
|
+
// This file is provided WITHOUT ANY WARRANTY;
|
|
4
|
+
// without even the implied warranty of MERCHANTABILITY
|
|
5
|
+
// or FITNESS FOR A PARTICULAR PURPOSE.
|
|
6
|
+
import fs from "fs";
|
|
7
|
+
import path from "path";
|
|
8
|
+
import { readDeploymentArgs, storeDeploymentArgs } from "../utils";
|
|
9
|
+
/**
|
|
10
|
+
* Discovers all Solidity verifier contracts in contracts/verifier/ directory.
|
|
11
|
+
* Returns an array of contract names (without .sol extension).
|
|
12
|
+
*/
|
|
13
|
+
export const discoverVerifierContracts = () => {
|
|
14
|
+
const verifierDir = path.join(process.cwd(), "contracts/verifier");
|
|
15
|
+
if (!fs.existsSync(verifierDir)) {
|
|
16
|
+
return [];
|
|
17
|
+
}
|
|
18
|
+
return fs
|
|
19
|
+
.readdirSync(verifierDir)
|
|
20
|
+
.filter((f) => f.endsWith(".sol"))
|
|
21
|
+
.map((f) => f.replace(".sol", ""));
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Deploys ZKTranscriptLib library required by BB-generated verifiers.
|
|
25
|
+
* Reuses existing deployment if already deployed on the chain.
|
|
26
|
+
*/
|
|
27
|
+
const deployZKTranscriptLib = async (hre, chain) => {
|
|
28
|
+
const libName = "ZKTranscriptLib";
|
|
29
|
+
// Check if library is already deployed
|
|
30
|
+
const existing = readDeploymentArgs(libName, chain);
|
|
31
|
+
if (existing?.address) {
|
|
32
|
+
console.log(` ${libName} already deployed at ${existing.address}`);
|
|
33
|
+
return existing.address;
|
|
34
|
+
}
|
|
35
|
+
// Deploy the library
|
|
36
|
+
console.log(` Deploying ${libName}...`);
|
|
37
|
+
const { ethers } = await hre.network.connect();
|
|
38
|
+
const factory = await ethers.getContractFactory(libName);
|
|
39
|
+
const contract = await factory.deploy();
|
|
40
|
+
await contract.waitForDeployment();
|
|
41
|
+
const address = await contract.getAddress();
|
|
42
|
+
const blockNumber = await ethers.provider.getBlockNumber();
|
|
43
|
+
storeDeploymentArgs({ blockNumber, address }, libName, chain);
|
|
44
|
+
console.log(` ${libName} deployed to: ${address}`);
|
|
45
|
+
return address;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Deploys a single verifier contract and saves the deployment record.
|
|
49
|
+
* BB-generated verifiers require ZKTranscriptLib to be linked.
|
|
50
|
+
* Skips deployment if the contract is already deployed on the target chain.
|
|
51
|
+
*
|
|
52
|
+
* Note: The library FQN (fully-qualified name) uses the pattern:
|
|
53
|
+
* "contracts/verifier/<ContractName>.sol:ZKTranscriptLib"
|
|
54
|
+
* If you get linking errors, check the contract's compiled artifact for the exact FQN.
|
|
55
|
+
*/
|
|
56
|
+
export const deployAndSaveVerifier = async (contractName, hre, zkTranscriptLibAddress) => {
|
|
57
|
+
const { ethers } = await hre.network.connect();
|
|
58
|
+
const [signer] = await ethers.getSigners();
|
|
59
|
+
const chain = (await signer.provider?.getNetwork())?.name ?? "localhost";
|
|
60
|
+
// Check if already deployed
|
|
61
|
+
const existing = readDeploymentArgs(contractName, chain);
|
|
62
|
+
if (existing?.address) {
|
|
63
|
+
console.log(` ${contractName} already deployed at ${existing.address}`);
|
|
64
|
+
return { address: existing.address };
|
|
65
|
+
}
|
|
66
|
+
// Link ZKTranscriptLib - FQN pattern: "contracts/verifier/<ContractName>.sol:ZKTranscriptLib"
|
|
67
|
+
const libraryFQN = `project/contracts/verifier/${contractName}.sol:ZKTranscriptLib`;
|
|
68
|
+
const libraries = {
|
|
69
|
+
[libraryFQN]: zkTranscriptLibAddress,
|
|
70
|
+
};
|
|
71
|
+
// Deploy the verifier contract with linked library
|
|
72
|
+
const factory = await ethers.getContractFactory(contractName, { libraries });
|
|
73
|
+
const contract = await factory.deploy();
|
|
74
|
+
await contract.waitForDeployment();
|
|
75
|
+
const address = await contract.getAddress();
|
|
76
|
+
const blockNumber = await ethers.provider.getBlockNumber();
|
|
77
|
+
storeDeploymentArgs({
|
|
78
|
+
blockNumber,
|
|
79
|
+
address,
|
|
80
|
+
}, contractName, chain);
|
|
81
|
+
console.log(` ${contractName} deployed to: ${address}`);
|
|
82
|
+
return { address };
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Deploys all verifier contracts found in contracts/verifier/.
|
|
86
|
+
* Skips any that are already deployed on the target chain.
|
|
87
|
+
*
|
|
88
|
+
* @returns A mapping of contract names to their deployed addresses.
|
|
89
|
+
*/
|
|
90
|
+
export const deployAndSaveAllVerifiers = async (hre) => {
|
|
91
|
+
const contractNames = discoverVerifierContracts();
|
|
92
|
+
const { ethers } = await hre.network.connect();
|
|
93
|
+
const [signer] = await ethers.getSigners();
|
|
94
|
+
const chain = (await signer.provider?.getNetwork())?.name ?? "localhost";
|
|
95
|
+
console.log(` Deploying to network: ${chain}`);
|
|
96
|
+
if (contractNames.length === 0) {
|
|
97
|
+
console.log(" No verifier contracts found in contracts/verifier/. Skipping.");
|
|
98
|
+
return {};
|
|
99
|
+
}
|
|
100
|
+
console.log(` Found ${contractNames.length} verifier contract(s)`);
|
|
101
|
+
// Deploy ZKTranscriptLib once, reused by all verifiers
|
|
102
|
+
const zkTranscriptLibAddress = await deployZKTranscriptLib(hre, chain);
|
|
103
|
+
const deployments = {};
|
|
104
|
+
for (const name of contractNames) {
|
|
105
|
+
const { address } = await deployAndSaveVerifier(name, hre, zkTranscriptLibAddress);
|
|
106
|
+
deployments[name] = address;
|
|
107
|
+
}
|
|
108
|
+
return deployments;
|
|
109
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployEnclave.d.ts","sourceRoot":"","sources":["../../scripts/deployEnclave.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deployEnclave.d.ts","sourceRoot":"","sources":["../../scripts/deployEnclave.ts"],"names":[],"mappings":"AA+BA;;GAEG;AACH,eAAO,MAAM,aAAa,GAAU,YAAY,OAAO,kBA4NtD,CAAC"}
|
|
@@ -7,13 +7,25 @@ import hre from "hardhat";
|
|
|
7
7
|
import { autoCleanForLocalhost } from "./cleanIgnitionState";
|
|
8
8
|
import { deployAndSaveBondingRegistry } from "./deployAndSave/bondingRegistry";
|
|
9
9
|
import { deployAndSaveCiphernodeRegistryOwnable } from "./deployAndSave/ciphernodeRegistryOwnable";
|
|
10
|
+
import { deployAndSaveE3RefundManager } from "./deployAndSave/e3RefundManager";
|
|
10
11
|
import { deployAndSaveEnclave } from "./deployAndSave/enclave";
|
|
11
12
|
import { deployAndSaveEnclaveTicketToken } from "./deployAndSave/enclaveTicketToken";
|
|
12
13
|
import { deployAndSaveEnclaveToken } from "./deployAndSave/enclaveToken";
|
|
13
14
|
import { deployAndSaveMockStableToken } from "./deployAndSave/mockStableToken";
|
|
14
15
|
import { deployAndSavePoseidonT3 } from "./deployAndSave/poseidonT3";
|
|
15
16
|
import { deployAndSaveSlashingManager } from "./deployAndSave/slashingManager";
|
|
17
|
+
import { deployAndSaveAllVerifiers } from "./deployAndSave/verifiers";
|
|
16
18
|
import { deployMocks } from "./deployMocks";
|
|
19
|
+
/**
|
|
20
|
+
* Default timeout configuration (in seconds)
|
|
21
|
+
*/
|
|
22
|
+
const DEFAULT_TIMEOUT_CONFIG = {
|
|
23
|
+
committeeFormationWindow: 3600,
|
|
24
|
+
dkgWindow: 7200,
|
|
25
|
+
computeWindow: 86400,
|
|
26
|
+
decryptionWindow: 3600,
|
|
27
|
+
gracePeriod: 600,
|
|
28
|
+
};
|
|
17
29
|
/**
|
|
18
30
|
* Deploys the Enclave contracts
|
|
19
31
|
*/
|
|
@@ -108,11 +120,24 @@ export const deployEnclave = async (withMocks) => {
|
|
|
108
120
|
maxDuration: THIRTY_DAYS_IN_SECONDS.toString(),
|
|
109
121
|
registry: ciphernodeRegistryAddress,
|
|
110
122
|
bondingRegistry: bondingRegistryAddress,
|
|
123
|
+
e3RefundManager: addressOne, // placeholder, will be updated
|
|
111
124
|
feeToken: feeTokenAddress,
|
|
125
|
+
timeoutConfig: DEFAULT_TIMEOUT_CONFIG,
|
|
112
126
|
hre,
|
|
113
127
|
});
|
|
114
128
|
const enclaveAddress = await enclave.getAddress();
|
|
115
129
|
console.log("Enclave deployed to:", enclaveAddress);
|
|
130
|
+
console.log("Deploying E3RefundManager...");
|
|
131
|
+
const { e3RefundManager } = await deployAndSaveE3RefundManager({
|
|
132
|
+
owner: ownerAddress,
|
|
133
|
+
enclave: enclaveAddress,
|
|
134
|
+
treasury: ownerAddress, // Protocol treasury
|
|
135
|
+
hre,
|
|
136
|
+
});
|
|
137
|
+
const e3RefundManagerAddress = await e3RefundManager.getAddress();
|
|
138
|
+
console.log("E3RefundManager deployed to:", e3RefundManagerAddress);
|
|
139
|
+
console.log("Setting E3RefundManager in Enclave...");
|
|
140
|
+
await enclave.setE3RefundManager(e3RefundManagerAddress);
|
|
116
141
|
///////////////////////////////////////////
|
|
117
142
|
// Configure cross-contract dependencies
|
|
118
143
|
///////////////////////////////////////////
|
|
@@ -134,6 +159,7 @@ export const deployEnclave = async (withMocks) => {
|
|
|
134
159
|
await bondingRegistry.setSlashingManager(slashingManagerAddress);
|
|
135
160
|
console.log("Setting Enclave as reward distributor in BondingRegistry...");
|
|
136
161
|
await bondingRegistry.setRewardDistributor(enclaveAddress);
|
|
162
|
+
// E3RefundManager already has correct enclave from deployment
|
|
137
163
|
if (shouldDeployMocks) {
|
|
138
164
|
const { decryptionVerifierAddress, e3ProgramAddress } = await deployMocks();
|
|
139
165
|
const encryptionSchemeId = ethers.keccak256(ethers.toUtf8Bytes("fhe.rs:BFV"));
|
|
@@ -151,6 +177,13 @@ export const deployEnclave = async (withMocks) => {
|
|
|
151
177
|
await tx.wait();
|
|
152
178
|
console.log(`Successfully enabled E3 Program in Enclave contract`);
|
|
153
179
|
}
|
|
180
|
+
// Deploy circuit verifiers (if any exist in contracts/verifier/)
|
|
181
|
+
console.log("Deploying circuit verifiers...");
|
|
182
|
+
const verifierDeployments = await deployAndSaveAllVerifiers(hre);
|
|
183
|
+
const verifierEntries = Object.entries(verifierDeployments);
|
|
184
|
+
const verifierLines = verifierEntries.length > 0
|
|
185
|
+
? verifierEntries.map(([name, addr]) => ` ${name}: ${addr}`).join("\n")
|
|
186
|
+
: " (none)";
|
|
154
187
|
console.log(`
|
|
155
188
|
============================================
|
|
156
189
|
Deployment Complete!
|
|
@@ -161,7 +194,10 @@ export const deployEnclave = async (withMocks) => {
|
|
|
161
194
|
SlashingManager: ${slashingManagerAddress}
|
|
162
195
|
BondingRegistry: ${bondingRegistryAddress}
|
|
163
196
|
CiphernodeRegistry: ${ciphernodeRegistryAddress}
|
|
197
|
+
E3RefundManager: ${e3RefundManagerAddress}
|
|
164
198
|
Enclave: ${enclaveAddress}
|
|
199
|
+
Circuit Verifiers:
|
|
200
|
+
${verifierLines}
|
|
165
201
|
============================================
|
|
166
202
|
`);
|
|
167
203
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployVerifiers.d.ts","sourceRoot":"","sources":["../../scripts/deployVerifiers.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
//
|
|
3
|
+
// This file is provided WITHOUT ANY WARRANTY;
|
|
4
|
+
// without even the implied warranty of MERCHANTABILITY
|
|
5
|
+
// or FITNESS FOR A PARTICULAR PURPOSE.
|
|
6
|
+
import hre from "hardhat";
|
|
7
|
+
import { deployAndSaveAllVerifiers } from "./deployAndSave/verifiers";
|
|
8
|
+
/**
|
|
9
|
+
* Standalone script to deploy only the circuit verifier contracts.
|
|
10
|
+
* Usage: hardhat run scripts/deployVerifiers.ts --network <network>
|
|
11
|
+
*/
|
|
12
|
+
const main = async () => {
|
|
13
|
+
console.log("Deploying circuit verifier contracts...\n");
|
|
14
|
+
const verifierDeployments = await deployAndSaveAllVerifiers(hre);
|
|
15
|
+
const entries = Object.entries(verifierDeployments);
|
|
16
|
+
if (entries.length === 0) {
|
|
17
|
+
console.log("No verifier contracts found in contracts/verifier/.");
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
console.log(`
|
|
21
|
+
============================================
|
|
22
|
+
Verifier Deployment Complete!
|
|
23
|
+
============================================`);
|
|
24
|
+
for (const [name, address] of entries) {
|
|
25
|
+
console.log(` ${name}: ${address}`);
|
|
26
|
+
}
|
|
27
|
+
console.log(` ============================================
|
|
28
|
+
`);
|
|
29
|
+
};
|
|
30
|
+
main().catch((error) => {
|
|
31
|
+
console.error(error);
|
|
32
|
+
process.exit(1);
|
|
33
|
+
});
|
package/dist/scripts/index.d.ts
CHANGED
|
@@ -12,5 +12,6 @@ export * from "./deployAndSave/slashingManager";
|
|
|
12
12
|
export * from "./deployAndSave/mockComputeProvider";
|
|
13
13
|
export * from "./deployAndSave/mockDecryptionVerifier";
|
|
14
14
|
export * from "./deployAndSave/mockProgram";
|
|
15
|
+
export * from "./deployAndSave/verifiers";
|
|
15
16
|
export * from "./verify";
|
|
16
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../scripts/index.ts"],"names":[],"mappings":"AAMA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../scripts/index.ts"],"names":[],"mappings":"AAMA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC"}
|
package/dist/scripts/index.js
CHANGED
|
@@ -17,4 +17,5 @@ export * from "./deployAndSave/slashingManager";
|
|
|
17
17
|
export * from "./deployAndSave/mockComputeProvider";
|
|
18
18
|
export * from "./deployAndSave/mockDecryptionVerifier";
|
|
19
19
|
export * from "./deployAndSave/mockProgram";
|
|
20
|
+
export * from "./deployAndSave/verifiers";
|
|
20
21
|
export * from "./verify";
|
package/dist/tasks/enclave.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
export declare const requestCommittee: import("hardhat/types/tasks").NewTaskDefinition;
|
|
2
2
|
export declare const enableE3: import("hardhat/types/tasks").NewTaskDefinition;
|
|
3
3
|
export declare const publishCommittee: import("hardhat/types/tasks").NewTaskDefinition;
|
|
4
|
-
export declare const activateE3: import("hardhat/types/tasks").NewTaskDefinition;
|
|
5
|
-
export declare const publishInput: import("hardhat/types/tasks").NewTaskDefinition;
|
|
6
4
|
export declare const publishCiphertext: import("hardhat/types/tasks").NewTaskDefinition;
|
|
7
5
|
export declare const publishPlaintext: import("hardhat/types/tasks").NewTaskDefinition;
|
|
8
6
|
//# sourceMappingURL=enclave.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enclave.d.ts","sourceRoot":"","sources":["../../tasks/enclave.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"enclave.d.ts","sourceRoot":"","sources":["../../tasks/enclave.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,gBAAgB,iDA6LnB,CAAC;AAEX,eAAO,MAAM,QAAQ,iDAyBX,CAAC;AAEX,eAAO,MAAM,gBAAgB,iDAsEnB,CAAC;AAEX,eAAO,MAAM,iBAAiB,iDAsEpB,CAAC;AAEX,eAAO,MAAM,gBAAgB,iDAsEnB,CAAC"}
|